void OnStoreItemBuy(C2G.StoreGoodsBuy packet, C2G.StoreGoodsBuyAck ack) { switch (m_ItemGoods.StoreID) { case "Gem": { Network.PlayerInfo.AddGoodsValue(m_ItemGoods.Target.goods_type, m_ItemGoods.Target.goods_value + m_ItemGoods.bonus); Network.PlayerInfo.AddGoodsValue(PacketInfo.pe_GoodsType.token_mileage, m_ItemGoods.mileage); MetapsAnalyticsScript.TrackPurchase(packet.item_id, m_ItemGoods.Price.goods_value, "WON"); } break; case "Gold": { m_StoreLimitInfo.available_count--; m_LabelNeedTicket.text = Localization.Format("StoreLimit", m_ItemGoods.limit, m_StoreLimitInfo.available_count); Network.PlayerInfo.AddGoodsValue(m_ItemGoods.Target.goods_type, m_ItemGoods.Target.goods_value + m_ItemGoods.bonus); Network.PlayerInfo.UseGoods(m_ItemGoods.Price); } break; case "Energy": { m_StoreLimitInfo.available_count--; m_LabelNeedTicket.text = Localization.Format("StoreLimit", m_ItemGoods.limit, m_StoreLimitInfo.available_count); Network.PlayerInfo.AddEnergy((int)(m_ItemGoods.Target.goods_value + m_ItemGoods.bonus)); Network.PlayerInfo.UseGoods(m_ItemGoods.Price); } break; } GameMain.Instance.UpdatePlayerInfo(); GameMain.Instance.UpdateMenu(); Tooltip.Instance.ShowMessageKey("SuccessPurchased"); }
void OnPopupOk(StoreConfirmParam parm) { if (m_ItemLoot != null) { long price = Network.PlayerInfo.GetGoodsValue(m_ItemLoot.Price.goods_type); if (m_Free.activeInHierarchy == false && m_ItemLoot.Price.goods_value > price) { Popup.Instance.Show(ePopupMode.MoveStore, m_ItemLoot.Price.goods_type); return; } switch (m_ItemLoot.LootType) { case "LootHero": { if (Network.Instance.CheckCreatureSlotCount(m_ItemLoot.LootCount, true, true, OnLootMore) == false) { return; } if (m_ItemLoot.LootCount == 1) { C2G.LootCreature packet = new C2G.LootCreature(); packet.loot_id = m_ItemLoot.ID; packet.is_free = m_Free.activeSelf; if (Tutorial.Instance.Completed == false) { C2G.TutorialState tutorial_packet = new C2G.TutorialState(); tutorial_packet.tutorial_state = (short)Tutorial.Instance.CurrentState; tutorial_packet.next_tutorial_state = (short)Tutorial.Instance.NextState; tutorial_packet.loot_creature = packet; Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialLootCreature); } else { Network.GameServer.JsonAsync <C2G.LootCreature, C2G.LootCreatureAck>(packet, OnLootCreature); } return; } else if (m_ItemLoot.LootCount == 10) { C2G.LootCreature10 packet = new C2G.LootCreature10(); packet.loot_id = m_ItemLoot.ID; Network.GameServer.JsonAsync <C2G.LootCreature10, C2G.LootCreature10Ack>(packet, OnLootCreature10); return; } } break; case "LootRune": case "LootItem": { if (m_ItemLoot.LootType == "LootRune" && Network.Instance.CheckRuneSlotCount(m_ItemLoot.LootCount, true, true, OnLootMore) == false) { return; } if (m_ItemLoot.LootCount == 1) { C2G.StoreLootItem packet = new C2G.StoreLootItem(); packet.loot_id = m_ItemLoot.ID; packet.is_free = m_Free.activeSelf; Network.GameServer.JsonAsync <C2G.StoreLootItem, C2G.StoreLootItemAck>(packet, OnLootItem); return; } else if (m_ItemLoot.LootCount == 10) { C2G.StoreLootItem10 packet = new C2G.StoreLootItem10(); packet.loot_id = m_ItemLoot.ID; Network.GameServer.JsonAsync <C2G.StoreLootItem10, C2G.StoreLootItem10Ack>(packet, OnLootItem10); return; } } break; } } else if (m_ItemGoods != null) { if (m_ItemGoods.StoreID != "Gem") { long price = Network.PlayerInfo.GetGoodsValue(m_ItemGoods.Price.goods_type); if (m_ItemGoods.Price.goods_value > price) { Popup.Instance.Show(ePopupMode.MoveStore, m_ItemGoods.Price.goods_type); return; } } C2G.StoreGoodsBuy packet = new C2G.StoreGoodsBuy(); packet.store_id = m_ItemGoods.StoreID; packet.item_id = m_ItemGoods.ID; Network.GameServer.JsonAsync <C2G.StoreGoodsBuy, C2G.StoreGoodsBuyAck>(packet, OnStoreItemBuy); return; } Tooltip.Instance.ShowMessageKey("NotImplement"); }