Ready to work on actual logic for battles.

This commit is contained in:
2026-01-15 22:17:50 -06:00
parent 274cbef780
commit 346e3f0607
9 changed files with 75 additions and 22 deletions

View File

@@ -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