コード例 #1
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void OnSorted()
    {
        var creatures = m_SortInfo.GetFilteredCreatures(c => c.Idx != m_Creature.Idx);

        List <EnchantHero> items = new List <EnchantHero>();

        for (int i = 0; i < m_HeroGrid.transform.childCount; ++i)
        {
            items.Add(m_HeroGrid.transform.GetChild(i).gameObject.GetComponent <EnchantHero>());
        }
        m_HeroGrid.transform.DetachChildren();

        foreach (Creature creature in creatures)
        {
            if (creature.Grade == 0)
            {
                continue;
            }

            EnchantHero item = items.Find(i => i.Creature == creature);
            m_HeroGrid.AddChild(item.transform, false);
            items.Remove(item);
        }

        foreach (var item in items)
        {
            m_HeroGrid.AddChild(item.transform, false);
        }

        m_HeroGrid.Reposition();
        m_HeroScroll.ResetPosition();
    }
コード例 #2
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void OnCreatureOverEnchant(C2G.CreatureOverEnchant packet, C2G.CreatureOverEnchantAck ack)
    {
        EnchantHero enchant_hero = m_Heroes.Find(h => h.Creature == m_OverEnchantMaterial.Creature);

        CreatureManager.Instance.Remove(m_OverEnchantMaterial.Creature.Idx);

        m_Creature.SetEnchant(ack.creature_enchant, 0);
        m_Hero.Init(m_Creature, null, null);

        m_Heroes.Remove(enchant_hero);


        --m_CreatureCount;

        enchant_hero.Init(null);
        enchant_hero.transform.SetParent(null, false);
        enchant_hero.transform.SetParent(m_HeroGrid.transform, false);

        m_HeroGrid.Reposition();

        InitInfo();

        OverEnchantInit();

        Network.PlayerInfo.UseGoodsValue(PacketInfo.pe_GoodsType.token_gold, ack.use_gold);

        GameMain.Instance.UpdatePlayerInfo();

        m_OverEnchantParticleContainer.Play();
        Tooltip.Instance.ShowMessageKey("HeroEnchantSuccess");
    }
コード例 #3
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void InitHeroItem()
    {
        heroItemPrefabManager.Clear();

        m_Heroes = new List <EnchantHero>();
        var creatures = m_SortInfo.GetFilteredCreatures(c => c.Idx != m_Creature.Idx);

        m_CreatureCount = creatures.Count;

        foreach (Creature creature in creatures)
        {
            if (creature.Grade == 0)
            {
                continue;
            }

            EnchantHero item = heroItemPrefabManager.GetNewObject <EnchantHero>(m_HeroGrid.transform, Vector3.zero);
            item.Init(creature, OnToggleCharacter, OnDeepTouchCharacter);

            m_Heroes.Add(item);
        }

        for (int i = 0; i < 5; ++i)
        {
            EnchantHero item = heroItemPrefabManager.GetNewObject <EnchantHero>(m_HeroGrid.transform, Vector3.zero);
            item.Init(null);
        }

        m_HeroGrid.Reposition();
        m_HeroScroll.ResetPosition();

        RefreshInfo();
    }
コード例 #4
0
    public void Init(Item soul_stone)
    {
        if (soul_stone == null)
        {
            System.Array.ForEach(gameObject.GetComponentsInChildren(typeof(UIWidget), true), o => o.GetComponent <UIWidget>().enabled = false);
            gameObject.name = "dummy";
            return;
        }
        else
        {
            System.Array.ForEach(gameObject.GetComponentsInChildren(typeof(UIWidget), true), o => o.GetComponent <UIWidget>().enabled = true);
        }

        m_SoulStone = soul_stone;
        m_Info      = m_SoulStone.SoulStoneInfo;

        gameObject.name = m_Info.ID;

        if (m_Hero == null)
        {
            m_Hero = NGUITools.AddChild(gameObject, EnchantHeroPrefab).GetComponent <EnchantHero>();
            m_Hero.GetComponent <BoxCollider2D>().enabled = false;
        }

        m_Hero.InitSoulStone(m_Info);
        m_HeroName.text = m_Info.Creature.Name;

        m_Progress.value  = (float)m_SoulStone.Count / m_Info.LootCount;
        m_PieceCount.text = string.Format("{0}/{1}", m_SoulStone.Count, m_Info.LootCount);
        m_Notify.gameObject.SetActive(false);
    }
