public override void OnActivate(int pinID)
        {
            if (pinID != 0 && pinID != 3)
            {
                return;
            }
            int coin = (int)(pinID != 0 ? MonoSingleton <GameManager> .Instance.MasterParam.FixParam.ContinueCoinCost : MonoSingleton <GameManager> .Instance.MasterParam.FixParam.ContinueCoinCostMulti);

            if (MonoSingleton <GameManager> .Instance.Player.Coin < coin)
            {
                ((Behaviour)this).set_enabled(false);
                this.ActivateOutputLinks(2);
            }
            else if (Network.Mode == Network.EConnectMode.Offline)
            {
                if (!MonoSingleton <GameManager> .Instance.Player.DEBUG_CONSUME_COIN(coin))
                {
                    ((Behaviour)this).set_enabled(false);
                    this.ActivateOutputLinks(2);
                }
                else
                {
                    this.Success();
                }
            }
            else
            {
                BattleCore.Record questRecord = SceneBattle.Instance.Battle.GetQuestRecord();
                this.ExecRequest((WebAPI) new ReqBtlComCont(SceneBattle.Instance.Battle.BtlID, questRecord, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback), true));
                ((Behaviour)this).set_enabled(true);
            }
        }
Exemplo n.º 2
0
 public ReqBtlComCont(long btlid, BattleCore.Record record, Network.ResponseCallback response, bool multi, bool isMT)
 {
     if (isMT)
     {
         this.name = "btl/multi/tower/cont";
     }
     else
     {
         this.name = !multi ? "btl/com/cont" : "btl/multi/cont";
     }
     if (record != null)
     {
         this.body = "\"btlid\":" + (object)btlid + ",";
         if (!string.IsNullOrEmpty(WebAPI.GetBtlEndParamString(record, multi)))
         {
             this.body += WebAPI.GetBtlEndParamString(record, multi);
         }
         this.body = WebAPI.GetRequestString(this.body);
     }
     else
     {
         this.body = WebAPI.GetRequestString("\"btlid\":\"" + (object)btlid + "\"");
     }
     this.callback = response;
 }
Exemplo n.º 3
0
 public override void OnActivate(int pinID)
 {
     if (pinID == 0 && Object.op_Inequality((Object)SceneBattle.Instance, (Object)null))
     {
         if (Network.Mode == Network.EConnectMode.Offline)
         {
             QuestParam        quest       = SceneBattle.Instance.Battle.GetQuest();
             BattleCore.Record questRecord = SceneBattle.Instance.Battle.GetQuestRecord();
             if (quest != null && questRecord != null)
             {
                 quest.clear_missions |= questRecord.bonusFlags;
             }
         }
         SceneBattle.Instance.ExitRequest = !this.Restart ? SceneBattle.ExitRequests.End : SceneBattle.ExitRequests.Restart;
     }
     else
     {
         if (pinID != 1)
         {
             return;
         }
         if (Object.op_Equality((Object)SceneBattle.Instance, (Object)null))
         {
             ((Behaviour)this).set_enabled(false);
             this.ActivateOutputLinks(101);
         }
         else
         {
             ((Behaviour)this).set_enabled(true);
             SceneBattle.Instance.ForceEndQuest();
         }
     }
 }
        private void LoadConditionStarsFromBattle()
        {
            SceneBattle instance = SceneBattle.Instance;

            for (int index1 = 0; index1 < this.ConditionStars.Length; ++index1)
            {
                bool flag = false;
                switch (index1)
                {
                case 0:
                    flag = !instance.Battle.PlayByManually;
                    break;

                case 1:
                    flag = instance.Battle.IsAllAlive();
                    break;

                case 2:
                    BattleCore.Record questRecord = instance.Battle.GetQuestRecord();
                    flag = true;
                    for (int index2 = 0; index2 < questRecord.bonusCount; ++index2)
                    {
                        if ((questRecord.allBonusFlags & 1 << index2) == 0)
                        {
                            flag = false;
                            break;
                        }
                    }
                    break;
                }
                this.ConditionStars[index1].SetActive(flag);
            }
        }
