void Init(ShowLootPickerSignal showLootPickerSignal, ItemSelectedSignal selectedSignal) { _showLootPickerSignal = showLootPickerSignal; _selectedLootSignal = selectedSignal; foreach (var item in StartItems) { AddItem(item); } }
private void AddItemAfterSelect(Item selectedItem) { _selectedLootSignal -= AddItemAfterSelect; var healtData = this.gameObject.GetComponentInChildren <HealthData>(); if (_oldItem != selectedItem) { Destroy(_oldItem.gameObject); if (healtData != null) { healtData.RemoveArmorItem(_oldItem); } } if (_newItem != selectedItem) { Destroy(_newItem.gameObject); if (healtData != null) { healtData.RemoveArmorItem(_newItem); } } AddItem(selectedItem); }
public void AddItem(Item item) { if (item == null) { return; } if (!Items.ContainsKey(item.SlotType)) { Items.Add(item.SlotType, item); var healtData = this.gameObject.GetComponentInChildren <HealthData>(); if (healtData != null) { if (item.BaseArmor > 0) { healtData.ArmorItems.Push(item); } } item.SetParentInventory(this); item.AttachedToBody = true; Items[item.SlotType] = item; UpdateItemView(); } else { if (gameObject.tag.ToString() != "Player") { return; } _oldItem = Items[item.SlotType]; _newItem = item; Items.Remove(item.SlotType); _selectedLootSignal += AddItemAfterSelect; _showLootPickerSignal.Fire(item, _oldItem); } }
private void Init(ItemSelectedSignal signal) { _itemSelectedSignal = signal; }