idk
This commit is contained in:
@@ -1,145 +1,11 @@
|
||||
class_name BattleScene extends BattleFighterScene
|
||||
const CutsceneBattleAction = preload("res://cutscene/battle/CutsceneBattleAction.gd")
|
||||
|
||||
enum BattlePosition {
|
||||
LEFT_TOP_BACK,
|
||||
LEFT_TOP_FRONT,
|
||||
LEFT_MIDDLE_BACK,
|
||||
LEFT_MIDDLE_FRONT,
|
||||
LEFT_BOTTOM_BACK,
|
||||
LEFT_BOTTOM_FRONT,
|
||||
|
||||
RIGHT_TOP_BACK,
|
||||
RIGHT_TOP_FRONT,
|
||||
RIGHT_MIDDLE_BACK,
|
||||
RIGHT_MIDDLE_FRONT,
|
||||
RIGHT_BOTTOM_BACK,
|
||||
RIGHT_BOTTOM_FRONT
|
||||
}
|
||||
|
||||
var active:bool = false
|
||||
var fighterMap:Dictionary[BattlePosition, BattleFighterScene] = {}
|
||||
class_name BattleScene extends Node3D
|
||||
|
||||
@export var actionBox:ActionBox = null
|
||||
|
||||
@export var fighterTopLeftBack:BattleFighterScene = null:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.LEFT_TOP_BACK, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.LEFT_TOP_BACK] = value
|
||||
|
||||
@export var fighterTopLeftFront:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.LEFT_TOP_FRONT, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.LEFT_TOP_FRONT] = value
|
||||
|
||||
@export var fighterMiddleLeftBack:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.LEFT_MIDDLE_BACK, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.LEFT_MIDDLE_BACK] = value
|
||||
|
||||
@export var fighterMiddleLeftFront:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.LEFT_MIDDLE_FRONT, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.LEFT_MIDDLE_FRONT] = value
|
||||
|
||||
@export var fighterBottomLeftBack:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.LEFT_BOTTOM_BACK, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.LEFT_BOTTOM_BACK] = value
|
||||
|
||||
@export var fighterBottomLeftFront:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.LEFT_BOTTOM_FRONT, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.LEFT_BOTTOM_FRONT] = value
|
||||
|
||||
@export var fighterTopRightBack:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.RIGHT_TOP_BACK, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.RIGHT_TOP_BACK] = value
|
||||
|
||||
@export var fighterTopRightFront:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.RIGHT_TOP_FRONT, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.RIGHT_TOP_FRONT] = value
|
||||
|
||||
@export var fighterMiddleRightBack:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.RIGHT_MIDDLE_BACK, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.RIGHT_MIDDLE_BACK] = value
|
||||
|
||||
@export var fighterMiddleRightFront:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.RIGHT_MIDDLE_FRONT, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.RIGHT_MIDDLE_FRONT] = value
|
||||
|
||||
@export var fighterBottomRightBack:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.RIGHT_BOTTOM_BACK, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.RIGHT_BOTTOM_BACK] = value
|
||||
|
||||
@export var fighterBottomRightFront:BattleFighterScene:
|
||||
get:
|
||||
return fighterMap.get(BattlePosition.RIGHT_BOTTOM_FRONT, null)
|
||||
set(value):
|
||||
fighterMap[BattlePosition.RIGHT_BOTTOM_FRONT] = value
|
||||
|
||||
func _init() ->void:
|
||||
BATTLE.battleScene = self
|
||||
|
||||
BATTLE.battleStarted.connect(onBattleStarted)
|
||||
|
||||
func onBattleStarted() -> void:
|
||||
pass
|
||||
|
||||
func getFigheterAtPosition(battlePos:BattlePosition) -> BattleFighterScene:
|
||||
return fighterMap.get(battlePos, null)
|
||||
|
||||
func getPositionForFighterScene(fighterScene:BattleFighterScene) -> BattlePosition:
|
||||
for battlePos in fighterMap.keys():
|
||||
var scene:BattleFighterScene = fighterMap[battlePos]
|
||||
if scene == fighterScene:
|
||||
return battlePos
|
||||
assert(false)
|
||||
return BattlePosition.LEFT_TOP_BACK
|
||||
|
||||
func getPositionForFighter(fighter:BattleFighter) -> BattlePosition:
|
||||
for battlePos in fighterMap.keys():
|
||||
var fighterScene:BattleFighterScene = fighterMap[battlePos]
|
||||
if fighterScene.fighter == fighter:
|
||||
return battlePos
|
||||
assert(false)
|
||||
return BattlePosition.LEFT_TOP_BACK
|
||||
|
||||
func getFighterSceneForFighter(fighter:BattleFighter) -> BattleFighterScene:
|
||||
for battlePos in fighterMap.keys():
|
||||
var fighterScene:BattleFighterScene = fighterMap[battlePos]
|
||||
if fighterScene.fighter == fighter:
|
||||
return fighterScene
|
||||
return null
|
||||
|
||||
func startBattle(params:Dictionary) -> void:
|
||||
assert(params.has('fighters'))
|
||||
assert(!active)
|
||||
|
||||
var cutscene:Cutscene = params.get('cutscene', Cutscene.new())
|
||||
|
||||
for battlePos in params['fighters'].keys():
|
||||
var fighterScene:BattleFighterScene = fighterMap.get(battlePos, null)
|
||||
assert(fighterScene != null)
|
||||
fighterScene.setFighter(params['fighters'][battlePos])
|
||||
|
||||
# Initial cutscene elements. In future I may need to make this editable
|
||||
# somehow?
|
||||
cutscene.addCallable({ "function": CutsceneBattleAction.playerDecision })
|
||||
|
||||
if !cutscene.running:
|
||||
cutscene.start()
|
||||
|
||||
active = true
|
||||
|
||||
Reference in New Issue
Block a user