Exemplo n.º 5
0
 public override void Activated(int pinID)
 {
     if (UnityEngine.Object.op_Inequality((UnityEngine.Object)SceneBattle.Instance, (UnityEngine.Object)null) && SceneBattle.Instance.Battle != null)
     {
         this.m_QuestRecord = SceneBattle.Instance.Battle.GetQuestRecord();
     }
     this.UpdateResultFlags();
     if (pinID == 11)
     {
         if (this.ResultFlags_IsOn(TowerQuestResult.eTowerResultFlags.ShowRank))
         {
             this.Window.SetActive(false);
             this.TowerClear.Refresh();
             ((Component)this.TowerClear).get_gameObject().SetActive(true);
         }
         else
         {
             FlowNode_GameObject.ActivateOutputLinks((Component)this, 32);
         }
     }
     else
     {
         base.Activated(pinID);
     }
 }
        private void RequestUpload()
        {
            PlayerData player = MonoSingleton <GameManager> .Instance.Player;
            BattleCore battle = SceneBattle.Instance.Battle;
            string     fuid   = player.FUID;
            long       btlId  = battle.BtlID;

            BattleCore.Record questRecord = battle.GetQuestRecord();
            int[]             beats       = new int[questRecord.drops.Length];
            for (int index = 0; index < questRecord.drops.Length; ++index)
            {
                beats[index] = (int)questRecord.drops[index];
            }
            int[] itemSteals = new int[questRecord.item_steals.Length];
            for (int index = 0; index < questRecord.item_steals.Length; ++index)
            {
                itemSteals[index] = (int)questRecord.item_steals[index];
            }
            int[] goldSteals = new int[questRecord.gold_steals.Length];
            for (int index = 0; index < questRecord.gold_steals.Length; ++index)
            {
                goldSteals[index] = (int)questRecord.gold_steals[index];
            }
            int[] missions = new int[questRecord.bonusCount];
            for (int index = 0; index < missions.Length; ++index)
            {
                missions[index] = (questRecord.allBonusFlags & 1 << index) == 0 ? 0 : 1;
            }
            int[] achieved = new int[3]
            {
                !battle.PlayByManually ? 1 : 0,
                !battle.IsAllAlive() ? 0 : 1,
                0
            };
            QuestParam quest = MonoSingleton <GameManager> .Instance.FindQuest(GlobalVars.SelectedQuestID);

            bool flag = true;

            if (quest.bonusObjective != null)
            {
                for (int index = 0; index < questRecord.bonusCount; ++index)
                {
                    if ((questRecord.allBonusFlags & 1 << index) == 0)
                    {
                        flag = false;
                        break;
                    }
                }
            }
            achieved[2] = !flag ? 0 : 1;
            this.ExecRequest((WebAPI) new ReqBtlComRecordUpload(fuid, btlId, achieved, 0, BtlResultTypes.Win, beats, itemSteals, goldSteals, missions, questRecord.used_items, new Network.ResponseCallback(((FlowNode_Network)this).ResponseCallback)));
        }
Exemplo n.º 7
0
        public QuestResultData(PlayerData player, int bonusFlags, BattleCore.Record record, List <Unit> units, bool isFirstWin)
        {
            this.StartExp        = player.Exp;
            this.StartGold       = player.Gold;
            this.Record          = record;
            this.StartBonusFlags = bonusFlags;
            this.IsFirstWin      = isFirstWin;
            if (this.Record.items != null)
            {
                List <ItemParam> itemParamList = new List <ItemParam>();
                if (this.Record.items.Count != 0)
                {
                    for (int index = 0; index < this.Record.items.Count; ++index)
                    {
                        if (this.Record.items[index].itemParam != null)
                        {
                            itemParamList.Add(this.Record.items[index].itemParam);
                        }
                    }
                }
                this.GetUnits = new UnitGetParam(itemParamList.ToArray());
            }
            if (units.Count > 1)
            {
                for (int i = 0; i < units.Count; ++i)
                {
                    if (units[i] != null && units[i].Side == EUnitSide.Player && (units[i].UnitType == EUnitType.Unit && player.Units.Find((Predicate <UnitData>)(u => u.UniqueID == units[i].UnitData.UniqueID)) != null))
                    {
                        UnitData.CharacterQuestParam charaEpisodeData = units[i].UnitData.GetCurrentCharaEpisodeData();
                        if (charaEpisodeData != null)
                        {
                            this.CharacterQuest.Add(units[i].UnitData.UniqueID, charaEpisodeData);
                        }
                    }
                }
            }
            List <UnitData> units1 = player.Units;

            for (int index = 0; index < units1.Count; ++index)
            {
                string str1 = units1[index].UnlockedSkillIds();
                this.SkillUnlocks.Add(units1[index].UniqueID, str1);
                string str2 = units1[index].UnlockedCollaboSkillIds();
                this.CollaboSkillUnlocks.Add(units1[index].UniqueID, str2);
            }
        }
