Made fight fightable

This commit is contained in:
jonathan
2025-09-30 16:23:05 +02:00
parent f27dd199b8
commit 0e315396c9
42 changed files with 889 additions and 251 deletions
+24 -17
View File
@@ -14,10 +14,10 @@ public partial class FightWorld : Node
public class Room
{
public required Dictionary<int, Room> paths;
public required List<EnemyGroup> enemyGroups;
public required List<FighterGroup> enemyGroups;
}
public class EnemyGroup
public class FighterGroup
{
public required List<Fighter> enemies;
}
@@ -26,7 +26,9 @@ public partial class FightWorld : Node
{
public FightHappening.FightState fightState = FightHappening.FightState.None;
public FighterStack fighterStack = new();
public required EnemyGroup enemyGroup;
public required FighterGroup enemyGroup;
public FightHappening.FightersEnterStaging? fightersEnterStaging;
public FighterAction? actionStaging;
}
public class Fighter
@@ -37,16 +39,18 @@ public partial class FightWorld : Node
BigBlob,
Mavka,
YourMom,
Vesna
Vesna,
Chuha
}
public required Type type;
public required int maxHealth;
public required bool isEnemy;
public required List<FighterAction> availableActions;
public int maxActionPoints = 1;
public int? health = null; // null => initialize to full health on spawn
public bool entered = false;
public int actionsLeft;
public int actionPointsLeft;
public FighterAction AutoSelectAction()
{
@@ -69,6 +73,7 @@ public partial class FightWorld : Node
public World? world = null;
public Room? currentRoom = null;
public FightHappeningData? fightHappeningData = null;
public AllyFighters allyFighters = new();
public void MyEnterTree()
{
@@ -123,9 +128,9 @@ public partial class FightWorld : Node
return room;
}
private List<EnemyGroup> GenerateEnemyGroups()
private List<FighterGroup> GenerateEnemyGroups()
{
var enemyGroups = new List<EnemyGroup>();
var enemyGroups = new List<FighterGroup>();
var enemyGroupCount = GD.RandRange(1, 3);
@@ -137,9 +142,9 @@ public partial class FightWorld : Node
return enemyGroups;
}
private EnemyGroup GenerateSingleEnemyGroup()
private FighterGroup GenerateSingleEnemyGroup()
{
var enemyGroup = new EnemyGroup
var enemyGroup = new FighterGroup
{
enemies = []
};
@@ -158,13 +163,14 @@ public partial class FightWorld : Node
{
var typeRoll = GD.RandRange(0, 99);
var type = typeRoll switch
{
< 50 => Fighter.Type.Blob,
< 75 => Fighter.Type.BigBlob,
< 90 => Fighter.Type.Mavka,
_ => Fighter.Type.YourMom
};
//var type = typeRoll switch
//{
// < 50 => Fighter.Type.Blob,
// < 75 => Fighter.Type.BigBlob,
// < 90 => Fighter.Type.Mavka,
// _ => Fighter.Type.YourMom
//};
var type = Fighter.Type.Blob;
var enemy = new Fighter
{
@@ -172,7 +178,8 @@ public partial class FightWorld : Node
health = null,
isEnemy = true,
maxHealth = 12,
availableActions = [
availableActions =
[
new FighterAction.Skip()
]
};