public void SetData(VersusTowerRewardItem.REWARD_TYPE type, int idx = 0)
        {
            GameManager      instance    = MonoSingleton <GameManager> .Instance;
            VersusTowerParam dataOfClass = DataSource.FindDataOfClass <VersusTowerParam>(((Component)this).get_gameObject(), (VersusTowerParam)null);

            if (dataOfClass == null)
            {
                return;
            }
            VERSUS_ITEM_TYPE versusItemType = VERSUS_ITEM_TYPE.item;
            string           str            = string.Empty;
            int num = 0;

            if (type == VersusTowerRewardItem.REWARD_TYPE.Arrival)
            {
                versusItemType = dataOfClass.ArrivalItemType;
                str            = (string)dataOfClass.ArrivalIteminame;
                num            = (int)dataOfClass.ArrivalItemNum;
            }
            else if (idx >= 0 && idx < dataOfClass.SeasonIteminame.Length)
            {
                versusItemType = dataOfClass.SeasonItemType[idx];
                str            = (string)dataOfClass.SeasonIteminame[idx];
                num            = (int)dataOfClass.SeasonItemnum[idx];
            }
            if (Object.op_Inequality((Object)this.itemObj, (Object)null))
            {
                this.itemObj.SetActive(true);
            }
            if (Object.op_Inequality((Object)this.unitObj, (Object)null))
            {
                this.unitObj.SetActive(false);
            }
            switch (versusItemType)
            {
            case VERSUS_ITEM_TYPE.item:
                if (!Object.op_Inequality((Object)this.itemObj, (Object)null) || !Object.op_Inequality((Object)this.amountObj, (Object)null))
                {
                    break;
                }
                ArtifactIcon componentInChildren1 = (ArtifactIcon)this.itemObj.GetComponentInChildren <ArtifactIcon>();
                if (Object.op_Inequality((Object)componentInChildren1, (Object)null))
                {
                    ((Behaviour)componentInChildren1).set_enabled(false);
                }
                this.itemObj.SetActive(true);
                ItemParam itemParam = instance.GetItemParam(str);
                DataSource.Bind <ItemParam>(this.itemObj, itemParam);
                ItemData data1 = new ItemData();
                data1.Setup(0L, itemParam, num);
                DataSource.Bind <ItemData>(this.amountObj, data1);
                GameParameter.UpdateAll(this.itemObj);
                if (Object.op_Inequality((Object)this.iconParam, (Object)null))
                {
                    this.iconParam.UpdateValue();
                }
                if (Object.op_Inequality((Object)this.frameParam, (Object)null))
                {
                    this.frameParam.UpdateValue();
                }
                if (!Object.op_Inequality((Object)this.rewardName, (Object)null))
                {
                    break;
                }
                this.rewardName.set_text(itemParam.name + string.Format(LocalizedText.Get("sys.CROSS_NUM"), (object)num));
                break;

            case VERSUS_ITEM_TYPE.gold:
                if (Object.op_Inequality((Object)this.itemTex, (Object)null))
                {
                    GameParameter component = (GameParameter)((Component)this.itemTex).GetComponent <GameParameter>();
                    if (Object.op_Inequality((Object)component, (Object)null))
                    {
                        ((Behaviour)component).set_enabled(false);
                    }
                    this.itemTex.set_texture(this.goldTex);
                }
                if (Object.op_Inequality((Object)this.frameTex, (Object)null) && Object.op_Inequality((Object)this.goldBase, (Object)null))
                {
                    this.frameTex.set_sprite(this.goldBase);
                }
                if (Object.op_Inequality((Object)this.rewardName, (Object)null))
                {
                    this.rewardName.set_text(num.ToString() + LocalizedText.Get("sys.GOLD"));
                }
                if (!Object.op_Inequality((Object)this.amountObj, (Object)null))
                {
                    break;
                }
                this.amountObj.SetActive(false);
                break;

            case VERSUS_ITEM_TYPE.coin:
                if (Object.op_Inequality((Object)this.itemTex, (Object)null))
                {
                    GameParameter component = (GameParameter)((Component)this.itemTex).GetComponent <GameParameter>();
                    if (Object.op_Inequality((Object)component, (Object)null))
                    {
                        ((Behaviour)component).set_enabled(false);
                    }
                    this.itemTex.set_texture(this.coinTex);
                }
                if (Object.op_Inequality((Object)this.frameTex, (Object)null) && Object.op_Inequality((Object)this.coinBase, (Object)null))
                {
                    this.frameTex.set_sprite(this.coinBase);
                }
                if (Object.op_Inequality((Object)this.rewardName, (Object)null))
                {
                    this.rewardName.set_text(string.Format(LocalizedText.Get("sys.CHALLENGE_REWARD_COIN"), (object)num));
                }
                if (!Object.op_Inequality((Object)this.amountObj, (Object)null))
                {
                    break;
                }
                this.amountObj.SetActive(false);
                break;

            case VERSUS_ITEM_TYPE.unit:
                if (!Object.op_Inequality((Object)this.unitObj, (Object)null))
                {
                    break;
                }
                if (Object.op_Inequality((Object)this.itemObj, (Object)null))
                {
                    this.itemObj.SetActive(false);
                }
                this.unitObj.SetActive(true);
                UnitParam unitParam = instance.GetUnitParam(str);
                DebugUtility.Assert(unitParam != null, "Invalid unit:" + str);
                UnitData data2 = new UnitData();
                data2.Setup(str, 0, 1, 0, (string)null, 1, EElement.None);
                DataSource.Bind <UnitData>(this.unitObj, data2);
                GameParameter.UpdateAll(this.unitObj);
                if (!Object.op_Inequality((Object)this.rewardName, (Object)null))
                {
                    break;
                }
                this.rewardName.set_text(unitParam.name);
                break;

            case VERSUS_ITEM_TYPE.artifact:
                if (!Object.op_Inequality((Object)this.itemObj, (Object)null))
                {
                    break;
                }
                ArtifactParam artifactParam = instance.MasterParam.GetArtifactParam(str);
                DataSource.Bind <ArtifactParam>(this.itemObj, artifactParam);
                ArtifactIcon componentInChildren2 = (ArtifactIcon)this.itemObj.GetComponentInChildren <ArtifactIcon>();
                if (!Object.op_Inequality((Object)componentInChildren2, (Object)null))
                {
                    break;
                }
                ((Behaviour)componentInChildren2).set_enabled(true);
                componentInChildren2.UpdateValue();
                if (Object.op_Inequality((Object)this.rewardName, (Object)null))
                {
                    this.rewardName.set_text(artifactParam.name);
                }
                if (!Object.op_Inequality((Object)this.amountObj, (Object)null))
                {
                    break;
                }
                this.amountObj.SetActive(false);
                break;
            }
        }
        private void OnTry()
        {
            TrophyParam dataOfClass = DataSource.FindDataOfClass <TrophyParam>(((Component)this).get_gameObject(), (TrophyParam)null);

            if (dataOfClass == null)
            {
                FlowNode_GameObject.ActivateOutputLinks((Component)this, 100);
            }
            else
            {
                QuestParam questParam = new QuestParam();
                PlayerData player     = MonoSingleton <GameManager> .Instance.Player;
                switch (dataOfClass.Objectives[0].type)
                {
                case TrophyConditionTypes.winquest:
                case TrophyConditionTypes.winquestsoldier:
                case TrophyConditionTypes.losequest:
                case TrophyConditionTypes.damage_over:
                case TrophyConditionTypes.complete_all_quest_mission:
                case TrophyConditionTypes.complete_all_quest_mission_total:
                case TrophyConditionTypes.complete_all_mission_count:
                case TrophyConditionTypes.complete_story_mission_count:
                    QuestTypes quest_type1 = QuestTypes.Story;
                    if (!questParam.TransSectionGotoQuest(dataOfClass.Objectives[0].sval_base, out quest_type1, new UIUtility.DialogResultEvent(this.MsgBoxJumpToQuest)))
                    {
                        break;
                    }
                    QuestTypes questTypes1 = quest_type1;
                    switch (questTypes1)
                    {
                    case QuestTypes.Event:
                    case QuestTypes.Gps:
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1007);
                        return;

                    case QuestTypes.Tower:
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1026);
                        return;

                    case QuestTypes.Beginner:
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1028);
                        return;

                    case QuestTypes.MultiGps:
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1005);
                        return;

                    default:
                        if (questTypes1 != QuestTypes.Multi)
                        {
                            FlowNode_GameObject.ActivateOutputLinks((Component)this, 1001);
                            return;
                        }
                        goto case QuestTypes.MultiGps;
                    }

                case TrophyConditionTypes.killenemy:
                case TrophyConditionTypes.getitem:
                case TrophyConditionTypes.playerlv:
                case TrophyConditionTypes.vip:
                case TrophyConditionTypes.stamina:
                case TrophyConditionTypes.card:
                case TrophyConditionTypes.review:
                case TrophyConditionTypes.followtwitter:
                case TrophyConditionTypes.unitlevel:
                case TrophyConditionTypes.evolutionnum:
                case TrophyConditionTypes.joblevel:
                case TrophyConditionTypes.logincount:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 100);
                    break;

                case TrophyConditionTypes.winelite:
                case TrophyConditionTypes.loseelite:
                    if (!questParam.TransSectionGotoElite(new UIUtility.DialogResultEvent(this.MsgBoxJumpToQuest)))
                    {
                        break;
                    }
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1001);
                    break;

                case TrophyConditionTypes.winevent:
                case TrophyConditionTypes.loseevent:
                case TrophyConditionTypes.exclear_fire:
                case TrophyConditionTypes.exclear_water:
                case TrophyConditionTypes.exclear_wind:
                case TrophyConditionTypes.exclear_thunder:
                case TrophyConditionTypes.exclear_light:
                case TrophyConditionTypes.exclear_dark:
                case TrophyConditionTypes.exclear_fire_nocon:
                case TrophyConditionTypes.exclear_water_nocon:
                case TrophyConditionTypes.exclear_wind_nocon:
                case TrophyConditionTypes.exclear_thunder_nocon:
                case TrophyConditionTypes.exclear_light_nocon:
                case TrophyConditionTypes.exclear_dark_nocon:
                    questParam.GotoEventListQuest((string)null, (string)null);
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1007);
                    break;

                case TrophyConditionTypes.gacha:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1000);
                    break;

                case TrophyConditionTypes.multiplay:
                case TrophyConditionTypes.winmulti:
                case TrophyConditionTypes.winmultimore:
                case TrophyConditionTypes.winmultiless:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1005);
                    break;

                case TrophyConditionTypes.ability:
                case TrophyConditionTypes.makeabilitylevel:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1002);
                    break;

                case TrophyConditionTypes.soubi:
                    if (player.CheckUnlock(UnlockTargets.EnhanceEquip))
                    {
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1003);
                        break;
                    }
                    LevelLock.ShowLockMessage(player.Lv, player.VipRank, UnlockTargets.EnhanceEquip);
                    break;

                case TrophyConditionTypes.buygold:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1004);
                    break;

                case TrophyConditionTypes.arena:
                case TrophyConditionTypes.winarena:
                case TrophyConditionTypes.losearena:
                    if (player.CheckUnlock(UnlockTargets.Arena))
                    {
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1008);
                        break;
                    }
                    LevelLock.ShowLockMessage(player.Lv, player.VipRank, UnlockTargets.Arena);
                    break;

                case TrophyConditionTypes.fggid:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1025);
                    break;

                case TrophyConditionTypes.upunitlevel:
                case TrophyConditionTypes.makeunitlevel:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1009);
                    break;

                case TrophyConditionTypes.unitequip:
                case TrophyConditionTypes.upjoblevel:
                case TrophyConditionTypes.makejoblevel:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1011);
                    break;

                case TrophyConditionTypes.limitbreak:
                case TrophyConditionTypes.evoltiontimes:
                case TrophyConditionTypes.changejob:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1012);
                    break;

                case TrophyConditionTypes.changeability:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1010);
                    break;

                case TrophyConditionTypes.buyatshop:
                    this.GotoShop(dataOfClass);
                    break;

                case TrophyConditionTypes.artifacttransmute:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1022);
                    break;

                case TrophyConditionTypes.artifactstrength:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1023);
                    break;

                case TrophyConditionTypes.artifactevolution:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1024);
                    break;

                case TrophyConditionTypes.wintower:
                case TrophyConditionTypes.losetower:
                    QuestTypes quest_type2 = QuestTypes.Story;
                    if (!questParam.TransSectionGotoTower(dataOfClass.Objectives[0].sval_base, out quest_type2))
                    {
                        break;
                    }
                    QuestTypes questTypes2 = quest_type2;
                    switch (questTypes2)
                    {
                    case QuestTypes.Gps:
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1007);
                        return;

                    case QuestTypes.Beginner:
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1028);
                        return;

                    default:
                        if (questTypes2 != QuestTypes.Event)
                        {
                            FlowNode_GameObject.ActivateOutputLinks((Component)this, 1026);
                            return;
                        }
                        goto case QuestTypes.Gps;
                    }

                case TrophyConditionTypes.vs:
                case TrophyConditionTypes.vswin:
                    if (player.CheckUnlock(UnlockTargets.MultiVS))
                    {
                        FlowNode_GameObject.ActivateOutputLinks((Component)this, 1027);
                        break;
                    }
                    LevelLock.ShowLockMessage(player.Lv, player.VipRank, UnlockTargets.MultiVS);
                    break;

                case TrophyConditionTypes.read_tips:
                case TrophyConditionTypes.read_tips_count:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1029);
                    break;

                case TrophyConditionTypes.up_conceptcard_level:
                case TrophyConditionTypes.up_conceptcard_level_target:
                case TrophyConditionTypes.limitbreak_conceptcard:
                case TrophyConditionTypes.limitbreak_conceptcard_target:
                case TrophyConditionTypes.up_conceptcard_trust:
                case TrophyConditionTypes.up_conceptcard_trust_target:
                case TrophyConditionTypes.max_conceptcard_trust:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1030);
                    break;

                case TrophyConditionTypes.unlock_tobira_total:
                case TrophyConditionTypes.unlock_tobira_unit:
                case TrophyConditionTypes.envy_unlock_unit:
                case TrophyConditionTypes.sloth_unlock_unit:
                case TrophyConditionTypes.lust_unlock_unit:
                case TrophyConditionTypes.greed_unlock_unit:
                case TrophyConditionTypes.wrath_unlock_unit:
                case TrophyConditionTypes.gluttonny_unlock_unit:
                case TrophyConditionTypes.pride_unlock_unit:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1012);
                    break;

                case TrophyConditionTypes.send_present:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1034);
                    break;

                case TrophyConditionTypes.complete_event_mission_count:
                    questParam.GotoEventListQuest((string)null, (string)null);
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1007);
                    break;

                case TrophyConditionTypes.complete_ordeal_mission_count:
                case TrophyConditionTypes.clear_ordeal:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1031);
                    break;

                case TrophyConditionTypes.view_news:
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 1033);
                    break;

                default:
                    DebugUtility.Log(string.Format("未知の Trophy 条件 / {0}", (object)dataOfClass.Objectives[0].type));
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 100);
                    break;
                }
            }
        }