Exemplo n.º 8
0
 public ReqBtlComCont(long btlid, BattleCore.Record record, bool multi)
 {
     this.name = ((!multi) ? "btl/com/cont" : "btl/multi/cont");
     if (record != null)
     {
         this.body = "\"btlid\":" + btlid + ",";
         string btlEndParamString = WebAPI.GetBtlEndParamString(record, multi);
         if (!string.IsNullOrEmpty(btlEndParamString))
         {
             this.body += WebAPI.GetBtlEndParamString(record, multi);
         }
         this.body = WebAPI.GetRequestString(this.body);
     }
     else
     {
         this.body = WebAPI.GetRequestString("\"btlid\":\"" + btlid + "\"");
     }
 }
Exemplo n.º 9
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].mIsSecret == record.items[index1].mIsSecret)
                    {
                        if (dropItemDataList[index2].IsItem)
                        {
                            if (dropItemDataList[index2].itemParam == record.items[index1].itemParam)
                            {
                                dropItemDataList[index2].Gain(1);
                                flag = true;
                                break;
                            }
                        }
                        else if (dropItemDataList[index2].IsConceptCard && dropItemDataList[index2].conceptCardParam == record.items[index1].conceptCardParam)
                        {
                            dropItemDataList[index2].Gain(1);
                            flag = true;
                            break;
                        }
                    }
                }
                if (!flag)
                {
                    QuestResult.DropItemData dropItemData = new QuestResult.DropItemData();
                    if (record.items[index1].IsItem)
                    {
                        dropItemData.SetupDropItemData(EBattleRewardType.Item, 0L, record.items[index1].itemParam.iname, 1);
                        if (record.items[index1].itemParam.type != EItemType.Unit)
                        {
                            ItemData itemDataByItemParam = player.FindItemDataByItemParam(record.items[index1].itemParam);
                            dropItemData.IsNew = !player.ItemEntryExists(record.items[index1].itemParam.iname) || (itemDataByItemParam == null || itemDataByItemParam.IsNew);
                        }
                        else
                        {
                            string iid = record.items[index1].itemParam.iname;
                            if (player.Units.Find((Predicate <UnitData>)(p => p.UnitParam.iname == iid)) == null)
                            {
                                dropItemData.IsNew = true;
                            }
                        }
                    }
                    else if (record.items[index1].IsConceptCard)
                    {
                        dropItemData.SetupDropItemData(EBattleRewardType.ConceptCard, 0L, record.items[index1].conceptCardParam.iname, 1);
                    }
                    dropItemData.mIsSecret = record.items[index1].mIsSecret;
                    if (dropItemData.mIsSecret)
                    {
                        dropItemData.IsNew = false;
                    }
                    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);
                }
            }
        }