コード例 #5
0
ファイル: HeroEvolve.cs プロジェクト: tapenjoyGame/cry
    void InitEvolve()
    {
        heroItemPrefabManager.Clear();
        m_CreatureCount = 0;

        //TeamData team = TeamDataManager.Instance.GetTeam(pe_Team.PVP_Defense);

        bool level_limit   = IsLevelLimit(m_Creature, m_EvolveBaseLevelLimit);
        bool enchant_limit = IsEnchantLimit(m_Creature);
        bool grade_max     = IsGradeLimit(m_Creature);

        //bool pvp_defense = team != null && team.Contains(m_Creature.Idx) == true;

        if (level_limit || enchant_limit || grade_max)
        {
            m_LabelHelp.text = Localization.Get("HeroEvolveInvalidState");

            if (grade_max)
            {
                m_LabelHelp.text += "\n" + Localization.Get("InvalidStateGradeMax");
            }
            else if (enchant_limit)
            {
                m_LabelHelp.text += "\n" + Localization.Get("InvalidStateEnchant");
            }
            else if (level_limit)
            {
                m_LabelHelp.text += "\n" + Localization.Get("InvalidStateLevel");
            }
            //else if (pvp_defense) m_LabelHelp.text += "\n" + Localization.Get("InvalidStatePVPDefenseTeam");

            m_LabelHelpDesc.text = Localization.Format("Help_HeroEvolve", m_EvolveBaseLevelLimit, m_EvolveLevelLimit);
            m_Help.gameObject.SetActive(true);
        }
        else
        {
            if (InitHeroItem() == false)
            {
                m_LabelHelp.text     = Localization.Get("HeroEvolveNotExistsMaterial");
                m_LabelHelpDesc.text = Localization.Format("Help_HeroEvolve", m_EvolveBaseLevelLimit, m_EvolveLevelLimit);
                m_Help.gameObject.SetActive(true);
            }
            else
            {
                m_Help.gameObject.SetActive(false);
            }
        }

        m_EnchantBase = heroItemPrefabManager.GetNewObject <EnchantHero>(EnchantBaseIndicator.transform, Vector3.zero);
        m_EnchantBase.Init(m_Creature);

        m_EnchantMaterial = heroItemPrefabManager.GetNewObject <EnchantHero>(EnchantMaterialIndicator.transform, Vector3.zero);
        InitEvolveMaterialDummy();

        m_LabelEnchantButton.text = m_LabelEnchantMenu.text = Localization.Get("Evolve");
        m_Hero.InitDummy(m_Creature.Info, (short)(Math.Min(6, m_Creature.Grade + 1)), m_Creature.Level, 0, m_Creature.Info.ShowAttackType);
        m_Question.gameObject.SetActive(false);
        InitInfo();
    }
コード例 #6
0
    bool OnClickSelected(EnchantHero hero, bool bSelected)
    {
        var item = m_Creatures.Find(c => c.Creature.Idx == hero.Creature.Idx);

        item.OnBtnCreatureClick();

        return(true);
    }
コード例 #7
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    bool OnToggleCharacter(EnchantHero hero, bool bSelected)
    {
        EnchantMaterial material = m_Materials.Find(m => m.Creature == hero.Creature);

        if (material != null)
        {
            // exists
            material.Init(null);
            ReorderMaterials();
            RefreshInfo();
            return(true);
        }

        if (hero.Creature.IsLock == true)
        {
            Popup.Instance.ShowMessageKey("HeroEnchantConfirmLocked");
            return(false);
        }


        if (GetTotalEnchantPoint() >= 500)
        {
            Tooltip.Instance.ShowMessageKey("HeroEnchantLimit");
            return(false);
        }

        material = m_Materials.Find(m => m.Creature == null);
        if (material == null)
        {
            Tooltip.Instance.ShowMessageKey("HeroEnchantMaterialLimit");
            return(false);
        }

        PacketEnums.pe_Team team_type = TeamDataManager.Instance.CheckTeam(hero.Creature.Idx);
        if (team_type != PacketEnums.pe_Team.Invalid)
        {
            if (TeamDataManager.Instance.CheckTeam(hero.Creature.Idx, PacketEnums.pe_Team.PVP_Defense) == true)
            {
                Popup.Instance.ShowMessageKey("HeroEnchantConfirmTeamPVPDefense");
                return(false);
            }
            if (TeamDataManager.Instance.CheckAdventureTeam(hero.Creature.Idx) == true)
            {
                Popup.Instance.ShowMessageKey("HeroEnchantConfirmTeamInAdventure");
                return(false);
            }
            m_SelectEnchantHero = hero;
            Popup.Instance.ShowConfirmKey(TeamConfirm, "HeroEnchantConfirmTeam");
            return(false);
        }

        material.Init(hero.Creature, hero.Creature.CalculateEnchantPoint(m_Creature), new System.Action <Creature>(OnClickEnchantMaterial));
        RefreshInfo();

        return(true);
    }
