Example #1
0
    void OnEquipConfirm(bool confirm)
    {
        if (confirm == false)
        {
            return;
        }

        C2G.RuneEquip packet = new C2G.RuneEquip();
        packet.rune_idx     = m_PopupRune.Rune.RuneIdx;
        packet.rune_id      = m_PopupRune.Rune.Info.ID;
        packet.creature_idx = m_Creature.Idx;
        packet.creature_id  = m_Creature.Info.ID;
        if (Tutorial.Instance.Completed == false)
        {
            C2G.TutorialState tutorial_packet = new C2G.TutorialState();
            tutorial_packet.tutorial_state      = Network.PlayerInfo.tutorial_state;
            tutorial_packet.next_tutorial_state = (short)Tutorial.Instance.CurrentState;
            tutorial_packet.rune_equip          = packet;
            Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnRuneEquipTutorial);
        }
        else
        {
            Network.GameServer.JsonAsync <C2G.RuneEquip, NetworkCore.AckDefault>(packet, OnRuneEquip);
        }
    }
Example #2
0
    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);
        }
    }
Example #3
0
    private void EnterBattle()
    {
        C2G.EnterBattle packet = new C2G.EnterBattle();
        packet.map_id     = m_StageInfo.MapInfo.ID;
        packet.stage_id   = m_StageInfo.ID;
        packet.difficulty = m_StageInfo.Difficulty;

        if (m_StageInfo.MapInfo.AvailableTags.Count > 0)
        {
            packet.creature_ids = m_TeamData.Creatures.Select(c => c.creature.Info.ID).ToList();
        }

        if (Tutorial.Instance.Completed == true)
        {
            if (m_TeamData.IsEqual(m_TeamDataBackup) == false)
            {
                packet.team_data = m_TeamData.CreateSaveData();
            }
            Network.GameServer.JsonAsync <C2G.EnterBattle, C2G.EnterBattleAck>(packet, OnEnterBattle);
        }
        else
        {
            C2G.TutorialState tutorial_packet = new C2G.TutorialState();
            tutorial_packet.enter_battle        = packet;
            tutorial_packet.tutorial_state      = Network.PlayerInfo.tutorial_state;
            tutorial_packet.next_tutorial_state = (short)Tutorial.Instance.CurrentState;
            Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialEnterBattle);
        }
    }
Example #4
0
    public void OnClickAllMax()
    {
        if (m_Creature.AllSkillEnchantCost() == 0)
        {
            return;
        }
        if (Network.Instance.CheckGoods(PacketInfo.pe_GoodsType.token_gold, m_Creature.AllSkillEnchantCost()) == false)
        {
            return;
        }

        C2G.SkillEnchantAllMax packet = new C2G.SkillEnchantAllMax();
        packet.creature_idx   = m_Creature.Idx;
        packet.creature_id    = m_Creature.Info.ID;
        packet.creature_level = m_Creature.Level;
        packet.skill_level    = m_Creature.Skills.GetRange(1, m_Creature.Skills.Count - 1).Select(s => s.Level).ToList();

        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.skill_enchant_all_max = packet;
            Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialSkillEnchant);
        }
        else
        {
            Network.GameServer.JsonAsync <C2G.SkillEnchantAllMax, C2G.SkillEnchantAck>(packet, OnSkillEnchantAllMax);
        }
    }
Example #5
0
 private void TutorialComplete()
 {
     gameObject.SetActive(false);
     if (GameMain.Instance.gameObject.activeSelf == false)
     {
         TimeManager.Instance.SetPause(false);
     }
     C2G.TutorialState tutorial_packet = new C2G.TutorialState();
     tutorial_packet.tutorial_state      = (short)TutorialInfoManager.Instance.CompletedState;
     tutorial_packet.next_tutorial_state = (short)TutorialInfoManager.Instance.CompletedState;
     Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialEndHandler);
 }
Example #6
0
    void OnTutorialEndHandler(C2G.TutorialState packet, C2G.TutorialStateAck ack)
    {
        Network.PlayerInfo.tutorial_state = TutorialInfoManager.Instance.CompletedState;
        Network.Instance.ProcessReward3Ack(ack.rewards_ack);

        TutorialInfo info = TutorialInfoManager.Instance.GetInfoByIdn(TutorialInfoManager.Instance.CompletedState) as TutorialInfo;

        Popup.Instance.Show(ePopupMode.Reward, info.rewards, Localization.Get("TutorialRewardTitle"), Localization.Get("GetThisRewards"), ack.rewards_ack);

        MetapsAnalyticsScript.TrackEvent("Tutorial", "Finish");
#if SH_DEV || UNITY_EDITOR
        BtnSkip.SetActive(Completed == false);
#endif
    }
Example #7
0
    public void OnClick()
    {
        m_btnLevelUp.isEnabled = false;
        m_btnLevelUp.SetPressed(false);

        C2G.SkillEnchantLevel packet = new C2G.SkillEnchantLevel();
        packet.creature_idx = m_Skill.Creature.Idx;
        packet.creature_id  = m_Skill.Creature.Info.ID;
        packet.skill_id     = m_Skill.Info.ID;
        packet.skill_index  = m_Skill.Index;
        packet.skill_level  = m_Skill.Level;

        if (add_level > 1)
        {
            packet.add_level = add_level;
        }
        else
        {
            if (m_Skill.Creature.Level <= m_Skill.Level)
            {
                Tooltip.Instance.ShowMessageKey("NotAvailableSkillEnchantLevel");
                return;
            }
            if (current_enchant_gold > current_gold)
            {
                Popup.Instance.Show(ePopupMode.MoveStore, pe_GoodsType.token_gold);
                return;
            }

            add_level        = 1;
            packet.add_level = add_level;
        }

        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.skill_enchant       = packet;
            Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialSkillEnchant);
        }
        else
        {
            Network.GameServer.JsonAsync <C2G.SkillEnchantLevel, C2G.SkillEnchantAck>(packet, OnSkillEnchant);
        }
    }
