Fix receiving items from boxes
This commit is contained in:
@@ -461,37 +461,37 @@ public partial class Game : Node3D, IGame
|
|||||||
case ItemTag.ContainsAccessory:
|
case ItemTag.ContainsAccessory:
|
||||||
var accessory = _effectService.GetRandomItemOfType<Accessory>();
|
var accessory = _effectService.GetRandomItemOfType<Accessory>();
|
||||||
_player.Inventory.TryAdd(accessory);
|
_player.Inventory.TryAdd(accessory);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {accessory}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {accessory.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.ContainsArmor:
|
case ItemTag.ContainsArmor:
|
||||||
var armor = _effectService.GetRandomItemOfType<Armor>();
|
var armor = _effectService.GetRandomItemOfType<Armor>();
|
||||||
_player.Inventory.TryAdd(armor);
|
_player.Inventory.TryAdd(armor);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {armor}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {armor.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.ContainsWeapon:
|
case ItemTag.ContainsWeapon:
|
||||||
var weapon = _effectService.GetRandomItemOfType<Weapon>();
|
var weapon = _effectService.GetRandomItemOfType<Weapon>();
|
||||||
_player.Inventory.TryAdd(weapon);
|
_player.Inventory.TryAdd(weapon);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {weapon}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {weapon.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.ContainsBox:
|
case ItemTag.ContainsBox:
|
||||||
var box = _effectService.GetRandomItemOfType<BoxItem>();
|
var box = _effectService.GetRandomItemOfType<BoxItem>();
|
||||||
_player.Inventory.TryAdd(box);
|
_player.Inventory.TryAdd(box);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {box}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {box.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.RandomSpell:
|
case ItemTag.RandomSpell:
|
||||||
var effectItem = _effectService.GetRandomItemOfType<EffectItem>();
|
var effectItem = _effectService.GetRandomItemOfType<EffectItem>();
|
||||||
_player.Inventory.TryAdd(effectItem);
|
_player.Inventory.TryAdd(effectItem);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {effectItem}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {effectItem.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.ContainsRestorative:
|
case ItemTag.ContainsRestorative:
|
||||||
var restorative = _effectService.GetRandomItemOfType<ConsumableItem>();
|
var restorative = _effectService.GetRandomItemOfType<ConsumableItem>();
|
||||||
_player.Inventory.TryAdd(restorative);
|
_player.Inventory.TryAdd(restorative);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {restorative}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {restorative.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.DropTo1HPAndGainRareItem:
|
case ItemTag.DropTo1HPAndGainRareItem:
|
||||||
var rareItem = _effectService.DropTo1HPAndGainRareItem<IBaseInventoryItem>();
|
var rareItem = _effectService.DropTo1HPAndGainRareItem<IBaseInventoryItem>();
|
||||||
_player.Inventory.TryAdd(rareItem);
|
_player.Inventory.TryAdd(rareItem);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {rareItem} but cost dear life.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {rareItem.ItemName} but cost dear life.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.TradeOneRandomItem:
|
case ItemTag.TradeOneRandomItem:
|
||||||
var itemsWithoutBox = _player.Inventory.Items.Where(x => x != boxItem).ToList();
|
var itemsWithoutBox = _player.Inventory.Items.Where(x => x != boxItem).ToList();
|
||||||
@@ -502,7 +502,7 @@ public partial class Game : Node3D, IGame
|
|||||||
_player.Inventory.Remove(randomItem);
|
_player.Inventory.Remove(randomItem);
|
||||||
var newItem = _effectService.GetRandomItemOfType<IBaseInventoryItem>();
|
var newItem = _effectService.GetRandomItemOfType<IBaseInventoryItem>();
|
||||||
_player.Inventory.TryAdd(newItem);
|
_player.Inventory.TryAdd(newItem);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {newItem}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {newItem.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.TradeAllRandomItems:
|
case ItemTag.TradeAllRandomItems:
|
||||||
var newInventory = _effectService.TradeAllRandomItems(boxItem);
|
var newInventory = _effectService.TradeAllRandomItems(boxItem);
|
||||||
@@ -515,11 +515,11 @@ public partial class Game : Node3D, IGame
|
|||||||
case ItemTag.ContainsUnobtainedItem:
|
case ItemTag.ContainsUnobtainedItem:
|
||||||
var unobtainedItem = _effectService.GetUnobtainedItem();
|
var unobtainedItem = _effectService.GetUnobtainedItem();
|
||||||
_player.Inventory.TryAdd(unobtainedItem);
|
_player.Inventory.TryAdd(unobtainedItem);
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {unobtainedItem}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {unobtainedItem.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.ContainsBasicItem:
|
case ItemTag.ContainsBasicItem:
|
||||||
var basicItem = _effectService.GetBasicItem<IBaseInventoryItem>();
|
var basicItem = _effectService.GetBasicItem<IBaseInventoryItem>();
|
||||||
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {basicItem}.");
|
InventoryEventNotification.Invoke($"{boxItem.ItemName} contained {basicItem.ItemName}.");
|
||||||
break;
|
break;
|
||||||
case ItemTag.UnequipAllItems:
|
case ItemTag.UnequipAllItems:
|
||||||
_player.Unequip(_player.EquipmentComponent.EquippedWeapon.Value);
|
_player.Unequip(_player.EquipmentComponent.EquippedWeapon.Value);
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ public class ItemDatabase
|
|||||||
var armorInfo = GD.Load<ArmorStats>($"res://src/items/armor/resources/{armor}".TrimSuffix(".remap"));
|
var armorInfo = GD.Load<ArmorStats>($"res://src/items/armor/resources/{armor}".TrimSuffix(".remap"));
|
||||||
var armorScene = ResourceLoader.Load<PackedScene>("res://src/items/armor/Armor.tscn").Instantiate<Armor>();
|
var armorScene = ResourceLoader.Load<PackedScene>("res://src/items/armor/Armor.tscn").Instantiate<Armor>();
|
||||||
armorScene.Stats = armorInfo;
|
armorScene.Stats = armorInfo;
|
||||||
|
armorScene.Init();
|
||||||
if (!database.Contains(armorScene))
|
if (!database.Contains(armorScene))
|
||||||
database.Add(armorScene);
|
database.Add(armorScene);
|
||||||
}
|
}
|
||||||
@@ -80,6 +81,7 @@ public class ItemDatabase
|
|||||||
var weaponInfo = GD.Load<WeaponStats>($"res://src/items/weapons/resources/{weapon}".TrimSuffix(".remap"));
|
var weaponInfo = GD.Load<WeaponStats>($"res://src/items/weapons/resources/{weapon}".TrimSuffix(".remap"));
|
||||||
var weaponScene = ResourceLoader.Load<PackedScene>("res://src/items/weapons/Weapon.tscn").Instantiate<Weapon>();
|
var weaponScene = ResourceLoader.Load<PackedScene>("res://src/items/weapons/Weapon.tscn").Instantiate<Weapon>();
|
||||||
weaponScene.Stats = weaponInfo;
|
weaponScene.Stats = weaponInfo;
|
||||||
|
weaponScene.Init();
|
||||||
if (!database.Contains(weaponScene))
|
if (!database.Contains(weaponScene))
|
||||||
database.Add(weaponScene);
|
database.Add(weaponScene);
|
||||||
}
|
}
|
||||||
@@ -89,6 +91,7 @@ public class ItemDatabase
|
|||||||
var accessoryInfo = GD.Load<AccessoryStats>($"res://src/items/accessory/resources/{accessory}".TrimSuffix(".remap"));
|
var accessoryInfo = GD.Load<AccessoryStats>($"res://src/items/accessory/resources/{accessory}".TrimSuffix(".remap"));
|
||||||
var accessoryScene = ResourceLoader.Load<PackedScene>("res://src/items/accessory/Accessory.tscn").Instantiate<Accessory>();
|
var accessoryScene = ResourceLoader.Load<PackedScene>("res://src/items/accessory/Accessory.tscn").Instantiate<Accessory>();
|
||||||
accessoryScene.Stats = accessoryInfo;
|
accessoryScene.Stats = accessoryInfo;
|
||||||
|
accessoryScene.Init();
|
||||||
if (!database.Contains(accessoryScene))
|
if (!database.Contains(accessoryScene))
|
||||||
database.Add(accessoryScene);
|
database.Add(accessoryScene);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user