Refactor weapon acquisition system to use named constant for no weapon equipped

This commit is contained in:
2025-10-29 01:27:49 +01:00
parent 6d00b8d6ab
commit 5d86013239
2 changed files with 4 additions and 2 deletions

View File

@@ -7,6 +7,7 @@ namespace GameCore.Combat;
public class WeaponAcquisitionSystem : ISystem public class WeaponAcquisitionSystem : ISystem
{ {
private const int NoWeaponEquipped = -1;
private const string WeaponItemPrefix = "weapon_"; private const string WeaponItemPrefix = "weapon_";
private readonly World _world; private readonly World _world;
@@ -30,7 +31,7 @@ public class WeaponAcquisitionSystem : ISystem
if (!equipment.EquippableWeaponItemIds.Contains(e.Item.ItemId)) if (!equipment.EquippableWeaponItemIds.Contains(e.Item.ItemId))
equipment.EquippableWeaponItemIds.Add(e.Item.ItemId); equipment.EquippableWeaponItemIds.Add(e.Item.ItemId);
if (equipment.CurrentWeaponIndex == -1) if (equipment.CurrentWeaponIndex == NoWeaponEquipped)
{ {
equipment.CurrentWeaponIndex = equipment.EquippableWeaponItemIds.Count - 1; equipment.CurrentWeaponIndex = equipment.EquippableWeaponItemIds.Count - 1;
_world.PublishEvent(new EquipWeaponEvent(e.Target, e.Item.ItemId)); _world.PublishEvent(new EquipWeaponEvent(e.Target, e.Item.ItemId));

View File

@@ -4,6 +4,7 @@ namespace GameCore.Player;
public class EquipmentComponent : IComponent public class EquipmentComponent : IComponent
{ {
private const int NoWeaponIndex = -1;
public List<string> EquippableWeaponItemIds { get; set; } = []; public List<string> EquippableWeaponItemIds { get; set; } = [];
public int CurrentWeaponIndex { get; set; } = -1; // -1 indicates no weapon equipped public int CurrentWeaponIndex { get; set; } = NoWeaponIndex;
} }