Overhaul item and inventory and clean up bits and pieces
This commit is contained in:
@@ -257,7 +257,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
public void PlayJumpScareAnimation() => PlayerFXAnimations.Play("jump_scare");
|
||||
|
||||
public void IdentifyItem(InventoryItem unidentifiedItem) => _itemReroller.RerollItem(unidentifiedItem, Inventory);
|
||||
public void IdentifyItem(IBaseInventoryItem unidentifiedItem) => _itemReroller.RerollItem(unidentifiedItem, Inventory);
|
||||
|
||||
public int TotalAttack => AttackComponent.CurrentAttack.Value + EquipmentComponent.BonusAttack;
|
||||
|
||||
@@ -298,7 +298,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
|
||||
}
|
||||
|
||||
public void Equip(EquipableItem equipable)
|
||||
public void Equip(IEquipableItem equipable)
|
||||
{
|
||||
if (equipable.ItemTag == ItemTag.MysteryItem)
|
||||
{
|
||||
@@ -310,8 +310,9 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
HealthComponent.RaiseMaximumHP(equipable.BonusHP, false);
|
||||
VTComponent.RaiseMaximumVT(equipable.BonusVT, false);
|
||||
|
||||
if (equipable.Augment != null)
|
||||
equipable.Augment.AugmentType.Apply();
|
||||
if (equipable is IAugmentableItem augmentable)
|
||||
if (augmentable.Augment != null)
|
||||
augmentable.Augment.AugmentType.Apply();
|
||||
|
||||
EquipmentComponent.Equip(equipable);
|
||||
SfxDatabase.Instance.Play(SoundEffect.Equip);
|
||||
@@ -320,13 +321,13 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
PersuaderCrosshair.Show();
|
||||
}
|
||||
|
||||
public void Unequip(EquipableItem equipable)
|
||||
public void Unequip(IEquipableItem equipable)
|
||||
{
|
||||
HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP);
|
||||
VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT);
|
||||
|
||||
if (equipable.Augment != null)
|
||||
equipable.Augment.AugmentType.Remove();
|
||||
if (equipable is IAugmentableItem augmentItem && augmentItem.Augment != null)
|
||||
augmentItem.Augment.AugmentType.Remove();
|
||||
|
||||
EquipmentComponent.Unequip(equipable);
|
||||
SfxDatabase.Instance.Play(SoundEffect.Unequip);
|
||||
@@ -335,15 +336,14 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
PersuaderCrosshair.Hide();
|
||||
}
|
||||
|
||||
public void ApplyNewAugment(IAugmentItem augmentItem, EquipableItem equipableItem)
|
||||
public void ApplyNewAugment(IAugmentItem jewel, IAugmentableItem augmentableItem)
|
||||
{
|
||||
var jewel = augmentItem as Jewel;
|
||||
Inventory.Remove(jewel);
|
||||
|
||||
ApplyNewAugment((dynamic)equipableItem, jewel.Augment);
|
||||
ApplyNewAugment((dynamic)augmentableItem, (jewel as Jewel).Stats.JewelTag);
|
||||
|
||||
if (EquipmentComponent.IsItemEquipped(equipableItem))
|
||||
equipableItem.Augment.AugmentType.Apply();
|
||||
if (augmentableItem is IEquipableItem equipable && EquipmentComponent.IsItemEquipped(equipable))
|
||||
augmentableItem.Augment.AugmentType.Apply();
|
||||
}
|
||||
|
||||
private void ApplyNewAugment(Weapon weapon, JewelTags tag)
|
||||
@@ -772,11 +772,11 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
||||
|
||||
private async void CollisionDetector_AreaEntered(Area3D area)
|
||||
{
|
||||
if (area.GetParent() is InventoryItem inventoryItem)
|
||||
if (area.GetParent() is IBaseInventoryItem inventoryItem)
|
||||
{
|
||||
var isAdded = Inventory.PickUpItem(inventoryItem);
|
||||
if (isAdded)
|
||||
inventoryItem.QueueFree();
|
||||
((Node3D)inventoryItem).QueueFree();
|
||||
}
|
||||
if (area.GetParent() is DroppedItem droppedItem)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user