Example #8
0
    void SetBattleEndStage()
    {
        C2G.EndBattle _packet = new C2G.EndBattle();
        _packet.battle_type  = pe_Battle.Stage;
        _packet.end_type     = battleEndType;
        _packet.difficulty   = Network.BattleStageInfo.Difficulty;
        _packet.map_id       = Network.BattleStageInfo.MapInfo.ID;
        _packet.stage_id     = Network.BattleStageInfo.ID;
        _packet.creatures    = new List <PacketInfo.pd_BattleEndCreatureInfo>();
        _packet.is_new_clear = MapClearDataManager.Instance.IsNewClear(Network.BattleStageInfo);

        //List<int> skill_indice = new List<int>();
        for (int i = 0; i < m_TeamData.Creatures.Count; ++i)
        {
            Creature       creature = m_TeamData.Creatures[i].creature;
            BattleCreature bc       = characters.Find(c => c.Idx == creature.Idx) as BattleCreature;
            if (bc == null)
            {
                bc = dead_characters.Find(c => c.Idx == creature.Idx) as BattleCreature;
            }
            _packet.creatures.Add(new PacketInfo.pd_BattleEndCreatureInfo(bc.Idx, bc.IsDead));
            m_TeamData.Creatures[i].auto_skill_index = bc.AutoSkillIndex;
        }
        if (m_TeamData.IsEqual(m_TeamDataBackup) == false || Tutorial.Instance.Completed == false)
        {
            _packet.team_data = m_TeamData.CreateSaveData();
        }

        if (Tutorial.Instance.Completed == false)
        {
            C2G.TutorialState tutorial_packet = new C2G.TutorialState();
            tutorial_packet.tutorial_state      = Network.PlayerInfo.tutorial_state;
            tutorial_packet.next_tutorial_state = (short)Tutorial.Instance.CurrentState;
            tutorial_packet.end_battle          = _packet;

            Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialEndBattleHandler);
        }
        else
        {
            Network.GameServer.JsonAsync <C2G.EndBattle, C2G.EndBattleAck>(_packet, OnEndBattleHandler);
        }
    }
Example #9
0
    void OnEquipEnchant(Equip equip)
    {
        C2G.EquipEnchant packet = new C2G.EquipEnchant();
        packet.equip_idx     = equip.EquipIdx;
        packet.creature_idx  = equip.CreatureIdx;
        packet.equip_id      = equip.Info.ID;
        packet.enchant_level = equip.EnchantLevel;

        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.equip_enchant       = packet;
            Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialEquipEnchant);
        }
        else
        {
            Network.GameServer.JsonAsync <C2G.EquipEnchant, C2G.EquipEnchantAck>(packet, OnEquipEnchant);
        }
    }
Example #10
0
    void EnchantConfirm(bool confirm)
    {
        if (confirm == false)
        {
            return;
        }

        if (m_ToggleMix.value)
        {
            C2G.CreatureMix packet = new C2G.CreatureMix();
            packet.creature_idx          = m_EnchantBase.Creature.Idx;
            packet.creature_grade        = m_EnchantBase.Creature.Grade;
            packet.material_creature_idx = m_EnchantMaterial.Creature.Idx;

            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_mix        = packet;
                Network.GameServer.JsonAsync <C2G.TutorialState, C2G.TutorialStateAck>(tutorial_packet, OnTutorialCreatureMix);
            }
            else
            {
                Network.GameServer.JsonAsync <C2G.CreatureMix, C2G.CreatureMixAck>(packet, OnCreatureMix);
            }
        }
        else
        {
            C2G.CreatureEvolve packet = new C2G.CreatureEvolve();
            packet.creature_idx          = m_EnchantBase.Creature.Idx;
            packet.creature_grade        = m_EnchantBase.Creature.Grade;
            packet.material_creature_idx = m_EnchantMaterial.Creature.Idx;
            Network.GameServer.JsonAsync <C2G.CreatureEvolve, C2G.CreatureEvolveAck>(packet, OnCreatureEvolve);
        }
    }
Example #11
0
 void OnTutorialSkillEnchant(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnSkillEnchantAllMax(packet.skill_enchant_all_max, ack.skill_enchant);
     Tutorial.Instance.AfterNetworking();
 }
Example #12
0
 void OnTutorialEnterBattle(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnEnterBattle(packet.enter_battle, null);
     Tutorial.Instance.AfterNetworking();
 }
Example #13
0
 void OnTutorialLootCreature(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnLootCreature(packet.loot_creature, ack.loot_creature);
     Tutorial.Instance.AfterNetworking();
 }
Example #14
0
    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");
    }
Example #15
0
 void OnRuneEquipTutorial(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnRuneEquip(packet.rune_equip, null);
 }
Example #16
0
 void OnTutorialEndBattleHandler(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     TeamDataManager.Instance.Save();
     OnEndBattleHandler(packet.end_battle, ack.end_battle);
 }
Example #17
0
 void OnTutorialCreatureMix(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnCreatureMix(packet.creature_mix, ack.creature_mix);
     Tutorial.Instance.AfterNetworking();
 }
Example #18
0
 void OnTutorialEquipEnchant(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnEquipEnchant(packet.equip_enchant, ack.equip_enchant);
     Tutorial.Instance.AfterNetworking();
 }
Example #19
0
 void OnTutorialCreatureEnchant(C2G.TutorialState packet, C2G.TutorialStateAck ack)
 {
     OnCreatureEnchant(packet.creature_enchant, ack.creature_enchant);
     Tutorial.Instance.AfterNetworking();
 }