102 lines
3.0 KiB
GDScript
102 lines
3.0 KiB
GDScript
class_name BattleScene extends BattleFighterScene
|
|
|
|
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 fighterMap:Dictionary[BattlePosition, BattleFighterScene] = {}
|
|
|
|
@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
|
|
pass
|
|
|
|
func startBatle(fighters:Dictionary[BattlePosition, BattleFighter]) -> void:
|
|
for position in fighters.keys():
|
|
var fighterScene:BattleFighterScene = fighterMap.get(position, null)
|
|
assert(fighterScene != null)
|
|
fighterScene.setFighter(fighters[position])
|