コード例 #8
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void OnDeepTouchCharacter(EnchantHero hero)
    {
//        GameMain.Instance.BackMenu(false);
//        GameMain.Instance.BackMenu(false);

        MenuParams menu = new MenuParams();

        menu.AddParam <Creature>(hero.Creature);

        GameMain.Instance.ChangeMenu(GameMenu.HeroInfoDetail, menu);
    }
コード例 #9
0
ファイル: HeroEvolve.cs プロジェクト: tapenjoyGame/cry
    void OnDeepTouchCharacter(EnchantHero hero)
    {
        MenuParams menu = new MenuParams();

        menu.AddParam <Creature>(hero.Creature);
        bool bShowChangeHeroButton = true;

        menu.AddParam("bShowChangeHeroButton", bShowChangeHeroButton);

        GameMain.Instance.ChangeMenu(GameMenu.HeroInfoDetail, menu);
    }
コード例 #10
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
 bool OnToggleOverEnchantMaterials(EnchantHero hero, bool bSelected)
 {
     if (bSelected == false)
     {
         m_OverEnchantPrice.text = "0";
         m_OverEnchantMaterial.InitDummy(null, m_Creature.Grade, 1, m_Creature.Enchant);
     }
     else
     {
         m_OverEnchantPrice.text = string.Format("{0:#,###}", CreatureInfoManager.Instance.Grades[m_Creature.Grade].enchants[m_Creature.Enchant + 1].over_enchant_gold);
         m_OverEnchantMaterial.Init(hero.Creature, OnToggleOverEnchantMaterials, null);
     }
     return(true);
 }
コード例 #11
0
ファイル: HeroEvolve.cs プロジェクト: tapenjoyGame/cry
    bool InitHeroItem()
    {
        heroItemPrefabManager.Clear();

        m_Heroes = new List <EnchantHero>();
        List <Creature> creatures = null;

        if (m_ToggleMix.value)
        {
            creatures = m_SortInfo.GetFilteredCreatures(c => IsMixMaterial(m_Creature, c));
        }
        else
        {
            creatures = m_SortInfo.GetFilteredCreatures(c => IsEvolveMaterial(m_Creature, c));
        }
        m_CreatureCount = creatures.Count;

        if (creatures.Count == 0)
        {
            return(false);
        }

        foreach (Creature creature in creatures)
        {
            if (creature.Grade == 0)
            {
                continue;
            }

            EnchantHero item = heroItemPrefabManager.GetNewObject <EnchantHero>(m_HeroGrid.transform, Vector3.zero);
            item.Init(creature, OnToggleCharacter, OnDeepTouchCharacter);

            m_Heroes.Add(item);
        }

        for (int i = 0; i < 5; ++i)
        {
            EnchantHero item = heroItemPrefabManager.GetNewObject <EnchantHero>(m_HeroGrid.transform, Vector3.zero);
            item.Init(null);
        }

        m_HeroGrid.Reposition();
        m_HeroScroll.ResetPosition();

        RefreshInfo();

        return(true);
    }
コード例 #12
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void TeamConfirm(bool confirm)
    {
        if (confirm == false || m_SelectEnchantHero == null)
        {
            return;
        }

        var material = m_Materials.Find(m => m.Creature == null);

        m_Heroes.Find(h => h == m_SelectEnchantHero).m_toggle.value = true;

        material.Init(m_SelectEnchantHero.Creature, m_SelectEnchantHero.Creature.CalculateEnchantPoint(m_Creature), new System.Action <Creature>(OnClickEnchantMaterial));
        RefreshInfo();

        m_SelectEnchantHero = null;
    }
