class_name Combat
extends Node2D
@onready var player: BattlePlayer = $Player
@onready var enemy: BattleEnemy = $Enemy
@onready var dialog_box: DialogBox = $DialogBox
var enemy_turn := false
# combatData:
#{
# player: {
# health: 50,
# max_health: 50,
# focus: 20,
# max_focus: 20,
# },
# enemy: {
# health: 10,
# max_health: 10,
# },
# startDialog: [
# "How about this weather?"
# ]
#}
func initialize(combatData) -> void:
player.initialize(combatData.player)
enemy.initialize(combatData.enemy)
if combatData.startDialog.size() > 0:
show_dialog(combatData.startDialog)
await dialog_box.dialog_hidden
start_player_turn()
func show_dialog(dialog: Array) -> void:
print("Initializing dialog: %s" % dialog)
dialog_box.initialize(dialog)
func start_player_turn():
player.start_turn()
func start_enemy_turn():
enemy.start_turn()
func _on_player_turn_end():
enemy.start_turn()
func _on_enemy_turn_end():
player.start_turn()
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
player.turn_ended.connect(_on_player_turn_end)
enemy.turn_ended.connect(_on_enemy_turn_end)
initialize({
"player": {
"health": 50,
"max_health": 75,
"focus": 5,
"max_focus": 30
},
"enemy": {
"health": 12,
"max_health": 12
},
"startDialog": ["How about this weather? Pretty crazy, right??"]
})
dialog_box.dialog_finished.connect(_on_dialog_finished)
func _on_dialog_finished():
print("dialog finished!")