Пример #1
0
        private void Start()
        {
            PlayerData player = MonoSingleton <GameManager> .Instance.Player;

            GlobalVars.PartyUploadFinished = false;
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.UnitListItem, (UnityEngine.Object)null))
            {
                this.UnitListItem.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TreasureListItem, (UnityEngine.Object)null))
            {
                this.TreasureListItem.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TreasureListUnit, (UnityEngine.Object)null))
            {
                this.TreasureListUnit.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TreasureListArtifact, (UnityEngine.Object)null))
            {
                this.TreasureListArtifact.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TreasureListConceptCard, (UnityEngine.Object)null))
            {
                this.TreasureListConceptCard.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.Prefab_NewItemBadge, (UnityEngine.Object)null) && this.Prefab_NewItemBadge.get_gameObject().get_activeInHierarchy())
            {
                this.Prefab_NewItemBadge.SetActive(false);
            }
            SceneBattle instance = SceneBattle.Instance;

            GameUtility.DestroyGameObjects(this.mUnitListItems);
            GameUtility.DestroyGameObjects(this.mTreasureListItems);
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object)instance, (UnityEngine.Object)null) && instance.ResultData != null)
            {
                this.mCurrentQuest = MonoSingleton <GameManager> .Instance.FindQuest(instance.Battle.QuestID);

                DataSource.Bind <QuestParam>(((Component)this).get_gameObject(), this.mCurrentQuest);
                if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.RetryButton, (UnityEngine.Object)null))
                {
                    this.RetryButton.SetActive((long)new TimeSpan(TimeManager.ServerTime.Ticks).Days <= (long)new TimeSpan(player.LoginDate.Ticks).Days&& this.mCurrentQuest.type != QuestTypes.Tutorial && !this.mCurrentQuest.IsCharacterQuest());
                }
                if (this.mCurrentQuest.type == QuestTypes.Tutorial && UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TeamUploadButton, (UnityEngine.Object)null))
                {
                    ((Selectable)this.TeamUploadButton).set_interactable(false);
                }
                this.mResultData = instance.ResultData;
                this.mQuestName  = this.mCurrentQuest.iname;
                if (instance.IsPlayingArenaQuest)
                {
                    this.mResultData.Record.playerexp = (OInt)GlobalVars.ResultArenaBattleResponse.got_pexp;
                    this.mResultData.Record.gold      = (OInt)GlobalVars.ResultArenaBattleResponse.got_gold;
                    this.mResultData.Record.unitexp   = (OInt)GlobalVars.ResultArenaBattleResponse.got_uexp;
                    if (UnityEngine.Object.op_Implicit((UnityEngine.Object) this.GoArenaResultWin))
                    {
                        this.GoArenaResultWin.SetActive(this.mResultData.Record.result == BattleCore.QuestResult.Win);
                    }
                    if (UnityEngine.Object.op_Implicit((UnityEngine.Object) this.GoArenaResultLose))
                    {
                        this.GoArenaResultLose.SetActive(this.mResultData.Record.result != BattleCore.QuestResult.Win);
                    }
                    if (instance.IsArenaRankupInfo())
                    {
                        MonoSingleton <GameManager> .Instance.Player.UpdateArenaRankTrophyStates(GlobalVars.ResultArenaBattleResponse.new_rank, GlobalVars.ResultArenaBattleResponse.new_rank);
                    }
                    else
                    {
                        MonoSingleton <GameManager> .Instance.Player.UpdateArenaRankTrophyStates(GlobalVars.ResultArenaBattleResponse.new_rank, MonoSingleton <GameManager> .Instance.Player.ArenaRankBest);
                    }
                }
                bool isMultiTower = instance.Battle.IsMultiTower;
                bool isMultiPlay  = instance.Battle.IsMultiPlay;
                for (int index = 0; index < instance.Battle.Units.Count; ++index)
                {
                    Unit unit = instance.Battle.Units[index];
                    if ((isMultiTower || !isMultiPlay || unit.OwnerPlayerIndex == instance.Battle.MyPlayerIndex) && (player.FindUnitDataByUniqueID(unit.UnitData.UniqueID) != null || isMultiTower && unit.Side == EUnitSide.Player))
                    {
                        UnitData unitData = new UnitData();
                        unitData.Setup(unit.UnitData);
                        this.mUnits.Add(unitData);
                        this.mMultiTowerUnitsId.Add(unit.OwnerPlayerIndex);
                    }
                }
                if (instance.IsArenaRankupInfo())
                {
                    FlowNode_GameObject.ActivateOutputLinks((Component)this, 40);
                }
            }
            DataSource.Bind <BattleCore.Record>(((Component)this).get_gameObject(), this.mResultData.Record);
            if (this.mResultData != null)
            {
                if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TreasureListItem, (UnityEngine.Object)null))
                {
                    Transform parent = !UnityEngine.Object.op_Inequality((UnityEngine.Object) this.TreasureList, (UnityEngine.Object)null) ? this.TreasureListItem.get_transform().get_parent() : this.TreasureList.get_transform();
                    List <QuestResult.DropItemData> items = new List <QuestResult.DropItemData>();
                    for (int index1 = 0; index1 < this.mResultData.Record.items.Count; ++index1)
                    {
                        bool flag = false;
                        for (int index2 = 0; index2 < items.Count; ++index2)
                        {
                            if (items[index2].mIsSecret == this.mResultData.Record.items[index1].mIsSecret)
                            {
                                if (items[index2].IsItem)
                                {
                                    if (items[index2].itemParam == this.mResultData.Record.items[index1].itemParam)
                                    {
                                        items[index2].Gain(1);
                                        flag = true;
                                        break;
                                    }
                                }
                                else if (items[index2].IsConceptCard && items[index2].conceptCardParam == this.mResultData.Record.items[index1].conceptCardParam)
                                {
                                    items[index2].Gain(1);
                                    flag = true;
                                    break;
                                }
                            }
                        }
                        if (!flag)
                        {
                            QuestResult.DropItemData dropItemData = new QuestResult.DropItemData();
                            if (this.mResultData.Record.items[index1].IsItem)
                            {
                                dropItemData.SetupDropItemData(EBattleRewardType.Item, 0L, this.mResultData.Record.items[index1].itemParam.iname, 1);
                                if (this.mResultData.Record.items[index1].itemParam.type != EItemType.Unit)
                                {
                                    ItemData itemDataByItemParam = player.FindItemDataByItemParam(this.mResultData.Record.items[index1].itemParam);
                                    dropItemData.IsNew = !player.ItemEntryExists(this.mResultData.Record.items[index1].itemParam.iname) || (itemDataByItemParam == null || itemDataByItemParam.IsNew);
                                }
                                else
                                {
                                    string iid = this.mResultData.Record.items[index1].itemParam.iname;
                                    if (player.Units.Find((Predicate <UnitData>)(p => p.UnitParam.iname == iid)) == null)
                                    {
                                        dropItemData.IsNew = true;
                                    }
                                }
                            }
                            else if (this.mResultData.Record.items[index1].IsConceptCard)
                            {
                                dropItemData.SetupDropItemData(EBattleRewardType.ConceptCard, 0L, this.mResultData.Record.items[index1].conceptCardParam.iname, 1);
                            }
                            dropItemData.mIsSecret = this.mResultData.Record.items[index1].mIsSecret;
                            items.Add(dropItemData);
                        }
                    }
                    if (this.mCurrentQuest != null && this.mCurrentQuest.IsVersus)
                    {
                        VersusCoinParam coinParam = MonoSingleton <GameManager> .Instance.GetVersusCoinParam(this.mCurrentQuest.iname);

                        if (coinParam != null)
                        {
                            QuestResult.DropItemData dropItemData1 = items.Find((Predicate <QuestResult.DropItemData>)(x => x.Param.iname == coinParam.coin_iname));
                            if (dropItemData1 != null)
                            {
                                dropItemData1.Gain((int)this.mResultData.Record.pvpcoin);
                            }
                            else if ((int)this.mResultData.Record.pvpcoin > 0)
                            {
                                QuestResult.DropItemData dropItemData2 = new QuestResult.DropItemData();
                                dropItemData2.Setup(0L, coinParam.coin_iname, (int)this.mResultData.Record.pvpcoin);
                                dropItemData2.mIsSecret = false;
                                dropItemData2.IsNew     = !player.ItemEntryExists(coinParam.coin_iname);
                                items.Add(dropItemData2);
                            }
                        }
                    }
                    this.CreateItemObject(items, parent);
                    this.CreateArtifactObjects(parent);
                    this.CreateGoldObjects(parent);
                }
                this.ApplyQuestCampaignParams(instance.Battle.QuestCampaignIds);
                if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.UnitListItem, (UnityEngine.Object)null))
                {
                    if (instance.Battle.IsMultiTower)
                    {
                        this.AddExpPlayerMultiTower();
                    }
                    else
                    {
                        this.AddExpPlayer();
                    }
                }
                GlobalVars.PlayerExpOld.Set(this.mResultData.StartExp);
                GlobalVars.PlayerExpNew.Set(this.mResultData.StartExp + (int)this.mResultData.Record.playerexp);
                GlobalVars.PlayerLevelChanged.Set(player.Lv != PlayerData.CalcLevelFromExp(this.mResultData.StartExp));
                this.RefreshQuestMissionReward();
                if (!string.IsNullOrEmpty(this.Star_ClearTrigger))
                {
                    for (int index = 0; index < this.mObjectiveStars.Count; ++index)
                    {
                        if ((this.mCurrentQuest.clear_missions & 1 << index) != 0)
                        {
                            GameUtility.SetAnimatorTrigger(this.mObjectiveStars[index], this.Star_ClearTrigger);
                        }
                    }
                }
                player.OnGoldChange((int)this.mResultData.Record.gold);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.StarKakuninButton, (UnityEngine.Object)null))
            {
                // ISSUE: method pointer
                ((UnityEvent)this.StarKakuninButton.get_onClick()).AddListener(new UnityAction((object)this, __methodptr(OnStarKakuninButtonClick)));
                this.mContinueStarAnimation = false;
            }
            GlobalVars.CreateAutoMultiTower = false;
            GlobalVars.InvtationSameUser    = false;
            if (!UnityEngine.Object.op_Inequality((UnityEngine.Object) this.ResultSkipButton, (UnityEngine.Object)null))
            {
                return;
            }
            ((Component)this.ResultSkipButton).get_gameObject().SetActive(false);
        }
