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); } }
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; }
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); } }
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))); }
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); } }
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 + "\""); } }
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); } } }
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); }
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); } }
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); }
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); }
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); }