Exemplo n.º 10
0
        private void RefreshData()
        {
            GameManager          instance1          = MonoSingleton <GameManager> .Instance;
            PlayerData           player             = instance1.Player;
            PartyData            partyOfType        = player.FindPartyOfType(PlayerPartyTypes.Versus);
            VsTowerMatchEndParam towerMatchEndParam = instance1.GetVsTowerMatchEndParam();

            if (towerMatchEndParam == null)
            {
                return;
            }
            if (partyOfType != null)
            {
                UnitData unitDataByUniqueId = player.FindUnitDataByUniqueID(partyOfType.GetUnitUniqueID(partyOfType.LeaderIndex));
                if (unitDataByUniqueId != null)
                {
                    DataSource.Bind <UnitData>(((Component)this).get_gameObject(), unitDataByUniqueId);
                }
            }
            int versusTowerFloor = player.VersusTowerFloor;

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.floortxt, (UnityEngine.Object)null))
            {
                this.floortxt.set_text(versusTowerFloor.ToString());
            }
            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.floorEfftxt, (UnityEngine.Object)null))
            {
                this.floorEfftxt.set_text(versusTowerFloor.ToString());
            }
            int versusTowerKey = player.VersusTowerKey;

            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.key, (UnityEngine.Object)null))
            {
                VersusTowerParam versusTowerParam = instance1.GetCurrentVersusTowerParam(-1);
                if (versusTowerParam != null)
                {
                    int num1 = 0;
                    while (num1 < (int)versusTowerParam.RankupNum)
                    {
                        GameObject go = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.key);
                        if (UnityEngine.Object.op_Inequality((UnityEngine.Object)go, (UnityEngine.Object)null))
                        {
                            if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.parent, (UnityEngine.Object)null))
                            {
                                go.get_transform().SetParent(this.parent.get_transform(), false);
                            }
                            if (versusTowerKey > 0)
                            {
                                GameUtility.SetAnimatorTrigger(go, this.keyDefAnim);
                            }
                            this.mCreateKey.Add(go);
                        }
                        ++num1;
                        --versusTowerKey;
                    }
                    this.key.SetActive(false);
                    SceneBattle instance2 = SceneBattle.Instance;
                    if (UnityEngine.Object.op_Inequality((UnityEngine.Object)instance2, (UnityEngine.Object)null))
                    {
                        BattleCore battle = instance2.Battle;
                        if (battle != null)
                        {
                            BattleCore.Record questRecord = battle.GetQuestRecord();
                            if (questRecord.result == BattleCore.QuestResult.Win)
                            {
                                int num2 = !towerMatchEndParam.rankup ? towerMatchEndParam.key : (int)versusTowerParam.RankupNum;
                                this.mAnimKeyIndex = player.VersusTowerKey;
                                this.mMaxKeyCount  = Mathf.Min(num2, (int)versusTowerParam.RankupNum);
                                this.mUpdateFloor  = towerMatchEndParam.rankup;
                                this.mBattleRes    = VersusTowerKey.RESULT.WIN;
                                if (this.mUpdateFloor)
                                {
                                    if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.arrivalNumText, (UnityEngine.Object)null))
                                    {
                                        this.arrivalNumText.set_text(towerMatchEndParam.floor.ToString() + LocalizedText.Get("sys.MULTI_VERSUS_FLOOR"));
                                    }
                                    if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.arrivalEffNumText, (UnityEngine.Object)null))
                                    {
                                        this.arrivalEffNumText.set_text(towerMatchEndParam.floor.ToString() + LocalizedText.Get("sys.MULTI_VERSUS_FLOOR"));
                                    }
                                }
                            }
                            else if (questRecord.result == BattleCore.QuestResult.Lose && (int)versusTowerParam.LoseNum > 0)
                            {
                                this.mAnimKeyIndex = player.VersusTowerKey - 1;
                                this.mMaxKeyCount  = Math.Max(towerMatchEndParam.key, 0);
                                this.mUpdateFloor  = this.mAnimKeyIndex < 0 && (int)versusTowerParam.DownFloor > 0;
                                this.mBattleRes    = VersusTowerKey.RESULT.LOSE;
                                if (this.mUpdateFloor && UnityEngine.Object.op_Inequality((UnityEngine.Object) this.arrivalNumText, (UnityEngine.Object)null))
                                {
                                    this.arrivalNumText.set_text(Math.Max(towerMatchEndParam.floor, 1).ToString());
                                }
                            }
                            else
                            {
                                this.mBattleRes = VersusTowerKey.RESULT.DRAW;
                            }
                        }
                    }
                    if (UnityEngine.Object.op_Inequality((UnityEngine.Object) this.infoText, (UnityEngine.Object)null))
                    {
                        this.infoText.SetActive(this.mBattleRes == VersusTowerKey.RESULT.WIN && (int)versusTowerParam.RankupNum > 0);
                    }
                }
            }
            if (!this.mUpdateFloor)
            {
                return;
            }
            this.SetButtonText(true);
        }
