public static ImmediateItem ImmediateClone(int index) { ImmediateItem newItem = new ImmediateItem(immediateItemList[index].Id , immediateItemList[index].Name, immediateItemList[index].DisplayName, immediateItemList[index].Description , immediateItemList[index].Type, immediateItemList[index].Usable, immediateItemList[index].UseEvent); return(newItem); }
private void RegisterImmediateItem() { ImmediateItem moneyUp1 = new ImmediateItem("4001", "MoneyUp1", "돈", "돈이 오른다", "Money을 획득한다", true, ItemEffect.MoneyUp); ImmediateItem sizeUp1 = new ImmediateItem("4001", "sizeUp1", "하급 사이즈 업", "Size가 커진다 ", "Size", true, ItemEffect.SizeUp); immediateItemList.Add(moneyUp1); immediateItemList.Add(sizeUp1); }
//충동시 아이템 획득 private void OnTriggerEnter(Collider other) { InventoryTab inventoryTab = null; switch (majorType) { case MajorTypeEnum.CommonItem: { // 깊은 복사 & 수정 SlotItem item = ItemData.CommonItemClone(index); int dropCount = UnityEngine.Random.Range((int)dropAmountRange.x, (int)dropAmountRange.y + 1); item.Count = dropCount; //아이템이 먹어지는 탭 지정 inventoryTab = TabManager.GetTab(0); inventoryTab.Add(item, true); break; } case MajorTypeEnum.ConsumItem: { SlotItem item = ItemData.ConsumItemClone(index); int dropCount = UnityEngine.Random.Range((int)dropAmountRange.x, (int)dropAmountRange.y + 1); item.Count = dropCount; inventoryTab = TabManager.GetTab(0); inventoryTab.Add(item, true); break; } case MajorTypeEnum.EquipmentItem: { SlotItem item = ItemData.EquipmentItemClone(index); inventoryTab = TabManager.GetTab(0); inventoryTab.Add(item, true); break; } case MajorTypeEnum.ImmediateItem: { int dropAmount = UnityEngine.Random.Range((int)dropAmountRange.x, (int)dropAmountRange.y + 1); ImmediateItem item = ItemData.ImmediateClone(index); item.UseEvent.Invoke(dropAmount); break; } } SlotManager.RefreshAll(); //#### 아이템 먹을때는 인벤토리 켜져있을때만 새로고침하면됨 Destroy(this.gameObject); }