Battle System base
This commit is contained in:
48
scripts/Battle/Battle.gd
Normal file
48
scripts/Battle/Battle.gd
Normal 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);
|
10
scripts/Battle/BattleFighter.gd
Normal file
10
scripts/Battle/BattleFighter.gd
Normal file
@@ -0,0 +1,10 @@
|
||||
class_name BattleFighter
|
||||
|
||||
enum BattleFighterTeam {
|
||||
PLAYER,
|
||||
ENEMY
|
||||
};
|
||||
|
||||
var team:BattleFighterTeam;
|
||||
var health:int = 100;
|
||||
var maxHealth:int = 100;
|
Reference in New Issue
Block a user