Exemplo n.º 11
0
        public QuestResultData(PlayerData player, int bonusFlags, BattleCore.Record record, List <Unit> units, bool isFirstWin)
        {
            // ISSUE: object of a compiler-generated type is created
            // ISSUE: variable of a compiler-generated type
            QuestResultData.\u003CQuestResultData\u003Ec__AnonStorey26A dataCAnonStorey26A = new QuestResultData.\u003CQuestResultData\u003Ec__AnonStorey26A();
            // ISSUE: reference to a compiler-generated field
            dataCAnonStorey26A.units = units;
            this.CharacterQuest      = new Dictionary <long, UnitData.CharacterQuestParam>();
            this.SkillUnlocks        = new Dictionary <long, string>();
            this.CollaboSkillUnlocks = new Dictionary <long, string>();
            // ISSUE: explicit constructor call
            base.\u002Ector();
            this.StartExp        = player.Exp;
            this.StartGold       = player.Gold;
            this.Record          = record;
            this.StartBonusFlags = bonusFlags;
            this.IsFirstWin      = isFirstWin;
            if (this.Record.items != null)
            {
                this.GetUnits = new UnitGetParam(this.Record.items.ToArray());
            }
            // ISSUE: reference to a compiler-generated field
            if (dataCAnonStorey26A.units.Count > 1)
            {
                // ISSUE: object of a compiler-generated type is created
                // ISSUE: variable of a compiler-generated type
                QuestResultData.\u003CQuestResultData\u003Ec__AnonStorey26B dataCAnonStorey26B = new QuestResultData.\u003CQuestResultData\u003Ec__AnonStorey26B();
                // ISSUE: reference to a compiler-generated field
                dataCAnonStorey26B.\u003C\u003Ef__ref\u0024618 = dataCAnonStorey26A;
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                // ISSUE: reference to a compiler-generated field
                for (dataCAnonStorey26B.i = 0; dataCAnonStorey26B.i < dataCAnonStorey26A.units.Count; ++dataCAnonStorey26B.i)
                {
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated field
                    // ISSUE: reference to a compiler-generated method
                    if (dataCAnonStorey26A.units[dataCAnonStorey26B.i] != null && dataCAnonStorey26A.units[dataCAnonStorey26B.i].Side == EUnitSide.Player && (dataCAnonStorey26A.units[dataCAnonStorey26B.i].UnitType == EUnitType.Unit && player.Units.Find(new Predicate <UnitData>(dataCAnonStorey26B.\u003C\u003Em__2CD)) != null))
                    {
                        // ISSUE: reference to a compiler-generated field
                        // ISSUE: reference to a compiler-generated field
                        UnitData.CharacterQuestParam charaEpisodeData = dataCAnonStorey26A.units[dataCAnonStorey26B.i].UnitData.GetCurrentCharaEpisodeData();
                        if (charaEpisodeData != null)
                        {
                            // ISSUE: reference to a compiler-generated field
                            // ISSUE: reference to a compiler-generated field
                            this.CharacterQuest.Add(dataCAnonStorey26A.units[dataCAnonStorey26B.i].UnitData.UniqueID, charaEpisodeData);
                        }
                    }
                }
            }
            List <UnitData> units1 = player.Units;

            for (int index = 0; index < units1.Count; ++index)
            {
                string str1 = units1[index].UnlockedSkillIds();
                this.SkillUnlocks.Add(units1[index].UniqueID, str1);
                string str2 = units1[index].UnlockedCollaboSkillIds();
                this.CollaboSkillUnlocks.Add(units1[index].UniqueID, str2);
            }
        }
