Ready to work on actual logic for battles.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
class_name BattleCutsceneAction
|
||||
|
||||
static func battleDecisionCallable(_params:Dictionary) -> int:
|
||||
print("Battle action executed.")
|
||||
print("Executing battle action...")
|
||||
await UI.TEXTBOX.setTextAndWait("Performing battle decision")
|
||||
return Cutscene.CUTSCENE_CONTINUE
|
||||
|
||||
|
||||
@@ -12,6 +13,30 @@ static func getBattleDecisionCallable(decision:BattleDecision) -> Dictionary:
|
||||
}
|
||||
|
||||
static func playerDecisionCallable(_params:Dictionary) -> int:
|
||||
# First, are all enemies, or all players, defeated?
|
||||
var allPlayersDead:bool = false
|
||||
var allEnemiesDead:bool = false
|
||||
for fighter:BattleFighter in BATTLE.fighterMap.values():
|
||||
if fighter == null:
|
||||
continue
|
||||
if fighter.status != BattleFighter.Status.DEAD:
|
||||
continue
|
||||
if fighter.isPlayerControlled():
|
||||
allPlayersDead = false
|
||||
else:
|
||||
allEnemiesDead = false
|
||||
|
||||
# If all players are dead, game over unfortunately.
|
||||
if allPlayersDead:
|
||||
print("All players defeated! Game Over.")
|
||||
assert(false)
|
||||
|
||||
# If all enemies are dead, victory!
|
||||
if allEnemiesDead:
|
||||
print("All enemies defeated! Victory!")
|
||||
assert(false)
|
||||
|
||||
# OK we are actually fighting.
|
||||
var decisions:Array[BattleDecision] = []
|
||||
|
||||
for fighter:BattleFighter in BATTLE.fighterMap.values():
|
||||
@@ -52,7 +77,11 @@ static func playerDecisionCallable(_params:Dictionary) -> int:
|
||||
|
||||
# Turn into cutscene actions.
|
||||
for decision in decisions:
|
||||
print("Adding decision to cutscene: %s" % decision)
|
||||
_params['cutscene'].addCallable(BattleCutsceneAction.getBattleDecisionCallable(decision))
|
||||
|
||||
# Then send to next decision
|
||||
_params['cutscene'].addCallable(BattleCutsceneAction.getPlayerDecisionCallable())
|
||||
|
||||
return Cutscene.CUTSCENE_CONTINUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user