Overhaul item and inventory and clean up bits and pieces
This commit is contained in:
@@ -6,23 +6,23 @@ using Zennysoft.Ma.Adapter.Entity;
|
||||
namespace Zennysoft.Game.Ma;
|
||||
public class EquipmentComponent : IEquipmentComponent
|
||||
{
|
||||
public IAutoProp<EquipableItem> EquippedWeapon => _equippedWeapon;
|
||||
public IAutoProp<IWeapon> EquippedWeapon => _equippedWeapon;
|
||||
|
||||
public IAutoProp<EquipableItem> EquippedArmor => _equippedArmor;
|
||||
public IAutoProp<IArmor> EquippedArmor => _equippedArmor;
|
||||
|
||||
public IAutoProp<EquipableItem> EquippedAccessory => _equippedAccessory;
|
||||
public IAutoProp<IAccessory> EquippedAccessory => _equippedAccessory;
|
||||
|
||||
public IAutoProp<EquipableItem> EquippedAmmo => _equippedAmmo;
|
||||
public IAutoProp<IEquipableItem> EquippedAmmo => _equippedAmmo;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedWeapon;
|
||||
public AutoProp<IWeapon> _equippedWeapon;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedArmor;
|
||||
public AutoProp<IArmor> _equippedArmor;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedAccessory;
|
||||
public AutoProp<IAccessory> _equippedAccessory;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedAmmo;
|
||||
public AutoProp<IEquipableItem> _equippedAmmo;
|
||||
|
||||
public event Action<EquipableItem> EquipmentChanged;
|
||||
public event Action<IEquipableItem> EquipmentChanged;
|
||||
|
||||
public int BonusAttack => _equippedWeapon.Value.BonusAttack + _equippedArmor.Value.BonusAttack + _equippedAccessory.Value.BonusAttack;
|
||||
|
||||
@@ -38,10 +38,10 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
|
||||
public EquipmentComponent()
|
||||
{
|
||||
_equippedWeapon = new AutoProp<EquipableItem>(new Weapon());
|
||||
_equippedArmor = new AutoProp<EquipableItem>(new Armor());
|
||||
_equippedAccessory = new AutoProp<EquipableItem>(new Accessory());
|
||||
_equippedAmmo = new AutoProp<EquipableItem>(new Ammo());
|
||||
_equippedWeapon = new AutoProp<IWeapon>(new Weapon());
|
||||
_equippedArmor = new AutoProp<IArmor>(new Armor());
|
||||
_equippedAccessory = new AutoProp<IAccessory>(new Accessory());
|
||||
_equippedAmmo = new AutoProp<IEquipableItem>(new Ammo());
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
@@ -52,7 +52,7 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
_equippedAmmo.OnNext(new Ammo());
|
||||
}
|
||||
|
||||
public void Equip(EquipableItem equipable)
|
||||
public void Equip(IEquipableItem equipable)
|
||||
{
|
||||
if (equipable is Weapon weapon)
|
||||
_equippedWeapon.OnNext(weapon);
|
||||
@@ -65,7 +65,7 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
EquipmentChanged?.Invoke(equipable);
|
||||
}
|
||||
|
||||
public void Unequip(EquipableItem equipable)
|
||||
public void Unequip(IEquipableItem equipable)
|
||||
{
|
||||
if (equipable is Weapon weapon)
|
||||
_equippedWeapon.OnNext(new Weapon());
|
||||
@@ -78,15 +78,12 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
EquipmentChanged?.Invoke(equipable);
|
||||
}
|
||||
|
||||
public bool IsItemEquipped(InventoryItem item)
|
||||
public bool IsItemEquipped(IEquipableItem item)
|
||||
{
|
||||
if (item is not EquipableItem)
|
||||
return false;
|
||||
|
||||
return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value || item == _equippedAmmo.Value;
|
||||
}
|
||||
|
||||
public void UpdateEquipment(EquipableItem equipable) => EquipmentChanged?.Invoke(equipable);
|
||||
public void UpdateEquipment(IEquipableItem equipable) => EquipmentChanged?.Invoke(equipable);
|
||||
|
||||
public bool AugmentableEquipmentExists()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user