Exemplo n.º 12
0
        protected static string GetBtlEndParamString(BattleCore.Record record, bool multi = false)
        {
            string text = null;

            if (record != null)
            {
                int    num   = 0;
                string text2 = "win";
                if (multi && record.result == BattleCore.QuestResult.Pending)
                {
                    text2 = "retire";
                }
                else if (record.result != BattleCore.QuestResult.Win)
                {
                    text2 = "lose";
                }
                int[] array = new int[record.drops.Length];
                for (int i = 0; i < record.drops.Length; i++)
                {
                    array[i] = record.drops[i];
                }
                int[] array2 = new int[record.item_steals.Length];
                for (int j = 0; j < record.item_steals.Length; j++)
                {
                    array2[j] = record.item_steals[j];
                }
                int[] array3 = new int[record.gold_steals.Length];
                for (int k = 0; k < record.gold_steals.Length; k++)
                {
                    array3[k] = record.gold_steals[k];
                }
                int[] array4 = new int[3];
                for (int l = 0; l < array4.Length; l++)
                {
                    array4[l] = (((record.bonusFlags & 1 << l) == 0) ? 0 : 1);
                }
                text += "\"btlendparam\":{";
                string text3 = text;
                text = string.Concat(new object[]
                {
                    text3,
                    "\"time\":",
                    num,
                    ","
                });
                text  = text + "\"result\":\"" + text2 + "\",";
                text += "\"beats\":[";
                for (int m = 0; m < array.Length; m++)
                {
                    text += array[m].ToString();
                    if (m != array.Length - 1)
                    {
                        text += ",";
                    }
                }
                text += "],";
                text += "\"steals\":{";
                text += "\"items\":[";
                for (int n = 0; n < array2.Length; n++)
                {
                    text += array2[n].ToString();
                    if (n != array.Length - 1)
                    {
                        text += ",";
                    }
                }
                text += "],";
                text += "\"golds\":[";
                for (int num2 = 0; num2 < array3.Length; num2++)
                {
                    text += array3[num2].ToString();
                    if (num2 != array.Length - 1)
                    {
                        text += ",";
                    }
                }
                text += "]";
                text += "},";
                text += "\"missions\":[";
                for (int num3 = 0; num3 < array4.Length; num3++)
                {
                    text += array4[num3].ToString();
                    if (num3 != array4.Length - 1)
                    {
                        text += ",";
                    }
                }
                text += "]";
                if (multi)
                {
                    text = text + ",\"token\":\"" + JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName) + "\"";
                }
                text += "}";
            }
            return(text);
        }
Exemplo n.º 13
0
        protected static string GetBtlEndParamString(BattleCore.Record record, bool multi = false)
        {
            string str1 = (string)null;

            if (record != null)
            {
                int    num  = 0;
                string str2 = "win";
                if (multi && record.result == BattleCore.QuestResult.Pending)
                {
                    str2 = "retire";
                }
                else if (record.result != BattleCore.QuestResult.Win)
                {
                    str2 = "lose";
                }
                int[] numArray1 = new int[record.drops.Length];
                for (int index = 0; index < record.drops.Length; ++index)
                {
                    numArray1[index] = (int)record.drops[index];
                }
                int[] numArray2 = new int[record.item_steals.Length];
                for (int index = 0; index < record.item_steals.Length; ++index)
                {
                    numArray2[index] = (int)record.item_steals[index];
                }
                int[] numArray3 = new int[record.gold_steals.Length];
                for (int index = 0; index < record.gold_steals.Length; ++index)
                {
                    numArray3[index] = (int)record.gold_steals[index];
                }
                int[] numArray4 = new int[record.bonusCount];
                for (int index = 0; index < numArray4.Length; ++index)
                {
                    numArray4[index] = (record.bonusFlags & 1 << index) == 0 ? 0 : 1;
                }
                string str3 = str1 + "\"btlendparam\":{" + "\"time\":" + (object)num + "," + "\"result\":\"" + str2 + "\"," + "\"beats\":[";
                for (int index = 0; index < numArray1.Length; ++index)
                {
                    str3 += numArray1[index].ToString();
                    if (index != numArray1.Length - 1)
                    {
                        str3 += ",";
                    }
                }
                string str4 = str3 + "]," + "\"steals\":{" + "\"items\":[";
                for (int index = 0; index < numArray2.Length; ++index)
                {
                    str4 += numArray2[index].ToString();
                    if (index != numArray1.Length - 1)
                    {
                        str4 += ",";
                    }
                }
                string str5 = str4 + "]," + "\"golds\":[";
                for (int index = 0; index < numArray3.Length; ++index)
                {
                    str5 += numArray3[index].ToString();
                    if (index != numArray1.Length - 1)
                    {
                        str5 += ",";
                    }
                }
                string str6 = str5 + "]" + "}," + "\"missions\":[";
                for (int index = 0; index < numArray4.Length; ++index)
                {
                    str6 += numArray4[index].ToString();
                    if (index != numArray4.Length - 1)
                    {
                        str6 += ",";
                    }
                }
                string str7 = str6 + "]";
                if (multi)
                {
                    str7 = str7 + ",\"token\":\"" + JsonEscape.Escape(GlobalVars.SelectedMultiPlayRoomName) + "\"";
                }
                str1 = str7 + "}";
            }
            return(str1);
        }