コード例 #13
0
ファイル: HeroEvolve.cs プロジェクト: tapenjoyGame/cry
    bool OnToggleCharacter(EnchantHero hero, bool bSelected)
    {
        if (bSelected == true)
        {
            if (hero.Creature.IsLock)
            {
                Popup.Instance.ShowMessageKey("HeroEnchantConfirmLocked");
                return(false);
            }
            PacketEnums.pe_Team team_type = TeamDataManager.Instance.CheckTeam(hero.Creature.Idx);
            if (team_type != PacketEnums.pe_Team.Invalid)
            {
                if (TeamDataManager.Instance.CheckTeam(hero.Creature.Idx, PacketEnums.pe_Team.PVP_Defense) == true)
                {
                    Popup.Instance.ShowMessageKey("HeroEnchantConfirmTeamPVPDefense");
                    return(false);
                }
                if (TeamDataManager.Instance.CheckAdventureTeam(hero.Creature.Idx) == true)
                {
                    Popup.Instance.ShowMessageKey("HeroEnchantConfirmTeamInAdventure");
                    return(false);
                }

                m_SelectEnchantHero = hero.Creature;
                Popup.Instance.ShowConfirmKey(TeamConfirm, "HeroEnchantConfirmTeam");
                return(false);
            }
        }

        if (m_EnchantMaterial.Creature != null)
        {
            if (m_EnchantMaterial.Creature == hero.Creature)
            {
                InitMaterialDummy();
                return(true);
            }
            m_Heroes.Find(h => h.Creature == m_EnchantMaterial.Creature).OnBtnCreatureClick();
        }
        m_EnchantMaterial.Init(hero.Creature, OnClickEnchantMaterial);
        m_EnchantCreature = hero.Creature;
        m_parms.AddParam("EnchantCreature", m_EnchantCreature);

        return(true);
    }
コード例 #14
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void EnchantInit()
    {
        m_Hero = EnchantHeroPrefabManager.GetNewObject <EnchantHero>(m_EnchantHeroIndicator.transform, Vector3.zero);
        m_Hero.Init(m_Creature, null, null);

        m_SortInfo.Init(OnSorted, eCreatureSort.Grade, true);

        m_EnchantGold = m_Creature.EnchantGold;

        var event_info = EventHottimeManager.Instance.GetInfoByID("hero_enchant_discount");

        if (event_info != null)
        {
            m_EnchantGold = (int)(m_EnchantGold * event_info.Percent);
        }

        var material_creatures = m_MaterialCreatures != null?m_MaterialCreatures.ToList() : null;

        InitHeroItem();

        if (material_creatures != null && material_creatures.Count > 0)
        {
            for (int i = 0; i < m_Materials.Count; ++i)
            {
                if (i < material_creatures.Count)
                {
                    Creature material_creature = material_creatures[i];
                    m_Heroes.Find(h => h.Creature == material_creature).m_toggle.value = true;
                    m_Materials[i].Init(material_creature, material_creature.CalculateEnchantPoint(m_Creature), new System.Action <Creature>(OnClickEnchantMaterial));
                }
                else
                {
                    m_Materials[i].Init(null);
                }
            }
        }

        m_HelpTitle.gameObject.SetActive(false);
        m_HelpDesc.gameObject.SetActive(false);

        InitInfo();
    }
コード例 #15
0
ファイル: HeroEvolve.cs プロジェクト: tapenjoyGame/cry
    void OnSorted()
    {
        List <Creature> creatures = null;

        if (m_ToggleMix.value)
        {
            creatures = m_SortInfo.GetFilteredCreatures(c => IsMixMaterial(m_Creature, c));
        }
        else
        {
            creatures = m_SortInfo.GetFilteredCreatures(c => IsEvolveMaterial(m_Creature, c));
        }

        List <EnchantHero> items = new List <EnchantHero>();

        for (int i = 0; i < m_HeroGrid.transform.childCount; ++i)
        {
            items.Add(m_HeroGrid.transform.GetChild(i).gameObject.GetComponent <EnchantHero>());
        }
        m_HeroGrid.transform.DetachChildren();

        foreach (Creature creature in creatures)
        {
            if (creature.Grade == 0)
            {
                continue;
            }

            EnchantHero item = items.Find(i => i.Creature == creature);
            m_HeroGrid.AddChild(item.transform, false);
            items.Remove(item);
        }

        foreach (var item in items)
        {
            m_HeroGrid.AddChild(item.transform, false);
        }

        m_HeroGrid.Reposition();
        m_HeroScroll.ResetPosition();
    }
コード例 #16
0
    bool OnToggleCharacter(EnchantHero hero, bool bSelected)
    {
        if (bSelected)
        {
            if (TeamDataManager.Instance.CheckAdventureTeam(hero.Creature.Idx))
            {
                Tooltip.Instance.ShowMessageKey("CreatureInAdventure");
                return(false);
            }
            if (TeamDataManager.Instance.CheckTeam(hero.Creature.Idx, pe_Team.PVP_Defense))
            {
                Tooltip.Instance.ShowMessageKey("CreatureInPvpDefense");
                return(false);
            }
            if (m_Selected.Exists(e => e.Creature != null && e.Creature.Info.IDN == hero.Creature.Info.IDN) == true)
            {
                Tooltip.Instance.ShowMessageKey("CreatureNotUseSame");
                return(false);
            }

            var item = m_Selected.Find(e => e.Creature == null);
            if (item == null)
            {
                Tooltip.Instance.ShowMessageKey("NoMoreSelect");
                return(false);
            }
            var team_type = TeamDataManager.Instance.CheckTeam(hero.Creature.Idx);
            if (team_type == pe_Team.PVP_Defense)
            {
                Popup.Instance.ShowMessageKey("AdventureConfirmTeamPVPDefense");
                return(false);
            }
            item.Init(hero.Creature, OnClickSelected);
        }
        else
        {
            RemoveSelectedCreature(hero.Creature);
        }

        return(true);
    }
