Battle System base

This commit is contained in:
2025-01-09 18:57:17 -06:00
parent 432d58ae0b
commit 9f8e3b34ea
9 changed files with 99 additions and 17 deletions

48
scripts/Battle/Battle.gd Normal file
View File

@@ -0,0 +1,48 @@
class_name Battle
const BattleFighter = preload("res://scripts/Battle/BattleFighter.gd");
enum FighterPosition {
LEFT_TOP = 0,
LEFT_CENTER = 1,
LEFT_BOTTOM = 2,
CENTER_TOP = 3,
CENTER_CENTER = 4,
CENTER_BOTTOM = 5,
RIGHT_TOP = 6,
RIGHT_CENTER = 7,
RIGHT_BOTTOM = 8,
ENEMY_DEFAULT = LEFT_CENTER,
PLAYER_DEFAULT = RIGHT_CENTER,
};
var fighters:Array = [];
func addFighter(fighter:BattleFighter, position:FighterPosition):
if fighters.has(position):
push_error("Fighter already exists at position");
return
fighters[position] = fighter;
func moveFighter(fighter:BattleFighter, position:FighterPosition):
if fighters.has(position):
push_error("Fighter already exists at position");
return
if not fighters.has(fighter):
push_error("Fighter does not exist");
return
removeFighter(fighter);
addFighter(fighter, position);
func getFightersOfTeam(team:BattleFighter.BattleFighterTeam):
var result = [];
for fighter in fighters:
if fighter.team != team:
continue
result.append(fighter);
return result;
func removeFighter(fighter:BattleFighter):
fighters.erase(fighter);