Beispiel #3
0
        public static List <ConditionsResult> TobiraRecipeCheck(UnitData unitData, TobiraParam.Category category, int targetLevel)
        {
            List <ConditionsResult> conditionsResultList = new List <ConditionsResult>();
            GameManager             instanceDirect       = MonoSingleton <GameManager> .GetInstanceDirect();

            TobiraRecipeParam tobiraRecipe = instanceDirect.MasterParam.GetTobiraRecipe(unitData.UnitID, category, targetLevel);

            if (tobiraRecipe.Cost > 0)
            {
                conditionsResultList.Add((ConditionsResult) new ConditionsResult_HasGold(tobiraRecipe.Cost));
            }
            if (tobiraRecipe.UnitPieceNum > 0)
            {
                conditionsResultList.Add((ConditionsResult) new ConditionsResult_HasItem(unitData.UnitParam.piece, tobiraRecipe.UnitPieceNum));
            }
            if (tobiraRecipe.ElementNum > 0)
            {
                int       elementNum        = tobiraRecipe.ElementNum;
                ItemParam elementPieceParam = unitData.GetElementPieceParam();
                if (elementPieceParam == null)
                {
                    DebugUtility.LogWarning("対応する属性欠片が見つかりませんでした。");
                }
                else
                {
                    conditionsResultList.Add((ConditionsResult) new ConditionsResult_HasItem(elementPieceParam.iname, elementNum));
                }
            }
            if (tobiraRecipe.UnlockElementNum > 0)
            {
                int       unlockElementNum = tobiraRecipe.UnlockElementNum;
                ItemParam itemParam        = instanceDirect.GetItemParam(unitData.GetUnlockTobiraElementID());
                if (itemParam == null)
                {
                    DebugUtility.LogWarning("属性に対応する扉用素材が見つかりませんでした。");
                }
                else
                {
                    conditionsResultList.Add((ConditionsResult) new ConditionsResult_HasItem(itemParam.iname, unlockElementNum));
                }
            }
            if (tobiraRecipe.UnlockBirthNum > 0)
            {
                int       unlockBirthNum = tobiraRecipe.UnlockBirthNum;
                ItemParam itemParam      = instanceDirect.GetItemParam(unitData.GetUnlockTobiraBirthID());
                if (itemParam == null)
                {
                    DebugUtility.LogWarning("出自に対応する扉用素材が見つかりませんでした。");
                }
                else
                {
                    conditionsResultList.Add((ConditionsResult) new ConditionsResult_HasItem(itemParam.iname, unlockBirthNum));
                }
            }
            foreach (TobiraRecipeMaterialParam material in tobiraRecipe.Materials)
            {
                if (material != null && !string.IsNullOrEmpty(material.Iname))
                {
                    int       num       = material.Num;
                    ItemParam itemParam = instanceDirect.GetItemParam(material.Iname);
                    if (itemParam == null)
                    {
                        DebugUtility.LogWarning("アイテムが見つかりませんでした。");
                    }
                    else
                    {
                        conditionsResultList.Add((ConditionsResult) new ConditionsResult_HasItem(itemParam.iname, num));
                    }
                }
            }
            return(conditionsResultList);
        }