コード例 #17
0
ファイル: HeroEnchant.cs プロジェクト: tapenjoyGame/cry
    void OverEnchantInit()
    {
        if (m_Hero == null)
        {
            m_Hero = EnchantHeroPrefabManager.GetNewObject <EnchantHero>(m_EnchantHeroIndicator.transform, Vector3.zero);
        }
        m_Hero.Init(m_Creature, null, null);

        EnchantHeroPrefabManager.Clear();
        DungeonHeroPrefabmanager.Clear();

        m_OverEnchantBase = EnchantHeroPrefabManager.GetNewObject <EnchantHero>(m_OverEnchanteHeroIndicator.transform, Vector3.zero);
        m_OverEnchantBase.Init(m_Creature);

        m_OverEnchantMaterial = EnchantHeroPrefabManager.GetNewObject <EnchantHero>(m_OverEnchantMaterialIndicator.transform, Vector3.zero);
        m_OverEnchantMaterial.InitDummy(null, m_Creature.Grade, 1, m_Creature.Enchant);

        m_OverEnchantResult = DungeonHeroPrefabmanager.GetNewObject <DungeonHero>(m_OverEnchantResultIndicator.transform, Vector3.zero);

        m_OverEnchantPrice.text = "0";

        heroItemPrefabManager.Clear();

        if (IsPossibleOverEnchant() == true && m_Creature.Enchant < 10)
        {
            m_Heroes = new List <EnchantHero>();
            var materials = m_SortInfo.GetFilteredCreatures(c => c.Idx != m_Creature.Idx).Where(c => c.Grade >= 6 && c.Enchant >= m_Creature.Enchant);

            if (materials.Count() > 0)
            {
                foreach (Creature creature in materials)
                {
                    if (creature.Grade == 0)
                    {
                        continue;
                    }

                    EnchantHero item = heroItemPrefabManager.GetNewObject <EnchantHero>(m_HeroGrid.transform, Vector3.zero);
                    item.Init(creature, OnToggleOverEnchantMaterials, null);

                    m_Heroes.Add(item);
                }

                for (int i = 0; i < 5; ++i)
                {
                    EnchantHero item = heroItemPrefabManager.GetNewObject <EnchantHero>(m_HeroGrid.transform, Vector3.zero);
                    item.Init(null);
                }

                m_HeroGrid.Reposition();
                m_HeroScroll.ResetPosition();

                RefreshInfo();

                m_HelpTitle.gameObject.SetActive(false);
                m_HelpDesc.gameObject.SetActive(false);
                m_OverEnchantResult.InitDummy(m_Creature.Info, m_Creature.Grade, m_Creature.Level, (short)(m_Creature.Enchant + 1), m_Creature.Info.ShowAttackType);

                return;
            }
            else
            {
                m_HelpTitle.gameObject.SetActive(true);
                m_HelpDesc.gameObject.SetActive(true);
                m_HelpTitle.text = Localization.Get("OverEnchant_NoMatarials");
                m_HelpDesc.text  = Localization.Get("Help_OverEnchant");
            }
        }
        else
        {
            m_HelpTitle.gameObject.SetActive(true);
            m_HelpDesc.gameObject.SetActive(true);
            m_HelpTitle.text = Localization.Get("OverEnchant_NotPrepare");
            m_HelpDesc.text  = Localization.Get("Help_OverEnchant");
        }
        if (m_Creature.Enchant >= 10)
        {
            m_OverEnchantResult.InitDummy(m_Creature.Info, m_Creature.Grade, m_Creature.Level, 10, m_Creature.Info.ShowAttackType);
        }
        else
        {
            m_OverEnchantResult.InitDummy(m_Creature.Info, m_Creature.Grade, m_Creature.Level, (short)(m_Creature.Enchant + 1), m_Creature.Info.ShowAttackType);
        }
    }
コード例 #18
0
ファイル: HeroEvolve.cs プロジェクト: tapenjoyGame/cry
 bool OnClickEnchantMaterial(EnchantHero hero, bool bSelected)
 {
     m_Heroes.Find(h => h.Creature == hero.Creature).OnBtnCreatureClick();
     return(false);
 }