Пример #2
0
        public static void SetupTreasureList(GameObject list, GameObject node, GameObject newIcon, GameObject owner, List <GameObject> itemNodes)
        {
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object)node, (UnityEngine.Object)null))
            {
                node.SetActive(false);
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object)newIcon, (UnityEngine.Object)null) && newIcon.get_gameObject().get_activeInHierarchy())
            {
                newIcon.SetActive(false);
            }
            PlayerData  player   = MonoSingleton <GameManager> .Instance.Player;
            SceneBattle instance = SceneBattle.Instance;

            if (!UnityEngine.Object.op_Inequality((UnityEngine.Object)instance, (UnityEngine.Object)null))
            {
                return;
            }
            BattleCore battle = instance.Battle;

            BattleCore.Record record = new BattleCore.Record();
            battle.GainUnitSteal(record);
            battle.GainUnitDrop(record, true);
            DataSource.Bind <BattleCore.Record>(owner, record);
            if (record == null)
            {
                return;
            }
            Transform transform = !UnityEngine.Object.op_Inequality((UnityEngine.Object)list, (UnityEngine.Object)null) ? node.get_transform().get_parent() : list.get_transform();
            List <QuestResult.DropItemData> dropItemDataList = new List <QuestResult.DropItemData>();

            for (int index1 = 0; index1 < record.items.Count; ++index1)
            {
                bool flag = false;
                for (int index2 = 0; index2 < dropItemDataList.Count; ++index2)
                {
                    if (dropItemDataList[index2].Param == record.items[index1].mItemParam && dropItemDataList[index2].mIsSecret == record.items[index1].mIsSecret)
                    {
                        dropItemDataList[index2].Gain(1);
                        flag = true;
                        break;
                    }
                }
                if (!flag)
                {
                    ItemData itemDataByItemParam          = player.FindItemDataByItemParam(record.items[index1].mItemParam);
                    QuestResult.DropItemData dropItemData = new QuestResult.DropItemData();
                    dropItemData.Setup(0L, record.items[index1].mItemParam.iname, 1);
                    dropItemData.mIsSecret = record.items[index1].mIsSecret;
                    if (record.items[index1].mItemParam.type != EItemType.Unit)
                    {
                        dropItemData.IsNew = !player.ItemEntryExists(record.items[index1].mItemParam.iname) || (itemDataByItemParam == null || itemDataByItemParam.IsNew);
                    }
                    else
                    {
                        // ISSUE: object of a compiler-generated type is created
                        // ISSUE: reference to a compiler-generated method
                        if (player.Units.Find(new Predicate <UnitData>(new ConfigWindow.\u003CSetupTreasureList\u003Ec__AnonStorey322()
                        {
                            iid = record.items[index1].mItemParam.iname
                        }.\u003C\u003Em__356)) == null)
                        {
                            dropItemData.IsNew = true;
                        }
                    }
                    dropItemDataList.Add(dropItemData);
                }
            }
            for (int index = 0; index < dropItemDataList.Count; ++index)
            {
                GameObject itemObject = ConfigWindow.CreateItemObject(node, newIcon, dropItemDataList[index]);
                if (UnityEngine.Object.op_Inequality((UnityEngine.Object)itemObject, (UnityEngine.Object)null))
                {
                    itemObject.get_transform().SetParent(transform, false);
                    itemNodes.Add(itemObject);
                }
            }
        }