Overhaul item and inventory and clean up bits and pieces

This commit is contained in:
2026-02-15 01:19:27 -08:00
parent a1f4a29eb3
commit 69b25aacb9
219 changed files with 4378 additions and 2355 deletions

View File

@@ -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)
{