Add projectiles
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using Chickensoft.Collections;
|
||||
using Godot;
|
||||
using System;
|
||||
using Zennysoft.Ma.Adapter;
|
||||
using Zennysoft.Ma.Adapter.Entity;
|
||||
@@ -13,12 +12,16 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
|
||||
public IAutoProp<EquipableItem> EquippedAccessory => _equippedAccessory;
|
||||
|
||||
public IAutoProp<EquipableItem> EquippedAmmo => _equippedAmmo;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedWeapon;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedArmor;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedAccessory;
|
||||
|
||||
public AutoProp<EquipableItem> _equippedAmmo;
|
||||
|
||||
public event Action<EquipableItem> EquipmentChanged;
|
||||
|
||||
public int BonusAttack => _equippedWeapon.Value.BonusAttack + _equippedArmor.Value.BonusAttack + _equippedAccessory.Value.BonusAttack;
|
||||
@@ -38,6 +41,7 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
_equippedWeapon = new AutoProp<EquipableItem>(new Weapon());
|
||||
_equippedArmor = new AutoProp<EquipableItem>(new Armor());
|
||||
_equippedAccessory = new AutoProp<EquipableItem>(new Accessory());
|
||||
_equippedAmmo = new AutoProp<EquipableItem>(new Ammo());
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
@@ -45,6 +49,7 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
_equippedWeapon.OnNext(new Weapon());
|
||||
_equippedArmor.OnNext(new Armor());
|
||||
_equippedAccessory.OnNext(new Accessory());
|
||||
_equippedAmmo.OnNext(new Ammo());
|
||||
}
|
||||
|
||||
public void Equip(EquipableItem equipable)
|
||||
@@ -55,6 +60,8 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
_equippedArmor.OnNext(armor);
|
||||
if (equipable is Accessory accessory)
|
||||
_equippedAccessory.OnNext(accessory);
|
||||
if (equipable is Ammo ammo)
|
||||
_equippedAmmo.OnNext(ammo);
|
||||
EquipmentChanged?.Invoke(equipable);
|
||||
}
|
||||
|
||||
@@ -66,6 +73,8 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
_equippedArmor.OnNext(new Armor());
|
||||
if (equipable is Accessory accessory)
|
||||
_equippedAccessory.OnNext(new Accessory());
|
||||
if (equipable is Ammo ammo)
|
||||
_equippedAmmo.OnNext(new Ammo());
|
||||
EquipmentChanged?.Invoke(equipable);
|
||||
}
|
||||
|
||||
@@ -74,7 +83,7 @@ public class EquipmentComponent : IEquipmentComponent
|
||||
if (item is not EquipableItem)
|
||||
return false;
|
||||
|
||||
return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value;
|
||||
return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value || item == _equippedAmmo.Value;
|
||||
}
|
||||
|
||||
public void UpdateEquipment(EquipableItem equipable) => EquipmentChanged?.Invoke(equipable);
|
||||
|
||||
Reference in New Issue
Block a user