void OnCreatureEnchant(C2G.CreatureEnchant packet, C2G.CreatureEnchantAck ack) { m_Creature.SetEnchant(ack.creature_enchant, ack.creature_enchant_point); m_Hero.Init(m_Creature, null, null); foreach (var material in m_Materials.Where(m => m.Creature != null)) { EnchantHero enchant_hero = m_Heroes.Find(h => h.Creature == material.Creature); m_Heroes.Remove(enchant_hero); enchant_hero.Init(null); enchant_hero.transform.SetParent(null, false); enchant_hero.transform.SetParent(m_HeroGrid.transform, false); CreatureManager.Instance.Remove(material.Creature.Idx); material.Init(null); --m_CreatureCount; } InitInfo(); m_HeroGrid.Reposition(); Network.PlayerInfo.UseGoodsValue(PacketInfo.pe_GoodsType.token_gold, ack.use_gold); GameMain.Instance.UpdatePlayerInfo(); m_EnchantParticleContainer.Play(); Tooltip.Instance.ShowMessageKey("HeroEnchantSuccess"); }
void EnchantConfirm(bool confirm) { if (confirm == false) { return; } C2G.CreatureEnchant packet = new C2G.CreatureEnchant(); packet.creature_idx = m_Creature.Idx; packet.creature_grade = m_Creature.Grade; packet.materials = new List <pd_CreatureEnchantInfo>(); foreach (var material in m_Materials.Where(m => m.Creature != null).Select(m => m.Creature)) { var data = new pd_CreatureEnchantInfo(); data.creature_idx = material.Idx; data.creature_grade = material.Grade; packet.materials.Add(data); } 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.creature_enchant = packet; Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialCreatureEnchant); } else { Network.GameServer.JsonAsync <C2G.CreatureEnchant, C2G.CreatureEnchantAck>(packet, OnCreatureEnchant); } }