Exemplo n.º 14
0
        private static bool restoreSaveData(BattleSuspend.Data data)
        {
            if (data == null || !data.ivl)
            {
                return(false);
            }
            SceneBattle instance = SceneBattle.Instance;

            if (!UnityEngine.Object.op_Implicit((UnityEngine.Object)instance))
            {
                return(false);
            }
            BattleCore battle = instance.Battle;

            if (battle == null)
            {
                return(false);
            }
            BattleSuspend.Data.Header hdr = data.hdr;
            if (hdr.apv != Application.get_version())
            {
                DebugUtility.LogWarning("BattleSuspend/Restoration failure! Version is different.");
                return(false);
            }
            if (hdr.arv != AssetManager.AssetRevision)
            {
                DebugUtility.LogWarning("BattleSuspend/Restoration failure! Revision is different.");
                return(false);
            }
            if (hdr.qid != battle.QuestID)
            {
                DebugUtility.LogWarning("BattleSuspend/Restoration failure! QuestID is different.");
                return(false);
            }
            if (hdr.bid != battle.BtlID)
            {
                DebugUtility.LogWarning("BattleSuspend/Restoration failure! BattleID is different.");
                return(false);
            }
            GameUtility.Config_AutoMode_Treasure.Value     = hdr.cat;
            GameUtility.Config_AutoMode_DisableSkill.Value = hdr.cad;
            for (int count = battle.AllUnits.Count; count < data.uil.Count; ++count)
            {
                BattleSuspend.Data.UnitInfo unitInfo = data.uil[count];
                if (!string.IsNullOrEmpty(unitInfo.boi))
                {
                    battle.BreakObjCreate(unitInfo.boi, unitInfo.ugx, unitInfo.ugy, (Unit)null, (LogSkill)null, 0);
                }
            }
            for (int index = 0; index < data.uil.Count && index < battle.AllUnits.Count; ++index)
            {
                BattleSuspend.Data.UnitInfo unit_info = data.uil[index];
                Unit allUnit = battle.AllUnits[index];
                if (!(allUnit.UnitName != unit_info.nam))
                {
                    allUnit.SetupSuspend(battle, unit_info);
                }
            }
            BattleCore.Record questRecord = battle.GetQuestRecord();
            using (List <BattleSuspend.Data.UsedItem> .Enumerator enumerator = data.itl.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    BattleSuspend.Data.UsedItem current = enumerator.Current;
                    questRecord.used_items[(OString)current.iti] = (OInt)current.num;
                    ItemData inventoryByItemId = battle.FindInventoryByItemID(current.iti);
                    if (inventoryByItemId != null)
                    {
                        inventoryByItemId.Used(current.num);
                    }
                }
            }
            TrickData.ClearEffect();
            using (List <BattleSuspend.Data.TrickInfo> .Enumerator enumerator = data.trl.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    BattleSuspend.Data.TrickInfo current = enumerator.Current;
                    Unit unitFromAllUnits = BattleSuspend.GetUnitFromAllUnits(battle, current.cun);
                    TrickData.SuspendEffect(current.tid, current.grx, current.gry, current.tag, unitFromAllUnits, current.ccl, current.rnk, current.rcp, current.rac);
                }
            }
            using (List <BattleSuspend.Data.SkillExecLogInfo> .Enumerator enumerator = data.sel.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    BattleSuspend.Data.SkillExecLogInfo current      = enumerator.Current;
                    BattleCore.SkillExecLog             skillExecLog = new BattleCore.SkillExecLog();
                    skillExecLog.Restore(current);
                    battle.SkillExecLogs.Add(current.inm, skillExecLog);
                }
            }
            BattleSuspend.Data.Variables var = data.var;
            battle.WinTriggerCount   = var.wtc;
            battle.LoseTriggerCount  = var.ltc;
            battle.ActionCount       = var.act;
            battle.Killstreak        = var.kls;
            battle.MaxKillstreak     = var.mks;
            battle.TotalHeal         = var.thl;
            battle.TotalDamagesTaken = var.tdt;
            battle.TotalDamages      = var.tdm;
            battle.NumUsedItems      = var.nui;
            battle.NumUsedSkills     = var.nus;
            battle.ClockTime         = var.ctm;
            battle.ClockTimeTotal    = var.ctt;
            battle.ContinueCount     = var.coc;
            battle.FinisherIname     = var.fns;
            instance.GoldCount       = var.glc;
            instance.RestoreTreasureCount(var.trc);
            battle.Seed              = var.rsd;
            battle.PlayByManually    = var.pbm;
            battle.IsUseAutoPlayMode = var.uam;
            if (var.ris != null)
            {
                for (int index = 0; index < var.ris.Length; ++index)
                {
                    battle.SetRandSeed(index, var.ris[index]);
                }
            }
            if (var.gsl.Count == battle.GimmickEventList.Count)
            {
                for (int index = 0; index < var.gsl.Count; ++index)
                {
                    BattleSuspend.Data.Variables.GimmickEvent gimmickEvent = var.gsl[index];
                    battle.GimmickEventList[index].count       = gimmickEvent.ctr;
                    battle.GimmickEventList[index].IsCompleted = gimmickEvent.cmp != 0;
                }
            }
            if (var.ssl.Count != 0)
            {
                battle.EventTriggers = new bool[var.ssl.Count];
                for (int index = 0; index < var.ssl.Count; ++index)
                {
                    BattleSuspend.Data.Variables.ScriptEvent scriptEvent = var.ssl[index];
                    battle.EventTriggers[index] = scriptEvent.trg;
                }
            }
            Dictionary <string, int> dictionary1 = new Dictionary <string, int>();
            int num1 = Math.Min(var.tkk.Length, var.tkv.Length);

            for (int index = 0; index < num1; ++index)
            {
                dictionary1.Add(var.tkk[index], var.tkv[index]);
            }
            battle.TargetKillstreak = dictionary1;
            Dictionary <string, int> dictionary2 = new Dictionary <string, int>();
            int num2 = Math.Min(var.mtk.Length, var.mtv.Length);

            for (int index = 0; index < num2; ++index)
            {
                dictionary2.Add(var.mtk[index], var.mtv[index]);
            }
            battle.MaxTargetKillstreak = dictionary2;
            BattleSuspend.Data.Variables.WeatherInfo wti = var.wti;
            if (!string.IsNullOrEmpty(wti.wid))
            {
                Unit unitFromAllUnits = BattleSuspend.GetUnitFromAllUnits(battle, wti.mun);
                WeatherData.SuspendWeather(wti.wid, battle.Units, unitFromAllUnits, wti.rnk, wti.rcp, wti.ccl);
            }
            return(true);
        }