public void SetButtonActions(UnityAction gotoAction, UnityAction clearAction) { GoToButton.onClick.RemoveAllListeners(); GoToButton.onClick.AddListener(gotoAction); AddButton.onClick.RemoveAllListeners(); AddButton.onClick.AddListener(delegate { LevelPropertyForm_ShopItemTypeDropdown sitd = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.LevelPropertyForm_ShopItemTypeDropdown].AllocateGameObject <LevelPropertyForm_ShopItemTypeDropdown>(ShopItemContainer); sitd.Initialize(onDeleteButtonClick: delegate { My_LevelPropertyForm_ShopItemTypeDropdown.Remove(sitd); sitd.PoolRecycle(); }, onAddShopItem : delegate(ShopItem.ShopItemTypes type) { My_LevelPropertyForm_ShopItemTypeDropdown.Remove(sitd); sitd.PoolRecycle(); ShopItem si = null; switch (type) { case ShopItem.ShopItemTypes.Card: { si = new ShopItem_Card(100, 1, 50, false); break; } case ShopItem.ShopItemTypes.Budget: { si = new ShopItem_Budget(100, 50, 10, false); break; } case ShopItem.ShopItemTypes.LifeUpperLimit: { si = new ShopItem_LifeUpperLimit(100, 2, 10, false); break; } case ShopItem.ShopItemTypes.EnergyUpperLimit: { si = new ShopItem_EnergyUpperLimit(100, 2, 10, false); break; } } Cur_ShopItems.Add(si); Refresh(); }); My_LevelPropertyForm_ShopItemTypeDropdown.Add(sitd); }); ClearButton.onClick.RemoveAllListeners(); ClearButton.onClick.AddListener(clearAction); }
public static ShopItem Deserialize(DataStream reader) { ShopItemTypes shopItemType = (ShopItemTypes)reader.ReadSInt32(); int price = reader.ReadSInt32(); int probability = reader.ReadSInt32(); bool isSingleton = reader.ReadByte() == 0x01; int shopItemID = reader.ReadSInt32(); ShopItem si = null; switch (shopItemType) { case ShopItemTypes.Card: { int rareLevel = reader.ReadSInt32(); int generateCardID = reader.ReadSInt32(); si = new ShopItem_Card(price, rareLevel, probability, isSingleton); ((ShopItem_Card)si).GenerateCardID = generateCardID; break; } case ShopItemTypes.Budget: { int budget = reader.ReadSInt32(); si = new ShopItem_Budget(price, budget, probability, isSingleton); break; } case ShopItemTypes.LifeUpperLimit: { int lifeUpperLimit = reader.ReadSInt32(); si = new ShopItem_LifeUpperLimit(price, lifeUpperLimit, probability, isSingleton); break; } case ShopItemTypes.EnergyUpperLimit: { int energyUpperLimit = reader.ReadSInt32(); si = new ShopItem_EnergyUpperLimit(price, energyUpperLimit, probability, isSingleton); break; } } si.ShopItemID = shopItemID; return(si); }