Big fix of inventory system, add accessory item type

This commit is contained in:
2024-09-07 02:22:14 -07:00
parent 33d282ebfb
commit 98d096303c
22 changed files with 229 additions and 100 deletions

View File

@@ -8,7 +8,7 @@ namespace GameJamDungeon
{
public readonly record struct StartGame();
public readonly record struct SetInventoryMode(List<InventoryItemInfo> Inventory);
public readonly record struct SetInventoryMode(List<InventoryItem> Inventory);
public readonly record struct HideInventory();

View File

@@ -9,7 +9,7 @@ public interface IGameRepo : IDisposable
{
event Action? Ended;
AutoProp<List<InventoryItemInfo>> InventoryItems { get; }
AutoProp<List<InventoryItem>> InventoryItems { get; }
IAutoProp<bool> IsInventoryScreenOpened { get; }
@@ -23,13 +23,17 @@ public interface IGameRepo : IDisposable
void SetPlayerGlobalPosition(Vector3 playerGlobalPosition);
public void OnWeaponEquipped(WeaponInfo equippedItem);
public void OnWeaponEquipped(Weapon equippedItem);
public void OnArmorEquipped(ArmorInfo equippedItem);
public void OnArmorEquipped(Armor equippedItem);
public WeaponInfo EquippedWeapon { get; }
public void OnAccessoryEquipped(Accessory equippedItem);
public ArmorInfo EquippedArmor { get; }
public Weapon EquippedWeapon { get; }
public Armor EquippedArmor { get; }
public Accessory EquippedAccessory { get; }
public AutoProp<int> HPBarValue { get; }
@@ -40,10 +44,10 @@ public class GameRepo : IGameRepo
{
public event Action? Ended;
private readonly AutoProp<List<InventoryItemInfo>> _inventoryItems;
private readonly AutoProp<List<InventoryItem>> _inventoryItems;
private readonly AutoProp<bool> _isInventoryScreenOpened;
public AutoProp<List<InventoryItemInfo>> InventoryItems => _inventoryItems;
public AutoProp<List<InventoryItem>> InventoryItems => _inventoryItems;
public IAutoProp<bool> IsInventoryScreenOpened => _isInventoryScreenOpened;
@@ -53,12 +57,16 @@ public class GameRepo : IGameRepo
public IAutoProp<bool> IsPaused => _isPaused;
private readonly AutoProp<bool> _isPaused;
private WeaponInfo _equippedWeapon;
public WeaponInfo EquippedWeapon => _equippedWeapon;
private Weapon _equippedWeapon;
public Weapon EquippedWeapon => _equippedWeapon;
private ArmorInfo _equippedArmor;
private Armor _equippedArmor;
public ArmorInfo EquippedArmor => _equippedArmor;
public Armor EquippedArmor => _equippedArmor;
private Accessory _equippedAccessory;
public Accessory EquippedAccessory => _equippedAccessory;
public AutoProp<int> HPBarValue { get; }
@@ -68,11 +76,11 @@ public class GameRepo : IGameRepo
public GameRepo()
{
_inventoryItems = new AutoProp<List<InventoryItemInfo>>([]);
_inventoryItems = new AutoProp<List<InventoryItem>>([]);
_isInventoryScreenOpened = new AutoProp<bool>(false);
_isPaused = new AutoProp<bool>(false);
_playerGlobalPosition = new AutoProp<Vector3>(Vector3.Zero);
_equippedWeapon = WeaponInfo.Default;
_equippedWeapon = new Weapon();
HPBarValue = new AutoProp<int>(0);
VTBarValue = new AutoProp<int>(0);
}
@@ -91,16 +99,21 @@ public class GameRepo : IGameRepo
public void SetPlayerGlobalPosition(Vector3 playerGlobalPosition) => _playerGlobalPosition.OnNext(playerGlobalPosition);
public void OnWeaponEquipped(WeaponInfo equippedItem)
public void OnWeaponEquipped(Weapon equippedItem)
{
_equippedWeapon = equippedItem;
}
public void OnArmorEquipped(ArmorInfo equippedItem)
public void OnArmorEquipped(Armor equippedItem)
{
_equippedArmor = equippedItem;
}
public void OnAccessoryEquipped(Accessory equippedItem)
{
_equippedAccessory = equippedItem;
}
public void OnGameEnded()
{
Pause();