Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. using System;
  2. using System.Collections.Generic;
  3. using Mevius.App;
  4. using Mevius.Collaboration.FF7;
  5. using Mevius.Common;
  6. using Mevius.DataSheet;
  7. using Mevius.Db;
  8. using Mevius.Db.Event;
  9. using Mevius.Debug;
  10. using Mevius.Effect;
  11. using Mevius.Field;
  12. using Mevius.Gui;
  13. using Mevius.Loader;
  14. using Mevius.Motion;
  15. using Mevius.Network;
  16. using Mevius.Party;
  17. using Mevius.Renderer;
  18. using Mevius.Script;
  19. using Mevius.Sound;
  20. using Mevius.Zone;
  21. using UnityEngine;
  22.  
  23. namespace Mevius.Battle
  24. {
  25.     public class BattleManager : BackgroundLoader, IDisposable, IManager
  26.     {
  27.         public BattleManager()
  28.         {
  29.             this.BattleHash = this.GetHashCode();
  30.             ZoneActionSequenceExecutor._i.AddBackgourdLoader(ActionInfo.Type.Sequence_Battle, this);
  31.             ZoneActionSequenceExecutor._i.AddBackgourdLoader(ActionInfo.Type.Sequence_BossBattle, this);
  32.             ZoneActionSequenceExecutor i = ZoneActionSequenceExecutor._i;
  33.             i.changeActionStartCallback2 = (ZoneActionSequenceExecutor.ChangeActionCallback)Delegate.Combine(i.changeActionStartCallback2, new ZoneActionSequenceExecutor.ChangeActionCallback(this.ChangeActionStart));
  34.             ZoneActionSequenceExecutor i2 = ZoneActionSequenceExecutor._i;
  35.             i2.changeActionEndCallback2 = (ZoneActionSequenceExecutor.ChangeActionCallback)Delegate.Combine(i2.changeActionEndCallback2, new ZoneActionSequenceExecutor.ChangeActionCallback(this.ChangeActionEnd));
  36.             ZoneActionSequenceExecutor i3 = ZoneActionSequenceExecutor._i;
  37.             i3.changeCameraStartCallback2 = (ZoneActionSequenceExecutor.ChangeCameraCallback)Delegate.Combine(i3.changeCameraStartCallback2, new ZoneActionSequenceExecutor.ChangeCameraCallback(this.ChangeActionCameraStart));
  38.             ZoneActionSequenceExecutor i4 = ZoneActionSequenceExecutor._i;
  39.             i4.changeCameraEndCallback2 = (ZoneActionSequenceExecutor.ChangeCameraCallback)Delegate.Combine(i4.changeCameraEndCallback2, new ZoneActionSequenceExecutor.ChangeCameraCallback(this.ChangeActionCameraEnd));
  40.         }
  41.  
  42.         public string Name()
  43.         {
  44.             return "BattleManager";
  45.         }
  46.  
  47.         public BattleManager.ResourceStep GetResourceStep()
  48.         {
  49.             return this._resourceStep;
  50.         }
  51.  
  52.         public BattleManager.MultiBattleCmdStep GetMultiBattleCmdStep()
  53.         {
  54.             return this.m_multiBattleCmdStep;
  55.         }
  56.  
  57.         public int GetActorCount()
  58.         {
  59.             return this._actorNameList.Count;
  60.         }
  61.  
  62.         public bool LastBattleFlag
  63.         {
  64.             get
  65.             {
  66.                 return this.m_lastBattle;
  67.             }
  68.         }
  69.  
  70.         public Vector3 BasePosition
  71.         {
  72.             get
  73.             {
  74.                 return this._basePosition;
  75.             }
  76.             set
  77.             {
  78.                 this._basePosition = value;
  79.             }
  80.         }
  81.  
  82.         public bool PartyMemberTurn
  83.         {
  84.             get
  85.             {
  86.                 return this.m_partyMemberTurn;
  87.             }
  88.         }
  89.  
  90.         public bool MultiBattleIgnoreMemberActionCamera
  91.         {
  92.             get
  93.             {
  94.                 return this.m_multiBattleIgnoreMemberActionCamera;
  95.             }
  96.             set
  97.             {
  98.                 this.m_multiBattleIgnoreMemberActionCamera = value;
  99.             }
  100.         }
  101.  
  102.         public BattleManager.AutoAttackStrategyType AutoAttackStrategy
  103.         {
  104.             get
  105.             {
  106.                 if (DbManager._i != null)
  107.                 {
  108.                     return (BattleManager.AutoAttackStrategyType)DbManager._i._battle_auto_type;
  109.                 }
  110.                 return BattleManager.AutoAttackStrategyType.DefensiveType;
  111.             }
  112.             set
  113.             {
  114.                 if (DbManager._i != null)
  115.                 {
  116.                     DbManager._i._battle_auto_type = (ushort)value;
  117.                 }
  118.             }
  119.         }
  120.  
  121.         public bool IsMultiBattleTest
  122.         {
  123.             get
  124.             {
  125.                 return this.m_bMultiBattleTest;
  126.             }
  127.             set
  128.             {
  129.                 this.m_bMultiBattleTest = value;
  130.             }
  131.         }
  132.  
  133.         public List<BattleActor> ScreenOrderEnemyActorList
  134.         {
  135.             get
  136.             {
  137.                 if (this.m_screenOrderEnemyActorList.Count == 0)
  138.                 {
  139.                     this.CalcScreenOrderEnemyList();
  140.                 }
  141.                 return this.m_screenOrderEnemyActorList;
  142.             }
  143.         }
  144.  
  145.         public void TouchAreaEvent(bool isPressed, bool ignoreAttack)
  146.         {
  147.             if (isPressed)
  148.             {
  149.                 this.m_guiTouchComponent.m_stateBit |= 3u;
  150.             }
  151.             else
  152.             {
  153.                 this.m_guiTouchComponent.m_stateBit = 4u;
  154.             }
  155.             this.m_ignoreAttack = ignoreAttack;
  156.         }
  157.  
  158.         public int RandCount
  159.         {
  160.             get
  161.             {
  162.                 return this.m_randCount;
  163.             }
  164.         }
  165.  
  166.         public int DamageRandCount
  167.         {
  168.             get
  169.             {
  170.                 return this.m_damageRandCount;
  171.             }
  172.         }
  173.  
  174.         public int MovementRandCount
  175.         {
  176.             get
  177.             {
  178.                 return this.m_movementRandCount;
  179.             }
  180.         }
  181.  
  182.         public bool EnemyActionEndFlag
  183.         {
  184.             get
  185.             {
  186.                 return this.m_enemyActionEndFlag;
  187.             }
  188.         }
  189.  
  190.         public BattleManager.ESubActionType SubActionType
  191.         {
  192.             get
  193.             {
  194.                 return this.m_subActionType;
  195.             }
  196.             set
  197.             {
  198.                 this.m_subActionType = value;
  199.             }
  200.         }
  201.  
  202.         public OptimaType OptimaType
  203.         {
  204.             get
  205.             {
  206.                 return this.m_optimaType;
  207.             }
  208.             set
  209.             {
  210.                 this.m_optimaType = value;
  211.             }
  212.         }
  213.  
  214.         public byte[] OptimaUseCounts
  215.         {
  216.             get
  217.             {
  218.                 return this.m_optimaUseCounts;
  219.             }
  220.             set
  221.             {
  222.                 this.m_optimaUseCounts = value;
  223.             }
  224.         }
  225.  
  226.         public BattleActor DQLogActor
  227.         {
  228.             get
  229.             {
  230.                 return this.m_dqLogActor;
  231.             }
  232.             set
  233.             {
  234.                 this.m_dqLogActor = value;
  235.             }
  236.         }
  237.  
  238.         public byte[] FF7AbilityUseCounts
  239.         {
  240.             get
  241.             {
  242.                 return this.m_ff7AbilityUseCounts;
  243.             }
  244.             set
  245.             {
  246.                 this.m_ff7AbilityUseCounts = value;
  247.             }
  248.         }
  249.  
  250.         public BattleManager.DrawAbility[] FF8DrawAbility
  251.         {
  252.             get
  253.             {
  254.                 return this.ff8DrawAbility;
  255.             }
  256.         }
  257.  
  258.         public void Dispose()
  259.         {
  260.             ZoneActionSequenceExecutor i = ZoneActionSequenceExecutor._i;
  261.             i.changeCameraEndCallback2 = (ZoneActionSequenceExecutor.ChangeCameraCallback)Delegate.Remove(i.changeCameraEndCallback2, new ZoneActionSequenceExecutor.ChangeCameraCallback(this.ChangeActionCameraEnd));
  262.             ZoneActionSequenceExecutor i2 = ZoneActionSequenceExecutor._i;
  263.             i2.changeCameraStartCallback2 = (ZoneActionSequenceExecutor.ChangeCameraCallback)Delegate.Remove(i2.changeCameraStartCallback2, new ZoneActionSequenceExecutor.ChangeCameraCallback(this.ChangeActionCameraStart));
  264.             ZoneActionSequenceExecutor i3 = ZoneActionSequenceExecutor._i;
  265.             i3.changeActionEndCallback2 = (ZoneActionSequenceExecutor.ChangeActionCallback)Delegate.Remove(i3.changeActionEndCallback2, new ZoneActionSequenceExecutor.ChangeActionCallback(this.ChangeActionEnd));
  266.             ZoneActionSequenceExecutor i4 = ZoneActionSequenceExecutor._i;
  267.             i4.changeActionStartCallback2 = (ZoneActionSequenceExecutor.ChangeActionCallback)Delegate.Remove(i4.changeActionStartCallback2, new ZoneActionSequenceExecutor.ChangeActionCallback(this.ChangeActionStart));
  268.         }
  269.  
  270.         public override void Load(int actionIndex)
  271.         {
  272.             ActionInfo action = ZoneActionSequenceExecutor._i.GetAction(actionIndex);
  273.             if (action != null)
  274.             {
  275.                 this.currentBattleScene = action.GetElementAction().m3dd07754649a1e43955998e34289003c();
  276.             }
  277.             if (this._resourceStep == BattleManager.ResourceStep.None)
  278.             {
  279.                 this._resourceStep = BattleManager.ResourceStep.Init;
  280.             }
  281.             this._enableUnloadRequest = false;
  282.         }
  283.  
  284.         public override bool IsLoaded(int actionIndex)
  285.         {
  286.             return this._resourceStep == BattleManager.ResourceStep.EndRequestWait;
  287.         }
  288.  
  289.         public override void Active(int actionIndex)
  290.         {
  291.             this._active = true;
  292.             this.StartBattle();
  293.         }
  294.  
  295.         public override void Deactive(int actionIndex)
  296.         {
  297.             this._step = BattleManager.BattleStep.ResourceStepUnload;
  298.             this._active = false;
  299.         }
  300.  
  301.         public override void Unload(int actionIndex)
  302.         {
  303.             this.resourceUnloadTaskId = 0u;
  304.             if (this._resourceStep == BattleManager.ResourceStep.EndRequestWait)
  305.             {
  306.                 this.resourceUnloadTaskId = Mevius.App.Api.CreateTaskId();
  307.                 this._resourceStep = BattleManager.ResourceStep.RemoveActor;
  308.             }
  309.         }
  310.  
  311.         public override void End(int actionIndex)
  312.         {
  313.         }
  314.  
  315.         public override bool IsUnloaded(int actionIndex)
  316.         {
  317.             return this._resourceStep == BattleManager.ResourceStep.None;
  318.         }
  319.  
  320.         public override bool IsEndActionCamera(int actionIndex)
  321.         {
  322.             return this._active && this._step == BattleManager.BattleStep.ActionCameraEndWait;
  323.         }
  324.  
  325.         public override bool IsEndResource(int actionIndex)
  326.         {
  327.             return this._enableUnloadRequest && this._step > BattleManager.BattleStep.PlayerTurnStart && this._step >= BattleManager.BattleStep.Result;
  328.         }
  329.  
  330.         public override bool IsUnloadable(int actionIndex, string resourceName)
  331.         {
  332.             return true;
  333.         }
  334.  
  335.         public override bool IsRequestNext(int actionIndex)
  336.         {
  337.             return this._step >= BattleManager.BattleStep.ResultEnd;
  338.         }
  339.  
  340.         public void StartBattle()
  341.         {
  342.             if (this._step == BattleManager.BattleStep.None)
  343.             {
  344.                 this.requestStartBattle = false;
  345.                 this._step = BattleManager.BattleStep.CreateActor;
  346.             }
  347.             else
  348.             {
  349.                 this.requestStartBattle = true;
  350.             }
  351.         }
  352.  
  353.         public bool IsLoadResource()
  354.         {
  355.             return this._resourceStep != BattleManager.ResourceStep.None;
  356.         }
  357.  
  358.         public bool IsBattleWin()
  359.         {
  360.             return BattleManager.BattleStep.ResultReady <= this._step && this._step <= BattleManager.BattleStep.ResultEnd;
  361.         }
  362.  
  363.         public bool IsBattleEnd()
  364.         {
  365.             return this._step == BattleManager.BattleStep.Exit;
  366.         }
  367.  
  368.         public static string GetEnemyActorName(int c)
  369.         {
  370.             return "enemy_" + c.ToString();
  371.         }
  372.  
  373.         public static string GetBattlePlayerName()
  374.         {
  375.             return Mevius.Db.Api.GetPlayerName() + "_battle";
  376.         }
  377.  
  378.         public static string GetBattlePlayerSubName()
  379.         {
  380.             return Mevius.Db.Api.GetPlayerName() + "_battle_sub";
  381.         }
  382.  
  383.         public static string GetMultiMemberPlayerName(Mevius.Party.Api.PARTY_MEMBER_TYPE type)
  384.         {
  385.             string result = string.Empty;
  386.             switch (type)
  387.             {
  388.             case Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_NPC1:
  389.                 result = Mevius.Db.Api.GetPlayerName() + "_battle2";
  390.                 break;
  391.             case Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_NPC2:
  392.                 result = Mevius.Db.Api.GetPlayerName() + "_battle3";
  393.                 break;
  394.             case Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_NPC3:
  395.                 result = Mevius.Db.Api.GetPlayerName() + "_battle4";
  396.                 break;
  397.             case Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME:
  398.                 result = BattleManager.GetBattlePlayerName();
  399.                 break;
  400.             }
  401.             return result;
  402.         }
  403.  
  404.         public BattleManager.BattleStep GetStep()
  405.         {
  406.             return this._step;
  407.         }
  408.  
  409.         public void InitStep()
  410.         {
  411.             this._step = BattleManager.BattleStep.None;
  412.         }
  413.  
  414.         public void ChangeActionStart()
  415.         {
  416.             if (ZoneActionSequenceExecutor._i.GetCurrentAction().IsBattle())
  417.             {
  418.             }
  419.         }
  420.  
  421.         public void ChangeActionEnd()
  422.         {
  423.             ActionInfo prevAction = ZoneActionSequenceExecutor._i.GetPrevAction();
  424.             ActionInfo currentAction = ZoneActionSequenceExecutor._i.GetCurrentAction();
  425.             if ((prevAction != null && prevAction.IsBattle()) || (currentAction != null && currentAction.ActionType == ActionInfo.Type.Sequence_End))
  426.             {
  427.                 this.InitStep();
  428.             }
  429.         }
  430.  
  431.         public void ChangeActionCameraStart()
  432.         {
  433.             ActionInfo currentActionCamera = Mevius.Zone.Api.GetCurrentActionCamera();
  434.             ActionInfo nextActionCamera = Mevius.Zone.Api.GetNextActionCamera();
  435.             if (currentActionCamera != null && currentActionCamera.IsBattle() && this.m_cameraManager != null)
  436.             {
  437.                 FieldManager._i.fieldCameraController.fieldCamera.SetCamera(this.m_cameraManager.CameraSequence.Eye, this.m_cameraManager.CameraSequence.Aim, this.m_cameraManager.CameraSequence.Roll, Vector3.up, FieldManager._i.fieldCameraController.fieldCamera.nearClipPlane, FieldManager._i.fieldCameraController.fieldCamera.farClipPlane, this.m_cameraManager.CameraSequence.Fov, FieldManager._i.fieldCameraController.fieldCamera.fNumber);
  438.             }
  439.         }
  440.  
  441.         public void ChangeActionCameraEnd()
  442.         {
  443.             ActionInfo currentActionCamera = Mevius.Zone.Api.GetCurrentActionCamera();
  444.             if (currentActionCamera != null)
  445.             {
  446.                 if (currentActionCamera.IsBattle())
  447.                 {
  448.                     bool bossLevel = false;
  449.                     if (currentActionCamera.GetElementAction().m57804671548549f75a433d28698e5d1f() == "bosslevel" || currentActionCamera.ActionType == ActionInfo.Type.Sequence_BossBattle)
  450.                     {
  451.                         bossLevel = true;
  452.                     }
  453.                     string targetGadgetName = Mevius.Field.Api.GadgetRouteApi.GetTargetGadgetName();
  454.                     int targetLevel = Mevius.Field.Api.BattleApi.GetTargetLevel(targetGadgetName, bossLevel, false, -1, Mevius.App.Api.GetMainJobTypeCurrentDeck());
  455.                     Mevius.Battle.Api.SetBattleEnemyLevel(targetLevel);
  456.                 }
  457.                 ActionInfo actionInfo = currentActionCamera;
  458.                 if (currentActionCamera.IsBattle() || actionInfo.ActionType == ActionInfo.Type.Sequence_HitBossVisibleModel || actionInfo.ActionType == ActionInfo.Type.Sequence_AppearBoss)
  459.                 {
  460.                     Mevius.Gui.Api.SetFieldMenuMode(GuiFieldMenu.Mode.ViewFull, false);
  461.                     if (!Mevius.Zone.Api.IsCancelZoneActionSequence())
  462.                     {
  463.                         DbManager.TemporarySaveData temporarySaveData = Mevius.Db.Api.GetTemporarySaveData();
  464.                         string targetGadgetName2 = Mevius.Field.Api.GadgetRouteApi.GetTargetGadgetName();
  465.                         string stateChangeName = Mevius.Field.Api.GadgetRouteApi.GetStateChangeName(targetGadgetName2);
  466.                         Cf2cd309e997d6caaa7b19cc23dfe235b.Cfa0ba6c176c70705c5a33b1796b4787d cfa0ba6c176c70705c5a33b1796b4787d = Cf2cd309e997d6caaa7b19cc23dfe235b.Find(stateChangeName);
  467.                         bool flag = false;
  468.                         if (temporarySaveData.type == DbManager.ActionSequenceType.Search)
  469.                         {
  470.                             string actionSequenceAreaBattle = Mevius.Field.Api.DatasheetApi.GetActionSequenceAreaBattle(targetGadgetName2);
  471.                             if (!string.IsNullOrEmpty(actionSequenceAreaBattle))
  472.                             {
  473.                                 flag = true;
  474.                             }
  475.                             bool flag2;
  476.                             if (!string.IsNullOrEmpty(Mevius.Field.Api.BattleApi.GetBossName(targetGadgetName2, out flag2)) && flag2)
  477.                             {
  478.                                 flag = true;
  479.                             }
  480.                         }
  481.                         if (actionInfo.ActionType == ActionInfo.Type.Sequence_HitBossVisibleModel || actionInfo.ActionType == ActionInfo.Type.Sequence_AppearBoss)
  482.                         {
  483.                             flag = true;
  484.                         }
  485.                         else
  486.                         {
  487.                             string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  488.                             Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field, soundResourceName, Mevius.DataSheet.Api.GetResidentString("EncountSe", "system_se_encount_in"), 1f, 0, 0, false, -1, 1f);
  489.                         }
  490.                         if (flag)
  491.                         {
  492.                             actionInfo = Mevius.Zone.Api.GetLastBattleAction();
  493.                         }
  494.                         if (BattleManager._i.IsFirstBattle())
  495.                         {
  496.                             this.m_isBgmRandSet = false;
  497.                         }
  498.                         if (!this.m_isBgmRandSet)
  499.                         {
  500.                             this.m_isBgmRandSet = true;
  501.                             this.m_bgmRandValue = Mevius.Common.Random.GetInstance().GetUnsignedInteger();
  502.                         }
  503.                         this.PlayBattleBgm(actionInfo);
  504.                     }
  505.                 }
  506.             }
  507.         }
  508.  
  509.         private void SetEnemyCamera(BattleActor actor)
  510.         {
  511.             if (this.m_boss)
  512.             {
  513.                 if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action || !this.CameraManager.IsActionOwner(actor))
  514.                 {
  515.                     this.CameraManager.SetInterpolation(0.5f, CameraSequence.BlendType.Curve, true);
  516.                     this.CameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, actor);
  517.                     this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  518.                 }
  519.             }
  520.             else if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action)
  521.             {
  522.                 string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  523.                 Vector3 position = actor.chara.GetElementIdTransform(name).position;
  524.                 Camera component = Mevius.Renderer.CameraManager.GetInstance().GetViewCameraGameObject().GetComponent<Camera>();
  525.                 Vector3 vector = component.WorldToViewportPoint(position);
  526.                 if (vector.x < 0f || vector.x > 1f || vector.y < 0f || vector.y > 1f || vector.z <= 0f)
  527.                 {
  528.                     this.CameraManager.SetInterpolation(1f, CameraSequence.BlendType.Curve, true);
  529.                     this.CameraManager.InitTwoShot(actor, this.m_playerActor, 0, false);
  530.                     this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TwoShot);
  531.                 }
  532.             }
  533.             else if (!this.CameraManager.IsActionOwner(actor))
  534.             {
  535.                 this.CameraManager.SetInterpolation(0.5f, CameraSequence.BlendType.Curve, true);
  536.                 this.CameraManager.InitTwoShot(actor, this.m_playerActor, 0, false);
  537.                 this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TwoShot);
  538.             }
  539.         }
  540.  
  541.         public void PlayBattleBgm(ActionInfo action)
  542.         {
  543.             string text = string.Empty;
  544.             this.m_isJobBgm = false;
  545.             if (action != null)
  546.             {
  547.                 if (action.GetElementAction().m91e6a331d5ec22b58b96fcc04375134c().Length > 0)
  548.                 {
  549.                     text = action.GetElementAction().m91e6a331d5ec22b58b96fcc04375134c();
  550.                 }
  551.                 else if (action.GetElementAction().m57804671548549f75a433d28698e5d1f() == "accent")
  552.                 {
  553.                     text = Mevius.DataSheet.Api.GetResidentString("bgmBattleAccent", string.Empty);
  554.                 }
  555.             }
  556.             if (string.IsNullOrEmpty(text))
  557.             {
  558.                 this.m_isJobBgm = true;
  559.                 int num;
  560.                 if (Mevius.App.Api.IsPartyMode())
  561.                 {
  562.                     num = Mevius.Db.Api.GetCurrentCardDeck2() + 24;
  563.                 }
  564.                 else
  565.                 {
  566.                     num = Mevius.Db.Api.GetCurrentCardDeck();
  567.                     if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  568.                     {
  569.                         num += 12;
  570.                     }
  571.                 }
  572.                 text = BattleUtility.GetBgmName(num, this.m_bgmRandValue);
  573.             }
  574.             Mevius.Sound.Api.PlayBgm(BgmManager.BgmLayer.Bgm_Battle, text, 0, 1f);
  575.         }
  576.  
  577.         public void CreateCameraManager()
  578.         {
  579.             this.m_cameraManager = new BattleCameraManager();
  580.         }
  581.  
  582.         public void RemoveCameraManager()
  583.         {
  584.             if (this.m_cameraManager != null)
  585.             {
  586.                 this.m_cameraManager.Dispose();
  587.                 this.m_cameraManager = null;
  588.             }
  589.         }
  590.  
  591.         public bool IsFirstBattle()
  592.         {
  593.             LinkedListNode<ActionInfo> currentActionCameraNode = Mevius.Zone.Api.GetCurrentActionCameraNode();
  594.             LinkedListNode<ActionInfo> linkedListNode = null;
  595.             if (currentActionCameraNode != null)
  596.             {
  597.                 if (!currentActionCameraNode.Value.IsBattle())
  598.                 {
  599.                     return false;
  600.                 }
  601.                 linkedListNode = currentActionCameraNode.Previous;
  602.             }
  603.             while (linkedListNode != null)
  604.             {
  605.                 if (linkedListNode.Value.IsBattle())
  606.                 {
  607.                     return false;
  608.                 }
  609.                 linkedListNode = linkedListNode.Previous;
  610.             }
  611.             return true;
  612.         }
  613.  
  614.         public bool IsLastBattle()
  615.         {
  616.             LinkedListNode<ActionInfo> currentActionNode = Mevius.Zone.Api.GetCurrentActionNode();
  617.             LinkedListNode<ActionInfo> linkedListNode = null;
  618.             if (currentActionNode != null)
  619.             {
  620.                 linkedListNode = currentActionNode.Next;
  621.             }
  622.             if (linkedListNode == null || linkedListNode.Value.ActionType == ActionInfo.Type.Sequence_Move)
  623.             {
  624.                 return true;
  625.             }
  626.             while (linkedListNode != null)
  627.             {
  628.                 if (linkedListNode.Value.IsBattle())
  629.                 {
  630.                     return false;
  631.                 }
  632.                 linkedListNode = linkedListNode.Next;
  633.             }
  634.             return true;
  635.         }
  636.  
  637.         public void SetBattleWin(float startWait = 0f)
  638.         {
  639.             if (!Mevius.App.Api.IsPartyMode() && this.m_lastBattle && !this.m_lastBgmVolumeChanged)
  640.             {
  641.                 this.m_lastBgmVolumeChanged = true;
  642.                 BgmManager._i.ChangeCurrentBgmVolume(Mevius.DataSheet.Api.GetResidentFloat("bgmBattleVolumeOnWinning", 1f), 500);
  643.             }
  644.             this.m_actionStepWait = startWait;
  645.             this._step = BattleManager.BattleStep.ResultReady;
  646.         }
  647.  
  648.         public void SetBattleWinImmediate(bool killEnemy = true)
  649.         {
  650.             this.m_surfaceBlendAlpha = 1f;
  651.             if (this.m_surfaceBlend == null)
  652.             {
  653.                 this.m_surfaceBlend = MainLoop._i.gameObject.AddComponent<SurfaceBlend>();
  654.             }
  655.             this.m_surfaceBlend.SetAlpha(this.m_surfaceBlendAlpha);
  656.             RenderUtility.GetInstance().SetViewCloneEnabled(true);
  657.             int actionIndex = Mevius.Zone.Api.GetActionIndex();
  658.             int num = -1;
  659.             C098a168d3605b12448638cab8ccafe9d.C6a63ba3da59f35f0fee059da0f7321db c6a63ba3da59f35f0fee059da0f7321db = C098a168d3605b12448638cab8ccafe9d.Find(this.currentBattleScene);
  660.             if (Mevius.App.Api.IsPartyMode())
  661.             {
  662.                 DbManager.MultiBattleData multiBattleData = Mevius.Db.Api.GetMultiBattleData();
  663.                 if (multiBattleData != null)
  664.                 {
  665.                     for (int i = 0; i < multiBattleData.enemyEscapeActionIndex.Length; i++)
  666.                     {
  667.                         if (multiBattleData.enemyEscapeActionIndex[i] == actionIndex || multiBattleData.enemyEscapeActionIndex[i] == -1)
  668.                         {
  669.                             num = i;
  670.                             break;
  671.                         }
  672.                     }
  673.                     for (int j = 0; j < this._entryBattleCharaSpecList.Count; j++)
  674.                     {
  675.                         string enemyActorName = BattleManager.GetEnemyActorName(j);
  676.                         BattleActor battleActor = this.FindActor(enemyActorName);
  677.                         if (battleActor != null)
  678.                         {
  679.                             if (c6a63ba3da59f35f0fee059da0f7321db.m4f63acfb743cb25115f76fc77af6151e(j) != 0 || battleActor.IsUnTarget())
  680.                             {
  681.                                 multiBattleData.enemyEscapeActionIndex[num] = actionIndex;
  682.                                 if (0 <= battleActor.EnemyIndex && battleActor.EnemyIndex < multiBattleData.enemyEscapeCharaFlags.GetLength(1))
  683.                                 {
  684.                                     multiBattleData.enemyEscapeCharaFlags[num, battleActor.EnemyIndex] = true;
  685.                                 }
  686.                             }
  687.                             if (battleActor.IsActiveTarget())
  688.                             {
  689.                                 if (battleActor.IsNeedNotKill() || !killEnemy)
  690.                                 {
  691.                                     if (num != -1)
  692.                                     {
  693.                                         multiBattleData.enemyEscapeActionIndex[num] = actionIndex;
  694.                                         if (0 <= battleActor.EnemyIndex && battleActor.EnemyIndex < multiBattleData.enemyEscapeCharaFlags.GetLength(1))
  695.                                         {
  696.                                             multiBattleData.enemyEscapeCharaFlags[num, battleActor.EnemyIndex] = true;
  697.                                         }
  698.                                     }
  699.                                 }
  700.                                 else
  701.                                 {
  702.                                     battleActor.SetHp(0, false, false);
  703.                                     battleActor.OnDead();
  704.                                 }
  705.                             }
  706.                         }
  707.                     }
  708.                 }
  709.             }
  710.             else
  711.             {
  712.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  713.                 for (int k = 0; k < battleData.enemyEscapeActionIndex.Length; k++)
  714.                 {
  715.                     if (battleData.enemyEscapeActionIndex[k] == actionIndex || battleData.enemyEscapeActionIndex[k] == -1)
  716.                     {
  717.                         num = k;
  718.                         break;
  719.                     }
  720.                 }
  721.                 for (int l = 0; l < this._entryBattleCharaSpecList.Count; l++)
  722.                 {
  723.                     string enemyActorName2 = BattleManager.GetEnemyActorName(l);
  724.                     BattleActor battleActor2 = this.FindActor(enemyActorName2);
  725.                     if (battleActor2 != null)
  726.                     {
  727.                         if (c6a63ba3da59f35f0fee059da0f7321db.m4f63acfb743cb25115f76fc77af6151e(l) != 0 || battleActor2.IsUnTarget())
  728.                         {
  729.                             battleData.enemyEscapeActionIndex[num] = actionIndex;
  730.                             if (0 <= battleActor2.EnemyIndex && battleActor2.EnemyIndex < battleData.enemyEscapeCharaFlags.GetLength(1))
  731.                             {
  732.                                 battleData.enemyEscapeCharaFlags[num, battleActor2.EnemyIndex] = true;
  733.                             }
  734.                         }
  735.                         if (battleActor2.IsActiveTarget())
  736.                         {
  737.                             if (battleActor2.IsNeedNotKill() || !killEnemy)
  738.                             {
  739.                                 if (num != -1)
  740.                                 {
  741.                                     battleData.enemyEscapeActionIndex[num] = actionIndex;
  742.                                     if (0 <= battleActor2.EnemyIndex && battleActor2.EnemyIndex < battleData.enemyEscapeCharaFlags.GetLength(1))
  743.                                     {
  744.                                         battleData.enemyEscapeCharaFlags[num, battleActor2.EnemyIndex] = true;
  745.                                     }
  746.                                 }
  747.                             }
  748.                             else
  749.                             {
  750.                                 battleActor2.SetHp(0, false, false);
  751.                                 battleActor2.OnDead();
  752.                             }
  753.                         }
  754.                     }
  755.                 }
  756.                 if (this.m_playerActor.IsSubActionSub())
  757.                 {
  758.                     BattleManager._i.GetPlayerActorSub().UpdateStatusEffectActionEnd();
  759.                 }
  760.                 this.EndZone(this.m_subActionType == BattleManager.ESubActionType.JobAbility, false);
  761.                 this.ChangeActionValue(BattleManager.ChangeActionValueType.BattleEnd, false);
  762.             }
  763.             if (this.m_playerActor.IsSummon())
  764.             {
  765.                 this.ProcChangeJob(false, true);
  766.             }
  767.             this.m_playerActor.OnBattleWin();
  768.             if (this.m_playerActorSub != null)
  769.             {
  770.                 this.m_playerActorSub.OnBattleWin();
  771.             }
  772.             int currentDeckIndex = BattleUtility.GetCurrentDeckIndex();
  773.             string resultBgmName = BattleUtility.GetResultBgmName(currentDeckIndex);
  774.             float volume = (!this.m_lastBattle) ? 1f : Mevius.DataSheet.Api.GetResidentFloat("bgmBattleVolumeOnWinning", 1f);
  775.             ActionInfo currentActionCamera = Mevius.Zone.Api.GetCurrentActionCamera();
  776.             if (currentActionCamera != null && currentActionCamera.GetElementAction().m097866f1118d7f9304b7e72288586ca3().Length > 0)
  777.             {
  778.                 Mevius.Sound.Api.PlayBgm(BgmManager.BgmLayer.Bgm_ActionBottom, currentActionCamera.GetElementAction().m097866f1118d7f9304b7e72288586ca3(), 0, volume);
  779.             }
  780.             else if (!string.IsNullOrEmpty(resultBgmName) && this.m_lastBattle)
  781.             {
  782.                 Mevius.Sound.Api.PlayBgm(BgmManager.BgmLayer.Bgm_Battle, resultBgmName, 0, volume);
  783.             }
  784.             this.EndBattle();
  785.             this._step = BattleManager.BattleStep.Result;
  786.         }
  787.  
  788.         public void OnLastBattleWin(BattleManager.LastBattleWinCameraType cameraType)
  789.         {
  790.             if (Mevius.Db.Api.GetBattleActionSequenceCurrentStep() == Mevius.Db.Api.GetBattleActionSequenceMaxStep() && !Mevius.Battle.Api.IsLastEnemyEscape())
  791.             {
  792.                 bool flag = false;
  793.                 if (cameraType == BattleManager.LastBattleWinCameraType.Player)
  794.                 {
  795.                     AppActor appActor = Mevius.App.Api.FindAppActor(Mevius.Db.Api.GetPlayerName());
  796.                     if (appActor != null)
  797.                     {
  798.                         string replaceCharaSpecName = Mevius.Battle.Api.GetReplaceCharaSpecName(appActor.getSpec());
  799.                         C95bcaea3352f97e159106604018eaa69.Cd665cdef191ff92708675209607d4634 cd665cdef191ff92708675209607d = C95bcaea3352f97e159106604018eaa69.Find(replaceCharaSpecName);
  800.                         if (cd665cdef191ff92708675209607d != null && Mevius.Sound.Api.IsPlayStateSound(StateSound.StateSoundType.BattleWin0, "player", cd665cdef191ff92708675209607d))
  801.                         {
  802.                             int soundHandle = Mevius.Sound.Api.PlayStateSound(StateSound.StateSoundType.BattleWin0, "player", cd665cdef191ff92708675209607d, null, false);
  803.                             flag = true;
  804.                             GameObject gameObject = appActor.getGameObject();
  805.                             if (gameObject)
  806.                             {
  807.                                 FacialController component = gameObject.GetComponent<FacialController>();
  808.                                 if (component == null)
  809.                                 {
  810.                                     return;
  811.                                 }
  812.                                 int playTime = Mevius.Sound.Api.GetPlayTime(soundHandle);
  813.                                 if (playTime > 0)
  814.                                 {
  815.                                     PreciseTime preciseTime = new PreciseTime((float)playTime / 1000f * 0.9f);
  816.                                     component.EnableLipsync = true;
  817.                                     component.StartLipsync(preciseTime.GetSecond());
  818.                                 }
  819.                                 this.lastBattleWinActorObject = gameObject;
  820.                             }
  821.                         }
  822.                     }
  823.                 }
  824.                 if (!flag && this.m_fairyActor != null)
  825.                 {
  826.                     string text = Mevius.Db.Api.GetEquipment(Mevius.Db.Api.EQUIPMENT_TYPE.EQUIPMENT_TYPE_FAIRY, false, false);
  827.                     text = Mevius.Db.Api.ChangeStoryEco(text);
  828.                     C8f07bc7aaef5445b9988a9d210e42418.Ca060fd76133aa5c704d976700ed7cdd9 ca060fd76133aa5c704d976700ed7cdd = C8f07bc7aaef5445b9988a9d210e42418.Find(text);
  829.                     if (ca060fd76133aa5c704d976700ed7cdd != null)
  830.                     {
  831.                         C95bcaea3352f97e159106604018eaa69.Cd665cdef191ff92708675209607d4634 cd665cdef191ff92708675209607d2 = C95bcaea3352f97e159106604018eaa69.Find(ca060fd76133aa5c704d976700ed7cdd.m4831fa9b93085e0ab5c88119c3c57882());
  832.                         if (cd665cdef191ff92708675209607d2 != null)
  833.                         {
  834.                             Mevius.Sound.Api.PlayStateSound(StateSound.StateSoundType.BattleWin0, ca060fd76133aa5c704d976700ed7cdd.m4831fa9b93085e0ab5c88119c3c57882(), cd665cdef191ff92708675209607d2, null, false);
  835.                         }
  836.                     }
  837.                 }
  838.             }
  839.         }
  840.  
  841.         public void DeadPlayer()
  842.         {
  843.             this.m_playerActor.SetHp(0, false, true);
  844.         }
  845.  
  846.         private void UpdateCamera()
  847.         {
  848.             if (Mevius.DataSheet.Api.GetResidentInteger("cameraUpdateTiming", 1) == 0)
  849.             {
  850.                 this.UpdateCameraEntry();
  851.             }
  852.         }
  853.  
  854.         private void UpdateCameraEntry()
  855.         {
  856.             if (this.m_cameraManager != null)
  857.             {
  858.                 this.m_cameraManager.Update();
  859.                 if (this.IsMultiFinishCamera())
  860.                 {
  861.                     if (this.m_cameraManager.CurrentCameraType == BattleCameraManager.CameraType.Action)
  862.                     {
  863.                         if (this.m_cameraManager.IsActionEnd())
  864.                         {
  865.                             this.m_isMultiFinishCamera = false;
  866.                             this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.PartyAttack);
  867.                             this.CameraManager.SetInterpolation(0f, CameraSequence.BlendType.Curve, true);
  868.                             this.CameraManager.InitPartyAttack(this.m_boss, this.GetSelfActor(), this.m_actorList, true);
  869.                         }
  870.                     }
  871.                     else
  872.                     {
  873.                         this.m_isMultiFinishCamera = false;
  874.                     }
  875.                 }
  876.             }
  877.         }
  878.  
  879.         private void UpdateTime()
  880.         {
  881.             this.m_preciseTime += Mevius.App.Api.GetPreciseTimeForBattle();
  882.             this.m_damageSourceManager.Update();
  883.             this.m_manaObjectManager.Update();
  884.             this.UpdateActionGuiActive();
  885.             this.UpdateAbilityMessage();
  886.         }
  887.  
  888.         private void UpdateSurfaceBlend()
  889.         {
  890.             if (this.m_surfaceBlend)
  891.             {
  892.                 this.m_surfaceBlendAlpha -= Mevius.App.Api.GetDeltaTime();
  893.                 if (this.m_surfaceBlendAlpha < 0f)
  894.                 {
  895.                     UnityEngine.Object.Destroy(this.m_surfaceBlend);
  896.                     this.m_surfaceBlend = null;
  897.                 }
  898.                 else
  899.                 {
  900.                     this.m_surfaceBlend.SetAlpha(this.m_surfaceBlendAlpha);
  901.                 }
  902.             }
  903.         }
  904.  
  905.         public void StartSlow(bool impactSE = false)
  906.         {
  907.             if (!this.IsBattleWin())
  908.             {
  909.                 this.m_battleSlow.Start(impactSE);
  910.                 if (!Mevius.App.Api.IsPartyMode())
  911.                 {
  912.                     Mevius.Gui.Api.SetBattleTargetButtonEnable(true);
  913.                 }
  914.             }
  915.         }
  916.  
  917.         public void EndSlow()
  918.         {
  919.             this.m_battleSlow.End();
  920.         }
  921.  
  922.         public BattleSlow.StateType GetSlowState()
  923.         {
  924.             return this.m_battleSlow.State;
  925.         }
  926.  
  927.         public bool OnBattleResult()
  928.         {
  929.             bool result = false;
  930.             if (this.m_tutorialManager != null)
  931.             {
  932.                 result = this.m_tutorialManager.OnBattleResult();
  933.             }
  934.             return result;
  935.         }
  936.  
  937.         public void BattleResultEnd()
  938.         {
  939.         }
  940.  
  941.         public void ExitBattleResult()
  942.         {
  943.             if (this._step == BattleManager.BattleStep.ResultWait)
  944.             {
  945.                 this._step = BattleManager.BattleStep.ResultIdleWait;
  946.             }
  947.         }
  948.  
  949.         public BattleManager.EncountType GetEncountType()
  950.         {
  951.             return BattleManager.EncountType.Normal;
  952.         }
  953.  
  954.         public void SetAutoAttack(bool bAuto)
  955.         {
  956.             if (bAuto)
  957.             {
  958.                 this.m_autoAttack = BattleManager.AutoAttackType.NormalAutoAttack;
  959.             }
  960.             else
  961.             {
  962.                 this.m_autoAttack = BattleManager.AutoAttackType.Off;
  963.             }
  964.         }
  965.  
  966.         public bool IsAutoAttack()
  967.         {
  968.             return this.m_autoAttack != BattleManager.AutoAttackType.Off;
  969.         }
  970.  
  971.         public BattleManager.AutoAttackType AutoAttack
  972.         {
  973.             get
  974.             {
  975.                 return this.m_autoAttack;
  976.             }
  977.             set
  978.             {
  979.                 this.m_autoAttack = value;
  980.             }
  981.         }
  982.  
  983.         public void StartTargetChangeMode()
  984.         {
  985.             if (Mevius.App.Api.IsPartyMode())
  986.             {
  987.                 if (!this.IsTargetChangeMode() && this._step == BattleManager.BattleStep.MultiBattleInput)
  988.                 {
  989.                     BattleManager._i.CameraManager.SetInterpolation(0.8f, CameraSequence.BlendType.Curve, false);
  990.                     BattleManager._i.CameraManager.InitTargetChange(this.m_boss, this.m_playerActor, this.m_actorList);
  991.                     BattleManager._i.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetChange);
  992.                 }
  993.             }
  994.             else if (!this.IsTargetChangeMode() && this.IsPlayerTurn())
  995.             {
  996.                 BattleManager._i.CameraManager.SetInterpolation(0.8f, CameraSequence.BlendType.Curve, false);
  997.                 BattleManager._i.CameraManager.InitTargetChange(this.m_boss, this.m_playerActor, this.m_actorList);
  998.                 BattleManager._i.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetChange);
  999.             }
  1000.         }
  1001.  
  1002.         public void EndTargetChangeMode(bool toTargetSelectCamera)
  1003.         {
  1004.             if (toTargetSelectCamera && this.m_cameraManager != null)
  1005.             {
  1006.                 this.m_cameraManager.SetInterpolation(0.8f, CameraSequence.BlendType.Curve, false);
  1007.                 this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, this.m_targetActor);
  1008.                 this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  1009.             }
  1010.         }
  1011.  
  1012.         public bool IsTargetChangeMode()
  1013.         {
  1014.             return BattleManager._i.CameraManager != null && BattleManager._i.CameraManager.CurrentCameraType == BattleCameraManager.CameraType.TargetChange;
  1015.         }
  1016.  
  1017.         public bool IsBattleCameraDragging()
  1018.         {
  1019.             return this.m_inputCheck && this.m_playerActor.State == BattleActor.StateType.Idle && this.m_guiTouchComponent.IsDown();
  1020.         }
  1021.  
  1022.         public void Init()
  1023.         {
  1024.         }
  1025.  
  1026.         public void Final()
  1027.         {
  1028.         }
  1029.  
  1030.         public void PartyTest()
  1031.         {
  1032.         }
  1033.  
  1034.         private void _ChangeActorBattle2Field()
  1035.         {
  1036.             Mevius.App.Api.SetActiveFieldActors(Mevius.App.Api.ActiveFieldActorsLayer.Application, true);
  1037.             Mevius.Effect.Api.SetEffectActive(Mevius.Effect.Constants.EffectLayer.Field, true);
  1038.             Mevius.App.Api.SetActiveBattleActors(false);
  1039.             Mevius.Gui.Api.SetFieldMenuModeDirect(GuiFieldMenu.Mode.ViewFull, false);
  1040.         }
  1041.  
  1042.         public void ClearCurrentTarget()
  1043.         {
  1044.             this.m_targetActor = null;
  1045.         }
  1046.  
  1047.         public void SetCurrentTarget(BattleActor target)
  1048.         {
  1049.             this.m_targetActor = target;
  1050.         }
  1051.  
  1052.         public void Update()
  1053.         {
  1054.             if (this.requestStartBattle)
  1055.             {
  1056.                 this.StartBattle();
  1057.             }
  1058.             this._UpdateResource();
  1059.             if (this.m_tutorialManager != null && this.m_tutorialManager.Update())
  1060.             {
  1061.                 return;
  1062.             }
  1063.             switch (this._step)
  1064.             {
  1065.             case BattleManager.BattleStep.None:
  1066.                 goto IL_1771;
  1067.             case BattleManager.BattleStep.CreateActor:
  1068.                 if (Mevius.App.Api.IsPartyMode())
  1069.                 {
  1070.                     foreach (Mevius.Party.Api.PARTY_MEMBER_TYPE party_MEMBER_TYPE in Mevius.Party.Api.GetPartyType())
  1071.                     {
  1072.                         if (party_MEMBER_TYPE != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY)
  1073.                         {
  1074.                             if (party_MEMBER_TYPE == Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  1075.                             {
  1076.                                 Mevius.Db.Api.CreatePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  1077.                             }
  1078.                             else
  1079.                             {
  1080.                                 Mevius.Db.Api.CreatePartyResource(party_MEMBER_TYPE, DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  1081.                             }
  1082.                         }
  1083.                     }
  1084.                 }
  1085.                 else
  1086.                 {
  1087.                     Mevius.Db.Api.CreatePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  1088.                     Mevius.Db.Api.CreateSubPartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  1089.                 }
  1090.                 for (int j = 0; j < this._entryBattleCharaSpecList.Count; j++)
  1091.                 {
  1092.                     C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b = C4d4f3a800432e94568175cb31ad3c78d.Find(this._entryBattleCharaSpecList[j]);
  1093.                     GameInstanceManager.CreateInstanceArg createInstanceArg = new GameInstanceManager.CreateInstanceArg();
  1094.                     createInstanceArg.resource = c51747b7e0e19ad065084a2c5a6d8421b.mc17ab063bf174d4fbb31c91f28a5f111();
  1095.                     createInstanceArg.callback = new GameInstanceManager.CreateInstanceCallBack(AppManager._i.appActorManager.delegateCreateActor);
  1096.                     createInstanceArg.callbacktag = new delegateCreateActorArg
  1097.                     {
  1098.                         spec = c51747b7e0e19ad065084a2c5a6d8421b.mc17ab063bf174d4fbb31c91f28a5f111(),
  1099.                         mode = ActorMode.ActorMode_BATTLE,
  1100.                         fieldType = FieldControllerType.FieldControllerType_NONE,
  1101.                         cinemaType = CinemaControllerType.CinemaControllerType_NONE,
  1102.                         battleType = BattleControllerType.BattleControllerType_DEFAULT,
  1103.                         talkType = TalkControllerType.TalkControllerType_NONE,
  1104.                         battleCharaSpec = c51747b7e0e19ad065084a2c5a6d8421b.m2406fe4ab939a17fa07b0f4590a53fad()
  1105.                     };
  1106.                     string enemyActorName = BattleManager.GetEnemyActorName(j);
  1107.                     Mevius.App.Api.CreateCharaInstanceCommand(enemyActorName, createInstanceArg);
  1108.                     this._actorNameList.Add(enemyActorName);
  1109.                 }
  1110.                 this.UpdateCamera();
  1111.                 this._step = BattleManager.BattleStep.Init;
  1112.                 goto IL_1771;
  1113.             case BattleManager.BattleStep.Init:
  1114.                 this.UpdateInit();
  1115.                 goto IL_1771;
  1116.             case BattleManager.BattleStep.EncountCameraWait:
  1117.                 this.UpdateCamera();
  1118.                 if (this.m_cameraManager.IsEnd())
  1119.                 {
  1120.                     Mevius.Gui.Api.CreateBattleMenu();
  1121.                     this.LoadPlayerCardResources();
  1122.                     this._step = BattleManager.BattleStep.MenuCreateWait;
  1123.                 }
  1124.                 goto IL_1771;
  1125.             case BattleManager.BattleStep.MenuCreateWait:
  1126.                 if (Mevius.Gui.Api.IsBattleMenuCreated() && GuiManager.Instance.cardManager.IsLoaded() && GuiManager.Instance.cardManager.IsCreated())
  1127.                 {
  1128.                     GuiBattleMenu.Instance.IsZone = this.m_zone;
  1129.                     Mevius.Gui.Api.ShowBattleMenu(this.m_playerActor.JobType, this.m_playerActor.GetAbilityButtonInfo(), this.m_playerActor.GetJobAbilityTextResourceId(), BattleUtility.GetJobUseAttributeArray(this.m_playerActor.Deck, this.m_playerActor.IsSummon()), this.m_playerActor.Hp, this.m_playerActor.HpMax, this.m_playerActor.ManaUseNum, this.m_playerActor.JobAbilityUseManaUseNum, false);
  1130.                     GuiBattleMenu.Instance.SetJobChangeChargeTurn((int)this.m_playerJobChangeChargeTurn, true);
  1131.                     this.UpdateSubJobElementRing();
  1132.                     GuiBattleMenu.Instance.TimeLine.ClearIcons(true);
  1133.                     this._step = BattleManager.BattleStep.MenuShowWait;
  1134.                 }
  1135.                 goto IL_1771;
  1136.             case BattleManager.BattleStep.MenuShowWait:
  1137.                 if (!Mevius.Gui.Api.IsBattleMenuShown())
  1138.                 {
  1139.                     goto IL_1771;
  1140.                 }
  1141.                 this.m_lastBattle = this.IsLastBattle();
  1142.                 this.m_lastBgmVolumeChanged = false;
  1143.                 Mevius.Gui.Api.RemoveDelayLoadingIcon(NowLoadingManager.Layer.TopLevel, "TopLevel");
  1144.                 if (this.m_manaObjectManager.IsDraw())
  1145.                 {
  1146.                     string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  1147.                     Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_ce_battle_in", 1f, 0, 0, Vector3.zero, null, false, -1, 0, 1f);
  1148.                 }
  1149.                 Mevius.Gui.Api.AddBattleTouchAreaEvent(new GuiBattleMenu.TouchAreaEventHandler(this.TouchAreaEvent));
  1150.                 if (!Mevius.App.Api.IsPartyMode() && Mevius.Db.Api.IsEnableClientSaveData(0u) && Mevius.Db.Api.HasBattleData() && Mevius.Db.Api.GetBattleData().step > 2)
  1151.                 {
  1152.                     this.LoadData();
  1153.                     for (int k = 0; k < this.m_actorList.Count; k++)
  1154.                     {
  1155.                         BattleActor battleActor = this.m_actorList[k];
  1156.                         if (battleActor.IsEnemy() && battleActor.IsActiveTarget())
  1157.                         {
  1158.                             battleActor.CreateEnemyHpGauge();
  1159.                             battleActor.UpdateStatusEffectGui(true);
  1160.                         }
  1161.                     }
  1162.                     this.InitFairyActor();
  1163.                 }
  1164.                 else
  1165.                 {
  1166.                     if (!Mevius.App.Api.IsPartyMode() && Mevius.Db.Api.HasBattleData())
  1167.                     {
  1168.                         this.LoadFF8Data();
  1169.                     }
  1170.                     if (Mevius.App.Api.IsPartyMode())
  1171.                     {
  1172.                         this.RestoreMultiData(true);
  1173.                         Array.Clear(this.m_enemyAiCommonCounters, 0, this.m_enemyAiCommonCounters.Length);
  1174.                     }
  1175.                     for (int l = 0; l < this.m_actorList.Count; l++)
  1176.                     {
  1177.                         BattleActor battleActor2 = this.m_actorList[l];
  1178.                         if (battleActor2.IsEnemy() && battleActor2.IsActiveTarget())
  1179.                         {
  1180.                             battleActor2.CreateEnemyHpGauge();
  1181.                             battleActor2.InitDebuffInvalid(true);
  1182.                         }
  1183.                     }
  1184.                     C098a168d3605b12448638cab8ccafe9d.C6a63ba3da59f35f0fee059da0f7321db c6a63ba3da59f35f0fee059da0f7321db = C098a168d3605b12448638cab8ccafe9d.Find(this.currentBattleScene);
  1185.                     if (c6a63ba3da59f35f0fee059da0f7321db != null && !string.IsNullOrEmpty(c6a63ba3da59f35f0fee059da0f7321db.mfa554940acbf37691763345305e1e3a4()))
  1186.                     {
  1187.                         C66d1c702408526ca44c99abdacae85fc.C713280ef8c2343697779d4832119f911 c713280ef8c2343697779d4832119f = C66d1c702408526ca44c99abdacae85fc.Find(c6a63ba3da59f35f0fee059da0f7321db.mfa554940acbf37691763345305e1e3a4());
  1188.                         if (c713280ef8c2343697779d4832119f != null)
  1189.                         {
  1190.                             Mevius.Gui.Api.CreateAutoClip(c713280ef8c2343697779d4832119f.mc21f35a8dc3c0a98fdcb2908689a6362(), c713280ef8c2343697779d4832119f.mb300c4a557ae7c3ac224cf5c9a6b78d1());
  1191.                         }
  1192.                         this._step = BattleManager.BattleStep.AutoClipWait;
  1193.                     }
  1194.                     else if (!Mevius.App.Api.IsPartyMode())
  1195.                     {
  1196.                         this.ProcStepBattleStatusEffect();
  1197.                         this._step = BattleManager.BattleStep.StepBattleEffect;
  1198.                         this.SaveData();
  1199.                     }
  1200.                     else if (!Mevius.Party.Api.IsFirstSnap())
  1201.                     {
  1202.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  1203.                         this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  1204.                     }
  1205.                     else
  1206.                     {
  1207.                         this.ProcStepBattleStatusEffect();
  1208.                         this._step = BattleManager.BattleStep.StepBattleEffect;
  1209.                         this.SaveData();
  1210.                     }
  1211.                 }
  1212.                 if (this.IsCountTimeBattle())
  1213.                 {
  1214.                     this.m_jobChangeActionGauge = this.GetJobChangeActionGauge();
  1215.                     GuiBattleMenu.Instance.TimeLine.ActionGauge = this.m_actionGauge;
  1216.                     GuiBattleMenu.Instance.TimeLine.RecoveryGauge = Mathf.Max(this.m_actionGaugeDecrease - this.m_actionGauge, 0);
  1217.                     GuiBattleMenu.Instance.TimeLine.ActionGaugeMax = Mevius.DataSheet.Api.GetResidentInteger("ctbActionGaugeMax", 800);
  1218.                     GuiBattleMenu.Instance.TimeLine.JobChangeActionGaugeAmount = this.m_jobChangeActionGauge;
  1219.                     C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  1220.                     if (ca4d3b5367a73030692d322e3f08669b != null)
  1221.                     {
  1222.                         GuiBattleMenu.Instance.TimeLine.SubStrikeActionGaugeAmount = (int)ca4d3b5367a73030692d322e3f08669b.m8ffedb5dbe5912c2b2eb70f721a7dfac();
  1223.                     }
  1224.                     GuiBattleMenu.Instance.TimeLine.ActionPower = this.m_actionPower;
  1225.                     GuiBattleMenu.Instance.TimeLine.ActionPowerMax = (float)ca4d3b5367a73030692d322e3f08669b.mb340f1c79854e240a4cb690d3cacca53();
  1226.                     GuiBattleMenu.Instance.TimeLine.ResetActionGauge();
  1227.                 }
  1228.                 this.m_playerActor.UpdateStatusEffectGui(true);
  1229.                 this.m_playerActor.UpdateJobAbilityGauge();
  1230.                 this.m_playerActor.UpdateElementalGaugeGui();
  1231.                 this.UpdateManaGui();
  1232.                 if (GuiBattleMenu.Instance != null)
  1233.                 {
  1234.                     GuiBattleMenu.Instance.UpdateSelectedEnemyGauge();
  1235.                 }
  1236.                 if (BattleUtility.GetElementInfluenceType() != 0)
  1237.                 {
  1238.                     this.ShowElementInfluence();
  1239.                 }
  1240.                 if (Mevius.Db.Api.GetBattleData().padCombo > 0)
  1241.                 {
  1242.                     Mevius.Gui.Api.ShowPadCombo((int)Mevius.Db.Api.GetBattleData().padCombo, BattleUtility.GetPadComboRate() * BattleUtility.GetPadDamageRate(), Mevius.Db.Api.GetBattleData().padDamageType == 2);
  1243.                     Mevius.Gui.Api.ShowPadTurnCount((int)Mevius.Db.Api.GetBattleData().padComboTurn);
  1244.                 }
  1245.                 goto IL_1771;
  1246.             case BattleManager.BattleStep.AutoClipWait:
  1247.                 if (Mevius.Gui.Api.IsAutoClipFinish())
  1248.                 {
  1249.                     this.ProcStepBattleStatusEffect();
  1250.                     this._step = BattleManager.BattleStep.StepBattleEffect;
  1251.                     this.SaveData();
  1252.                 }
  1253.                 goto IL_1771;
  1254.             case BattleManager.BattleStep.StepBattleEffect:
  1255.                 this.m_actionStepWait -= Mevius.App.Api.GetDeltaTimeForBattle();
  1256.                 if (this.m_actionStepWait <= 0f)
  1257.                 {
  1258.                     this.m_actionStepWait = 0f;
  1259.                     this.ProcStepBattleStatusEffectEnd();
  1260.                     if (this.IsCountTimeBattle())
  1261.                     {
  1262.                         for (int m = 0; m < this.m_actorList.Count; m++)
  1263.                         {
  1264.                             BattleActor battleActor3 = this.m_actorList[m];
  1265.                             if (battleActor3 != null && battleActor3.IsActive())
  1266.                             {
  1267.                                 battleActor3.ReadyAction();
  1268.                             }
  1269.                         }
  1270.                     }
  1271.                     this._step = BattleManager.BattleStep.BattleStart;
  1272.                     this.SaveData();
  1273.                 }
  1274.                 goto IL_1771;
  1275.             case BattleManager.BattleStep.BattleStart:
  1276.                 this.UpdateBattleStart();
  1277.                 goto IL_1771;
  1278.             case BattleManager.BattleStep.FairyTurnStart:
  1279.                 if (this.m_fairyActor != null && !this.m_presetFairyEffect)
  1280.                 {
  1281.                     this.ProcFairyEffectType(false);
  1282.                 }
  1283.                 this.m_presetFairyEffect = false;
  1284.                 if (this.m_fairyEffectType != BattleManager.FairyEffectType.None)
  1285.                 {
  1286.                     this.UpdateCamera();
  1287.                     this.UpdateTime();
  1288.                     this.m_fairyActor.Action(this.m_fairyEffectType);
  1289.                     BattleManager._i.CameraManager.SetInterpolation(0f, CameraSequence.BlendType.Curve, true);
  1290.                     BattleManager._i.CameraManager.InitAction("fairy1", this.m_playerActor, false, false);
  1291.                     BattleManager._i.CameraManager.ChangeCamera(BattleCameraManager.CameraType.Action);
  1292.                     this.Step = BattleManager.BattleStep.FairyTurn;
  1293.                     goto IL_1771;
  1294.                 }
  1295.                 if (this.IsCountTimeBattle())
  1296.                 {
  1297.                     this.Step = BattleManager.BattleStep.CTBStart;
  1298.                     goto IL_E60;
  1299.                 }
  1300.                 this._step = BattleManager.BattleStep.PlayerTurnStart;
  1301.                 break;
  1302.             case BattleManager.BattleStep.FairyTurn:
  1303.                 this.UpdateCamera();
  1304.                 this.UpdateTime();
  1305.                 if (this.m_fairyActor.TurnEnd)
  1306.                 {
  1307.                     this.HideBattleEnemyActionName();
  1308.                     Mevius.Gui.Api.ClearDQBattleLogText();
  1309.                     if (this.IsCountTimeBattle())
  1310.                     {
  1311.                         this.Step = BattleManager.BattleStep.CTBStart;
  1312.                     }
  1313.                     else
  1314.                     {
  1315.                         this.Step = BattleManager.BattleStep.PlayerTurnStart;
  1316.                     }
  1317.                 }
  1318.                 goto IL_1771;
  1319.             case BattleManager.BattleStep.PlayerTurnStart:
  1320.                 break;
  1321.             case BattleManager.BattleStep.PlayerTurnStartWait:
  1322.                 this.UpdateCamera();
  1323.                 this.UpdateTime();
  1324.                 if (this.m_playerActor != null)
  1325.                 {
  1326.                     if (this.m_playerActor.IsSummon() && this.m_playerActor.IsDead())
  1327.                     {
  1328.                         if (this.m_playerActor.IsDeadIdle())
  1329.                         {
  1330.                             this.ProcChangeJob(false, false);
  1331.                         }
  1332.                     }
  1333.                     else if (this.m_playerActor.UpdateReadyAction())
  1334.                     {
  1335.                         if (GuiBattleMenu.Instance != null)
  1336.                         {
  1337.                             GuiBattleMenu.Instance.EnableMenuButton = true;
  1338.                         }
  1339.                         Mevius.Gui.Api.SetBattleTargetButtonEnable(true);
  1340.                         this._step = BattleManager.BattleStep.PlayerTurn;
  1341.                     }
  1342.                 }
  1343.                 goto IL_1771;
  1344.             case BattleManager.BattleStep.PlayerTurn:
  1345.                 this.UpdatePlayerTurn();
  1346.                 goto IL_1771;
  1347.             case BattleManager.BattleStep.CheckMultiBattleCmd:
  1348.                 this.UpdateCamera();
  1349.                 this.UpdateTime();
  1350.                 this.UpdateMultiBattleCmd();
  1351.                 goto IL_1771;
  1352.             case BattleManager.BattleStep.MultiBattleInputStart:
  1353.                 this.m_updateReadyActionList.Clear();
  1354.                 for (int n = 0; n < this.m_multiBattleActorList.Count; n++)
  1355.                 {
  1356.                     BattleActor battleActor4 = this.m_multiBattleActorList[n];
  1357.                     if (battleActor4.IsActive())
  1358.                     {
  1359.                         battleActor4.OnTurnBegin();
  1360.                         if (battleActor4.ReadyAction())
  1361.                         {
  1362.                             this.m_updateReadyActionList.Add(battleActor4);
  1363.                         }
  1364.                     }
  1365.                     else
  1366.                     {
  1367.                         battleActor4.UpdateCardAbilityTurnCountGui();
  1368.                     }
  1369.                 }
  1370.                 this._step = BattleManager.BattleStep.MultiBattleInputStartWait;
  1371.                 goto IL_1771;
  1372.             case BattleManager.BattleStep.MultiBattleInputStartWait:
  1373.             {
  1374.                 bool flag = false;
  1375.                 this.m_updatedList.Clear();
  1376.                 for (int num = 0; num < this.m_updateReadyActionList.Count; num++)
  1377.                 {
  1378.                     BattleActor battleActor5 = this.m_updateReadyActionList[num];
  1379.                     if (battleActor5.UpdateReadyAction())
  1380.                     {
  1381.                         this.m_updatedList.Add(battleActor5);
  1382.                     }
  1383.                     else
  1384.                     {
  1385.                         flag = true;
  1386.                     }
  1387.                 }
  1388.                 for (int num2 = 0; num2 < this.m_updatedList.Count; num2++)
  1389.                 {
  1390.                     this.m_updateReadyActionList.Remove(this.m_updatedList[num2]);
  1391.                 }
  1392.                 if (flag)
  1393.                 {
  1394.                     goto IL_1771;
  1395.                 }
  1396.                 this.m_playerActor = this.m_selfActor;
  1397.                 if (!this.m_playerActor.IsDead() && (this.m_targetActor == null || !this.m_targetActor.IsActive()))
  1398.                 {
  1399.                     this.UpdateSelectedTarget();
  1400.                 }
  1401.                 this.ChangeTargetSelectCamera(true);
  1402.                 if (GuiBattleMenu.Instance != null)
  1403.                 {
  1404.                     GuiBattleMenu.Instance.EnableMenuButton = true;
  1405.                 }
  1406.                 Mevius.Gui.Api.OnStartInput();
  1407.                 if (this.m_playerActor.IsDead())
  1408.                 {
  1409.                     Mevius.Gui.Api.ShowPlayerDeadTimer();
  1410.                     Mevius.Gui.Api.SetBattleTargetButtonEnable(false);
  1411.                 }
  1412.                 else
  1413.                 {
  1414.                     Mevius.Gui.Api.ShowPlayerTurnTimer();
  1415.                     Mevius.Gui.Api.ShowDecideButton();
  1416.                     Mevius.Gui.Api.SetBattleTargetButtonEnable(true);
  1417.                 }
  1418.                 Mevius.Party.Api.ClearCommandStock();
  1419.                 Mevius.Party.Api.ClearCommand();
  1420.                 this._step = BattleManager.BattleStep.MultiBattleInput;
  1421.                 goto IL_1771;
  1422.             }
  1423.             case BattleManager.BattleStep.MultiBattleInput:
  1424.                 this.UpdateMultiBattleInput();
  1425.                 goto IL_1771;
  1426.             case BattleManager.BattleStep.EnemyTurnStart:
  1427.                 this.UpdateEnemyTurnStart();
  1428.                 goto IL_1771;
  1429.             case BattleManager.BattleStep.EnemyTurnStartWait:
  1430.                 this.UpdateEnemyTurnStartWait();
  1431.                 goto IL_1771;
  1432.             case BattleManager.BattleStep.EnemyTurn:
  1433.                 this.UpdateEnemyTurn();
  1434.                 goto IL_1771;
  1435.             case BattleManager.BattleStep.CTBStart:
  1436.                 goto IL_E60;
  1437.             case BattleManager.BattleStep.CTB:
  1438.                 this.UpdateCTB();
  1439.                 goto IL_1771;
  1440.             case BattleManager.BattleStep.EscapeCheck:
  1441.                 if (GuiBattleMenu.Instance != null && GuiBattleMenu.Instance.Pausing)
  1442.                 {
  1443.                     goto IL_1771;
  1444.                 }
  1445.                 this.UpdateEscapeCheck();
  1446.                 goto IL_1771;
  1447.             case BattleManager.BattleStep.Escape:
  1448.             {
  1449.                 if (GuiBattleMenu.Instance != null)
  1450.                 {
  1451.                     GuiBattleMenu.Instance.EnableMenuButton = false;
  1452.                 }
  1453.                 if (this.m_playerActor != null)
  1454.                 {
  1455.                     this.m_playerActor.OnBattleEscape();
  1456.                 }
  1457.                 AppActor appActor = Mevius.App.Api.FindAppActor(Mevius.Db.Api.GetPlayerName());
  1458.                 if (appActor != null)
  1459.                 {
  1460.                     FieldPlayerActor fieldPlayerActor = appActor.actors[0] as FieldPlayerActor;
  1461.                     if (fieldPlayerActor != null)
  1462.                     {
  1463.                         fieldPlayerActor.OnIdle();
  1464.                     }
  1465.                 }
  1466.                 Mevius.Gui.Api.AddFadeInstance(BattleManager.c_BattleEscapeFade, FadeManager.FadeLayer.FadeLayer_Default, 0f, 0f, 0f, 0f, 1f, 1f, false, 0);
  1467.                 if (Mevius.Field.Api.IsCoop())
  1468.                 {
  1469.                     Mevius.Gui.Api.AddFadeInstance(Resident.sc_CoopBattleEscapeFade, FadeManager.FadeLayer.FadeLayer_3D, 0f, 0f, 0f, 0f, 1f, 1f, false, 0);
  1470.                 }
  1471.                 Mevius.Zone.Api.CancelZoneActionSequence();
  1472.                 this.connectTask = Mevius.App.Api.AddAsyncCommand(new AsyncCommandManager.AsyncCommandCallBack(MainLoop.waitTimeTask), 1f);
  1473.                 this._step = BattleManager.BattleStep.EscapeWait;
  1474.                 goto IL_1771;
  1475.             }
  1476.             case BattleManager.BattleStep.EscapeWait:
  1477.                 if (!Mevius.App.Api.IsExistTaskId(this.connectTask) && !Mevius.Gui.Api.IsFadeing(BattleManager.c_BattleEscapeFade))
  1478.                 {
  1479.                     this.RemoveCameraManager();
  1480.                     this.EndBattle();
  1481.                     if (Mevius.Field.Api.IsCoop())
  1482.                     {
  1483.                         Mevius.Gui.Api.ShowHideStampButtonLayer(Mevius.Gui.Api.StampLayer.ActionSequence, false);
  1484.                     }
  1485.                     Mevius.Gui.Api.HideBattleMenu();
  1486.                     this._ChangeActorBattle2Field();
  1487.                     this.m_tutorialManager = null;
  1488.                     this._step = BattleManager.BattleStep.CheckChara;
  1489.                 }
  1490.                 goto IL_1771;
  1491.             case BattleManager.BattleStep.CheckChara:
  1492.                 Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Job, 0);
  1493.                 if (Mevius.Db.Api.IsRefreshJobChange())
  1494.                 {
  1495.                     if (Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  1496.                     {
  1497.                         Mevius.Db.Api.RemovePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_FIELD);
  1498.                         this._step = BattleManager.BattleStep.CharaDeleteWait;
  1499.                     }
  1500.                 }
  1501.                 else
  1502.                 {
  1503.                     this._step = BattleManager.BattleStep.ResourceStepUnloadWait;
  1504.                 }
  1505.                 goto IL_1771;
  1506.             case BattleManager.BattleStep.CharaDeleteWait:
  1507.                 if (Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  1508.                 {
  1509.                     Mevius.Db.Api.CreatePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_FIELD);
  1510.                     this._step = BattleManager.BattleStep.CharaCreateWait;
  1511.                 }
  1512.                 goto IL_1771;
  1513.             case BattleManager.BattleStep.CharaCreateWait:
  1514.                 if (Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  1515.                 {
  1516.                     this._step = BattleManager.BattleStep.ResourceStepUnloadWait;
  1517.                 }
  1518.                 goto IL_1771;
  1519.             case BattleManager.BattleStep.ContinueCheck:
  1520.             {
  1521.                 if (GuiBattleMenu.Instance != null && GuiBattleMenu.Instance.Pausing)
  1522.                 {
  1523.                     goto IL_1771;
  1524.                 }
  1525.                 if (Mevius.Db.Api.GetClientContinueIdentifier() != 0u && Mevius.Db.Api.GetClientContinueIdentifier() == Mevius.Db.Api.GetServerConnectIdentifier())
  1526.                 {
  1527.                     Mevius.Db.Api.SetClientContinueIdentifier(0u);
  1528.                     this.RevivePlayer();
  1529.                     if (Mevius.App.Api.IsPartyMode())
  1530.                     {
  1531.                         this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  1532.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  1533.                     }
  1534.                     else
  1535.                     {
  1536.                         this._step = BattleManager.BattleStep.FairyTurnStart;
  1537.                     }
  1538.                     goto IL_1771;
  1539.                 }
  1540.                 if (GuiBattleMenu.Instance != null)
  1541.                 {
  1542.                     GuiBattleMenu.Instance.EnableMenuButton = false;
  1543.                 }
  1544.                 uint num3 = Mevius.Common.Random.GetInstance().GetUnsignedInteger();
  1545.                 if (Mevius.Db.Api.getTicketCount(Mevius.Db.Api.TICKET_TYPE.TICKET_TYPE_RAISE) > 0u)
  1546.                 {
  1547.                     num3 &= 4294967294u;
  1548.                 }
  1549.                 else
  1550.                 {
  1551.                     num3 |= 1u;
  1552.                 }
  1553.                 Mevius.Db.Api.SetClientContinueIdentifier(num3);
  1554.                 this.SaveData();
  1555.                 this._step = BattleManager.BattleStep.ContinueCheckWait;
  1556.                 goto IL_1771;
  1557.             }
  1558.             case BattleManager.BattleStep.ContinueCheckWait:
  1559.             {
  1560.                 string battleContinueStr = Mevius.Gui.Util.GetBattleContinueStr();
  1561.                 int num4 = Mevius.Gui.Util.CheckMessageBox(ref this.m_MsgHandle, "$msg_title_010", battleContinueStr, GuiMessageBox.Buttons.FromText, GuiMessageBox.Skin.Default, false, null, Mevius.Gui.Constants.SoundEffectKind.system_se_window_in, false);
  1562.                 if (Mevius.Field.Api.BattleApi.IsContinueable())
  1563.                 {
  1564.                     int num5 = num4;
  1565.                     if (num5 != 0)
  1566.                     {
  1567.                         if (num5 == 1)
  1568.                         {
  1569.                             this._step = BattleManager.BattleStep.Escape;
  1570.                         }
  1571.                     }
  1572.                     else
  1573.                     {
  1574.                         this._step = BattleManager.BattleStep.MagicStoneCheck;
  1575.                     }
  1576.                 }
  1577.                 else
  1578.                 {
  1579.                     if (num4 == -1)
  1580.                     {
  1581.                         return;
  1582.                     }
  1583.                     this._step = BattleManager.BattleStep.Escape;
  1584.                 }
  1585.                 goto IL_1771;
  1586.             }
  1587.             case BattleManager.BattleStep.MagicStoneCheck:
  1588.             {
  1589.                 GuiPopUpItemShop.Param param = new GuiPopUpItemShop.Param(null, Mevius.Db.Api.ShopListType.ShopListType_RAISE_TICKET, 1, null);
  1590.                 GuiPopUpItemShop.Result result = Mevius.Gui.Api.BuyCheckFlow(param);
  1591.                 if (result == GuiPopUpItemShop.Result.OK)
  1592.                 {
  1593.                     this._step = BattleManager.BattleStep.Continue;
  1594.                 }
  1595.                 else
  1596.                 {
  1597.                     this._step = BattleManager.BattleStep.WaitBuyMagicStone;
  1598.                 }
  1599.                 goto IL_1771;
  1600.             }
  1601.             case BattleManager.BattleStep.WaitBuyMagicStone:
  1602.                 if (Mevius.Gui.Api.IsFinishBuyCheckFlow())
  1603.                 {
  1604.                     this._step = BattleManager.BattleStep.ContinueCheck;
  1605.                     if (Mevius.Zone.Api.IsReturnToTitle())
  1606.                     {
  1607.                         this._step = BattleManager.BattleStep.Escape;
  1608.                     }
  1609.                 }
  1610.                 goto IL_1771;
  1611.             case BattleManager.BattleStep.Continue:
  1612.                 this.connectTask = Mevius.App.Api.AddMainAsyncCommand(new AsyncCommandManager.AsyncCommandCallBack(NetworkManager.execCommandCoordinateWithIdentifier), "BattleContinue");
  1613.                 this._step = BattleManager.BattleStep.ContinueWait;
  1614.                 goto IL_1771;
  1615.             case BattleManager.BattleStep.ContinueWait:
  1616.                 if (!Mevius.App.Api.IsExistTaskId(this.connectTask))
  1617.                 {
  1618.                     if (Mevius.Zone.Api.IsReturnToTitle())
  1619.                     {
  1620.                         Mevius.Db.Api.SetClientContinueIdentifier(0u);
  1621.                         this._step = BattleManager.BattleStep.Escape;
  1622.                     }
  1623.                     else if (Mevius.Db.Api.GetClientContinueIdentifier() != Mevius.Db.Api.GetServerConnectIdentifier())
  1624.                     {
  1625.                         this._step = BattleManager.BattleStep.ContinueCheck;
  1626.                     }
  1627.                     else
  1628.                     {
  1629.                         if (GuiBattleMenu.Instance != null)
  1630.                         {
  1631.                             GuiBattleMenu.Instance.EnableMenuButton = true;
  1632.                         }
  1633.                         if (this.m_fairyActor != null)
  1634.                         {
  1635.                             this.m_fairyEffectType = BattleManager.FairyEffectType.Revive;
  1636.                             this.m_fairyActor.Action(this.m_fairyEffectType);
  1637.                             BattleManager._i.CameraManager.SetInterpolation(0f, CameraSequence.BlendType.Curve, true);
  1638.                             BattleManager._i.CameraManager.InitAction("fairy1", this.m_playerActor, false, false);
  1639.                             BattleManager._i.CameraManager.ChangeCamera(BattleCameraManager.CameraType.Action);
  1640.                             this._step = BattleManager.BattleStep.ContinueDirection;
  1641.                         }
  1642.                         else
  1643.                         {
  1644.                             this.RevivePlayer();
  1645.                             Mevius.Db.Api.SetClientContinueIdentifier(0u);
  1646.                             if (this.IsCountTimeBattle())
  1647.                             {
  1648.                                 this._step = BattleManager.BattleStep.CTBStart;
  1649.                             }
  1650.                             else
  1651.                             {
  1652.                                 this._step = BattleManager.BattleStep.PlayerTurnStart;
  1653.                             }
  1654.                         }
  1655.                     }
  1656.                 }
  1657.                 goto IL_1771;
  1658.             case BattleManager.BattleStep.ContinueDirection:
  1659.                 this.UpdateCamera();
  1660.                 if (this.m_fairyActor == null || this.m_fairyActor.TurnEnd)
  1661.                 {
  1662.                     this.RevivePlayer();
  1663.                     this.HideBattleEnemyActionName();
  1664.                     Mevius.Gui.Api.ClearDQBattleLogText();
  1665.                     Mevius.Db.Api.SetClientContinueIdentifier(0u);
  1666.                     if (this.IsCountTimeBattle())
  1667.                     {
  1668.                         this._step = BattleManager.BattleStep.ContinueDirectionCTB;
  1669.                     }
  1670.                     else
  1671.                     {
  1672.                         this._step = BattleManager.BattleStep.PlayerTurnStart;
  1673.                     }
  1674.                 }
  1675.                 goto IL_1771;
  1676.             case BattleManager.BattleStep.ContinueDirectionCTB:
  1677.                 this.UpdateCamera();
  1678.                 if (this.m_playerActor.State == BattleActor.StateType.Idle)
  1679.                 {
  1680.                     if (this.m_turnNum == 0)
  1681.                     {
  1682.                         this.m_playerActor.ReadyAction();
  1683.                         this._step = BattleManager.BattleStep.BattleStart;
  1684.                     }
  1685.                     else
  1686.                     {
  1687.                         GuiBattleMenu.Instance.ShowTimeLineEnd();
  1688.                         this._step = BattleManager.BattleStep.CTBStart;
  1689.                     }
  1690.                 }
  1691.                 goto IL_1771;
  1692.             case BattleManager.BattleStep.ResultReady:
  1693.                 this.UpdateCamera();
  1694.                 this.UpdateTime();
  1695.                 if (Mevius.App.Api.IsPartyMode())
  1696.                 {
  1697.                     if (!this.IsMultiFinishCamera())
  1698.                     {
  1699.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  1700.                         this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  1701.                     }
  1702.                 }
  1703.                 else
  1704.                 {
  1705.                     if (this.CameraManager.IsActionEnd())
  1706.                     {
  1707.                         this.ChangeTargetSelectCamera(false);
  1708.                     }
  1709.                     this.m_actionStepWait += Mevius.App.Api.GetDeltaTimeForBattle();
  1710.                     if (this.m_actionStepWait > Mevius.DataSheet.Api.GetResidentFloat("battleEndWaitSec", 1.5f) && GuiBattleMenu.Instance != null && !GuiBattleMenu.Instance.Pausing && !this.m_playerActor.IsActionStep())
  1711.                     {
  1712.                         this.m_actionStepWait = 0f;
  1713.                         this.SetBattleWinImmediate(true);
  1714.                     }
  1715.                 }
  1716.                 goto IL_1771;
  1717.             case BattleManager.BattleStep.Result:
  1718.                 if (BattleTest._i != null)
  1719.                 {
  1720.                     this._step = BattleManager.BattleStep.Result2;
  1721.                 }
  1722.                 else if (Mevius.Db.Api.IsRefreshJobChange())
  1723.                 {
  1724.                     if (Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  1725.                     {
  1726.                         Mevius.Db.Api.RemovePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_FIELD);
  1727.                         this._step = BattleManager.BattleStep.PreResultWait;
  1728.                     }
  1729.                 }
  1730.                 else
  1731.                 {
  1732.                     this._step = BattleManager.BattleStep.Result2;
  1733.                 }
  1734.                 goto IL_1771;
  1735.             case BattleManager.BattleStep.PreResultWait:
  1736.                 if (Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  1737.                 {
  1738.                     Mevius.Db.Api.CreatePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_FIELD);
  1739.                     this._step = BattleManager.BattleStep.PreResultWait2;
  1740.                 }
  1741.                 goto IL_1771;
  1742.             case BattleManager.BattleStep.PreResultWait2:
  1743.                 if (Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  1744.                 {
  1745.                     this._step = BattleManager.BattleStep.Result2;
  1746.                 }
  1747.                 goto IL_1771;
  1748.             case BattleManager.BattleStep.Result2:
  1749.             {
  1750.                 Mevius.Gui.Api.CreateBattleResult();
  1751.                 Mevius.Gui.Api.HideBattleMenu();
  1752.                 this.RemoveCameraManager();
  1753.                 int num6 = Mevius.Db.Api.GetCurrentCardDeck();
  1754.                 if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  1755.                 {
  1756.                     num6 += 12;
  1757.                 }
  1758.                 C912567889466ef0cf80daa8b03815aff.C648971f118c7e1100318b6fb7ac13b59 equipmentJobDatasheetElemSlot = Mevius.Db.Api.GetEquipmentJobDatasheetElemSlot(num6);
  1759.                 if (equipmentJobDatasheetElemSlot != null)
  1760.                 {
  1761.                     FieldManager._i.fieldCameraController.SetupBattleResultCamera((CameraSequence.SituationType)equipmentJobDatasheetElemSlot.m261c1233e882c98e7c2e671f13628641());
  1762.                 }
  1763.                 Ca8cb6cbffd922889655adb017c6a8321.C0f50e5a11c18dca4fc58c614e707a8bf c0f50e5a11c18dca4fc58c614e707a8bf = Ca8cb6cbffd922889655adb017c6a8321.Find(FieldManager._i.fieldCameraController.MainCameraSequence.CurrentSequence);
  1764.                 this.OnLastBattleWin((c0f50e5a11c18dca4fc58c614e707a8bf.m80342e8a00d836900948710e6ae6b000() == 0) ? BattleManager.LastBattleWinCameraType.Player : BattleManager.LastBattleWinCameraType.Fairy);
  1765.                 this._ChangeActorBattle2Field();
  1766.                 if (Mevius.Db.Api.IsSummonMode())
  1767.                 {
  1768.                     Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Job, 0);
  1769.                 }
  1770.                 AppActor appActor2 = Mevius.App.Api.FindAppActor(Mevius.Db.Api.GetPlayerName());
  1771.                 FieldPlayerActor fieldPlayerActor2 = appActor2.actors[0] as FieldPlayerActor;
  1772.                 if (BattleTest._i == null)
  1773.                 {
  1774.                     ActionInfo nextAction = ZoneActionSequenceExecutor._i.GetNextAction();
  1775.                     if (nextAction == null || !nextAction.IsBattle())
  1776.                     {
  1777.                         fieldPlayerActor2.OnBattleResultEnd();
  1778.                     }
  1779.                     else
  1780.                     {
  1781.                         fieldPlayerActor2.OnBattleResult();
  1782.                     }
  1783.                 }
  1784.                 this._step = BattleManager.BattleStep.ResultWait;
  1785.                 goto IL_1771;
  1786.             }
  1787.             case BattleManager.BattleStep.ResultWait:
  1788.                 this.UpdateSurfaceBlend();
  1789.                 this.UpdateCamera();
  1790.                 goto IL_1771;
  1791.             case BattleManager.BattleStep.ResultIdleWait:
  1792.             {
  1793.                 this.UpdateSurfaceBlend();
  1794.                 ActionInfo nextAction2 = ZoneActionSequenceExecutor._i.GetNextAction();
  1795.                 this.UpdateCamera();
  1796.                 AppActor appActor3 = Mevius.App.Api.FindAppActor(Mevius.Db.Api.GetPlayerName());
  1797.                 if (appActor3 == null)
  1798.                 {
  1799.                     goto IL_1771;
  1800.                 }
  1801.                 FieldPlayerActor fieldPlayerActor3 = appActor3.actors[0] as FieldPlayerActor;
  1802.                 if (fieldPlayerActor3.IsIdle() || (nextAction2 != null && nextAction2.IsBattle()))
  1803.                 {
  1804.                     this._step = BattleManager.BattleStep.ResultEnd;
  1805.                 }
  1806.                 goto IL_1771;
  1807.             }
  1808.             case BattleManager.BattleStep.ResultEnd:
  1809.                 if (this.m_surfaceBlend)
  1810.                 {
  1811.                     UnityEngine.Object.Destroy(this.m_surfaceBlend);
  1812.                 }
  1813.                 this._step = BattleManager.BattleStep.ActionCameraEndWait;
  1814.                 goto IL_1771;
  1815.             case BattleManager.BattleStep.ActionCameraEndWait:
  1816.                 if (Mevius.Zone.Api.GetPlayMode() == ZoneStateMachine.PlayMode.PlayMode_BATTLE_TEST)
  1817.                 {
  1818.                     this._step = BattleManager.BattleStep.ResourceStepUnload;
  1819.                 }
  1820.                 goto IL_1771;
  1821.             case BattleManager.BattleStep.ResourceStepUnload:
  1822.                 this._step = BattleManager.BattleStep.ResourceStepUnloadWait;
  1823.                 goto IL_1771;
  1824.             case BattleManager.BattleStep.ResourceStepUnloadWait:
  1825.                 if (!Mevius.App.Api.IsExistTaskId(this.resourceUnloadTaskId))
  1826.                 {
  1827.                     this._step = BattleManager.BattleStep.End;
  1828.                 }
  1829.                 goto IL_1771;
  1830.             case BattleManager.BattleStep.End:
  1831.                 if (this.lastBattleWinActorObject != null)
  1832.                 {
  1833.                     this.lastBattleWinActorObject.GetComponent<FacialController>().StopLipsync();
  1834.                     this.lastBattleWinActorObject = null;
  1835.                 }
  1836.                 this.m_damageSourceManager.Clear();
  1837.                 this.m_playerActor = null;
  1838.                 this._step = BattleManager.BattleStep.Exit;
  1839.                 goto IL_1771;
  1840.             case BattleManager.BattleStep.Exit:
  1841.                 goto IL_1771;
  1842.             default:
  1843.                 goto IL_1771;
  1844.             }
  1845.             this.UpdateCamera();
  1846.             this.UpdateTime();
  1847.             if (Mevius.App.Api.IsPartyMode())
  1848.             {
  1849.                 if (this.m_multiBattleSlotList.Count == 0)
  1850.                 {
  1851.                     this.EndSlow();
  1852.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  1853.                     this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  1854.                 }
  1855.                 else
  1856.                 {
  1857.                     int num7 = this.m_multiBattleSlotList[0];
  1858.                     for (int num8 = 0; num8 < this.m_multiBattleActorList.Count; num8++)
  1859.                     {
  1860.                         if (num7 == this.m_multiBattleActorList[num8].PartySlot)
  1861.                         {
  1862.                             this.m_multiBattleCurrentOrder = num8;
  1863.                             break;
  1864.                         }
  1865.                     }
  1866.                     BattleActor battleActor6 = this.m_multiBattleActorList[this.m_multiBattleCurrentOrder];
  1867.                     if (battleActor6.IsMultiMember())
  1868.                     {
  1869.                         this.m_partyMemberTurn = true;
  1870.                     }
  1871.                     else
  1872.                     {
  1873.                         this.m_partyMemberTurn = false;
  1874.                     }
  1875.                     if (!this.m_playerActor.IsMultiMember() && battleActor6.IsMultiMember())
  1876.                     {
  1877.                         this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.PartyAttack);
  1878.                         this.CameraManager.SetInterpolation(0f, CameraSequence.BlendType.Curve, true);
  1879.                         this.CameraManager.InitPartyAttack(this.m_boss, battleActor6, this.m_actorList, true);
  1880.                     }
  1881.                     if (this.m_playerActor.IsMultiMember() && !battleActor6.IsMultiMember())
  1882.                     {
  1883.                         this.CameraManager.SetInterpolation(0.5f, CameraSequence.BlendType.Curve, true);
  1884.                         this.CameraManager.InitTargetSelect(this.m_boss, battleActor6, battleActor6.TargetActor);
  1885.                         this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  1886.                     }
  1887.                     this.m_playerActor = battleActor6;
  1888.                     if (!this.m_playerActor.IsDead() && (this.m_targetActor == null || !this.m_targetActor.IsActive()))
  1889.                     {
  1890.                         this.UpdateSelectedTarget();
  1891.                     }
  1892.                     this.ChangeTargetSelectCamera(false);
  1893.                     if (GuiBattleMenu.Instance != null)
  1894.                     {
  1895.                         GuiBattleMenu.Instance.EnableMenuButton = true;
  1896.                     }
  1897.                     Mevius.Gui.Api.OnStartPlayerTurn(this.m_playerActor);
  1898.                     this.m_playerActor.EndGuard(false);
  1899.                     this._step = BattleManager.BattleStep.PlayerTurn;
  1900.                 }
  1901.             }
  1902.             else
  1903.             {
  1904.                 this.UpdateElementInfluence();
  1905.                 if (this.m_playerActor != null)
  1906.                 {
  1907.                     if (this.m_targetActor == null || !this.m_targetActor.IsActive())
  1908.                     {
  1909.                         this.UpdateSelectedTarget();
  1910.                     }
  1911.                     this.ChangeTargetSelectCamera(true);
  1912.                     this.m_playerActor.OnTurnBegin();
  1913.                     if (this.m_playerActor.ReadyAction())
  1914.                     {
  1915.                         this._step = BattleManager.BattleStep.PlayerTurnStartWait;
  1916.                     }
  1917.                     else
  1918.                     {
  1919.                         if (GuiBattleMenu.Instance != null)
  1920.                         {
  1921.                             GuiBattleMenu.Instance.EnableMenuButton = true;
  1922.                         }
  1923.                         Mevius.Gui.Api.SetBattleTargetButtonEnable(true);
  1924.                         Mevius.Gui.Api.OnStartPlayerTurn(this.m_playerActor);
  1925.                         this._step = BattleManager.BattleStep.PlayerTurn;
  1926.                     }
  1927.                 }
  1928.             }
  1929.             goto IL_1771;
  1930.             IL_E60:
  1931.             this.UpdateCTBStart();
  1932.             IL_1771:
  1933.             this.m_guiTouchComponent.Update();
  1934.         }
  1935.  
  1936.         public void UpdateEnd()
  1937.         {
  1938.         }
  1939.  
  1940.         public void LateUpdate()
  1941.         {
  1942.         }
  1943.  
  1944.         public void LateUpdateEnd()
  1945.         {
  1946.             if (Mevius.DataSheet.Api.GetResidentInteger("cameraUpdateTiming", 1) == 1)
  1947.             {
  1948.                 BattleManager.BattleStep step = this._step;
  1949.                 switch (step)
  1950.                 {
  1951.                 case BattleManager.BattleStep.Init:
  1952.                 case BattleManager.BattleStep.EncountCameraWait:
  1953.                 case BattleManager.BattleStep.BattleStart:
  1954.                 case BattleManager.BattleStep.FairyTurnStart:
  1955.                 case BattleManager.BattleStep.FairyTurn:
  1956.                 case BattleManager.BattleStep.PlayerTurnStart:
  1957.                 case BattleManager.BattleStep.PlayerTurnStartWait:
  1958.                 case BattleManager.BattleStep.PlayerTurn:
  1959.                 case BattleManager.BattleStep.CheckMultiBattleCmd:
  1960.                 case BattleManager.BattleStep.MultiBattleInput:
  1961.                 case BattleManager.BattleStep.EnemyTurnStartWait:
  1962.                 case BattleManager.BattleStep.EnemyTurn:
  1963.                 case BattleManager.BattleStep.CTBStart:
  1964.                 case BattleManager.BattleStep.CTB:
  1965.                     break;
  1966.                 default:
  1967.                     switch (step)
  1968.                     {
  1969.                     case BattleManager.BattleStep.ContinueDirection:
  1970.                     case BattleManager.BattleStep.ResultReady:
  1971.                         break;
  1972.                     default:
  1973.                         if (step != BattleManager.BattleStep.ResultWait && step != BattleManager.BattleStep.ResultIdleWait)
  1974.                         {
  1975.                             return;
  1976.                         }
  1977.                         break;
  1978.                     }
  1979.                     break;
  1980.                 }
  1981.                 this.UpdateCameraEntry();
  1982.             }
  1983.         }
  1984.  
  1985.         private void UpdateInit()
  1986.         {
  1987.             Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Job_Enable, 1);
  1988.             this.m_randCount = 0;
  1989.             this.m_damageRandCount = 0;
  1990.             this.m_movementRandCount = 0;
  1991.             if (DebugOutput.Instance != null)
  1992.             {
  1993.                 DebugOutput.Instance.ErrorLogList.Clear();
  1994.             }
  1995.             this.m_multiBattleIgnoreMemberActionCamera = (Mevius.DataSheet.Api.GetResidentInteger("multi_ignoreOtherActionCamera", 1) > 0);
  1996.             if (Mevius.Field.Api.IsCoop())
  1997.             {
  1998.                 if (Mevius.Gui.Api.IsExistFade(Resident.sc_CoopBattleStartFade))
  1999.                 {
  2000.                     Mevius.Gui.Api.RemoveFadeInstance(Resident.sc_CoopBattleStartFade);
  2001.                 }
  2002.                 Mevius.Gui.Api.ShowHideStampButtonLayer(Mevius.Gui.Api.StampLayer.ActionSequence, true);
  2003.                 Mevius.Gui.Api.ShowHideStampButtonLayer(Mevius.Gui.Api.StampLayer.Menu, false);
  2004.             }
  2005.             DbManager.TemporarySaveData temporarySaveData = Mevius.Db.Api.GetTemporarySaveData();
  2006.             if (temporarySaveData.partyQuestServerUniqueIndex > 0u)
  2007.             {
  2008.                 Mevius.Gui.Api.RemoveDelayLoadingIcon(NowLoadingManager.Layer.Resource, "CoopBattleStart");
  2009.             }
  2010.             if (Mevius.App.Api.IsPartyMode())
  2011.             {
  2012.                 Mevius.Party.Api.SetUpSnap(true, false, -1, null, null);
  2013.                 Mevius.Party.Api.SetBattleReady(true);
  2014.                 Mevius.Party.Api.SetForceBattleStep(false, null, 0u);
  2015.             }
  2016.             if (Mevius.Db.Api.IsTutorial() && Mevius.Db.Api.GetTutorialStep() >= DbManager.TUTORIAL_STEP.TUTORIAL_STEP_BATTLE1 && Mevius.Db.Api.GetTutorialStep() <= DbManager.TUTORIAL_STEP.TUTORIAL_STEP_BATTLE4)
  2017.             {
  2018.                 if (this.m_tutorialManager == null)
  2019.                 {
  2020.                     this.m_tutorialManager = new BattleTutorialManager();
  2021.                 }
  2022.                 this.m_tutorialManager.Init();
  2023.             }
  2024.             else if (this.m_tutorialManager != null)
  2025.             {
  2026.                 this.m_tutorialManager.Destroy();
  2027.                 this.m_tutorialManager = null;
  2028.             }
  2029.             Physics.IgnoreLayerCollision(LayerMask.NameToLayer("Phy Bg"), LayerMask.NameToLayer("Phy Character"), true);
  2030.             if (!Mevius.Db.Api.IsEnableClientSaveData(0u) || !Mevius.Db.Api.HasBattleData())
  2031.             {
  2032.                 this.SetRandomSeed(true);
  2033.             }
  2034.             this.CreateCameraManager();
  2035.             this._enableUnloadRequest = true;
  2036.             if (this.IsCountTimeBattle())
  2037.             {
  2038.                 this.m_turnNum = 0;
  2039.             }
  2040.             else
  2041.             {
  2042.                 this.m_turnNum = 1;
  2043.             }
  2044.             this.m_chainNum = 0;
  2045.             this.m_breakNum = 0;
  2046.             this.m_deadNum = 0;
  2047.             this.m_preciseTime = default(PreciseTime);
  2048.             this.m_lastEnemyEscape = false;
  2049.             Array.Clear(this.m_enemyAiCommonCounters, 0, this.m_enemyAiCommonCounters.Length);
  2050.             this.m_enemyActionEndFlag = false;
  2051.             this.m_playerJobChangeChargeTurn = Mevius.Db.Api.GetBattleData().playerJobChangeChargeTurn;
  2052.             this.m_playerJobChangeThroughTurn = 0;
  2053.             this.m_optimaType = (OptimaType)Mevius.Db.Api.GetBattleData().optimaType;
  2054.             Mevius.Db.Api.GetBattleData().optimaUseCounts.CopyTo(this.m_optimaUseCounts, 0);
  2055.             Mevius.Db.Api.GetBattleData().missionCount.CopyTo(this.m_missionCounts, 0);
  2056.             Mevius.Db.Api.GetBattleData().bossMissionCount.CopyTo(this.m_bossMissionCounts, 0);
  2057.             Mevius.Db.Api.GetBattleData().saveLongValues.CopyTo(this.m_saveLongValues, 0);
  2058.             Mevius.Db.Api.GetBattleData().bossSaveLongValues.CopyTo(this.m_bossSaveLongValues, 0);
  2059.             Mevius.Db.Api.GetBattleData().ff7AbilityUseCounts.CopyTo(this.m_ff7AbilityUseCounts, 0);
  2060.             this.m_activeActionOrderActor = null;
  2061.             this.m_stealActionOrderActor = null;
  2062.             this.m_activeActionOrderTime = 0f;
  2063.             this.m_actionOrderListCreateFlag = false;
  2064.             this.m_actionGauge = (int)Mevius.Db.Api.GetBattleData().actionGauge;
  2065.             this.m_actionGaugeDecrease = (int)Mevius.Db.Api.GetBattleData().actionGaugeDecrease;
  2066.             this.m_actionPower = Mevius.Db.Api.GetBattleData().actionPower;
  2067.             this.m_jobChangeActionGauge = 0;
  2068.             this.m_subActionType = BattleManager.ESubActionType.None;
  2069.             this.m_zone = false;
  2070.             this.m_fairyHour = Mevius.Db.Api.IsFariyHour();
  2071.             Mevius.Gui.Api.EndEncountFilter();
  2072.             this.m_boss = false;
  2073.             C098a168d3605b12448638cab8ccafe9d.C6a63ba3da59f35f0fee059da0f7321db c6a63ba3da59f35f0fee059da0f7321db = C098a168d3605b12448638cab8ccafe9d.Find(this.currentBattleScene);
  2074.             if (c6a63ba3da59f35f0fee059da0f7321db != null)
  2075.             {
  2076.                 this.m_boss = (c6a63ba3da59f35f0fee059da0f7321db.ma0a6afb3ac1df6ef61e80ad44b921257() != 0);
  2077.             }
  2078.             Mevius.Field.Api.SetupDynamicShadow(Mevius.Field.Api.FieldDynamicShadowLayer.Field, true, (!this.m_boss) ? Mevius.DataSheet.Api.GetResidentFloat("DynamicShadow_BattleNormalLength", 25f) : Mevius.DataSheet.Api.GetResidentFloat("DynamicShadow_BattleBossLength", 50f));
  2079.             Mevius.App.Api.SetActiveFieldActors(Mevius.App.Api.ActiveFieldActorsLayer.Application, false);
  2080.             Mevius.Effect.Api.SetEffectActive(Mevius.Effect.Constants.EffectLayer.Field, false);
  2081.             Mevius.App.Api.SetActiveBattleActors(true);
  2082.             this.m_rootObject = new GameObject("Battle");
  2083.             this.m_damageSourceManager.RootObject = this.m_rootObject;
  2084.             this.m_manaObjectManager.RootObject = this.m_rootObject;
  2085.             this.m_manaObjectManager.Init();
  2086.             this.m_chaosBattle = (this.currentBattleScene == "btsc_03032" || c6a63ba3da59f35f0fee059da0f7321db.me739b90bdaa97257b7e5f1b05d9cff1b() == 1);
  2087.             if (this.currentBattleScene == "btsc_20500" || this.currentBattleScene == "btsc_20501")
  2088.             {
  2089.                 GameObject gameObject = Mevius.App.Api.FindChrGameObject(Mevius.Db.Api.GetPlayerHandkerchiefName() + "_battle");
  2090.                 if (gameObject != null)
  2091.                 {
  2092.                     gameObject.SetActive(false);
  2093.                 }
  2094.                 gameObject = Mevius.App.Api.FindChrGameObject(Mevius.Db.Api.GetPlayerHandkerchiefName() + "_battle_sub");
  2095.                 if (gameObject != null)
  2096.                 {
  2097.                     gameObject.SetActive(false);
  2098.                 }
  2099.             }
  2100.             this.m_shadowBlankBattle = (c6a63ba3da59f35f0fee059da0f7321db.me739b90bdaa97257b7e5f1b05d9cff1b() == 2);
  2101.             this.m_forceAllCameraBattle = (c6a63ba3da59f35f0fee059da0f7321db.md8a841fedd64f70fdb60335bbd2aa3b6() != 0);
  2102.             this.m_targetSelectCameraName = c6a63ba3da59f35f0fee059da0f7321db.m32e8b60e01e71bfdb0525891143b9a06();
  2103.             if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  2104.             {
  2105.                 this.m_playerActor = this.FindActor(BattleManager.GetBattlePlayerSubName());
  2106.                 this.m_playerActorSub = this.FindActor(BattleManager.GetBattlePlayerName());
  2107.             }
  2108.             else
  2109.             {
  2110.                 this.m_playerActor = this.FindActor(BattleManager.GetBattlePlayerName());
  2111.                 this.m_playerActorSub = this.FindActor(BattleManager.GetBattlePlayerSubName());
  2112.             }
  2113.             Cb883df428c2c9659b15ca52864e9d4ca.C237921cb068a73a8c1084a4d121e9eaf c237921cb068a73a8c1084a4d121e9eaf = Cb883df428c2c9659b15ca52864e9d4ca.Find(this.m_placementEnemyId);
  2114.             if (this.m_playerActor != null && !Mevius.App.Api.IsPartyMode())
  2115.             {
  2116.                 Animator animatorComponent = this.m_playerActor.chara.GetAnimatorComponent();
  2117.                 animatorComponent.cullingMode = AnimatorCullingMode.AlwaysAnimate;
  2118.                 this.m_playerActor.Init(string.Empty, 0, -1, -1);
  2119.                 Vector3 basePosition = this._basePosition;
  2120.                 float playerAreaRandomDistance = this.GetPlayerAreaRandomDistance();
  2121.                 if (this.m_chaosBattle)
  2122.                 {
  2123.                     basePosition.z -= playerAreaRandomDistance;
  2124.                 }
  2125.                 else
  2126.                 {
  2127.                     basePosition.z += playerAreaRandomDistance;
  2128.                 }
  2129.                 float num = (!(this.m_playerActor.chara.GetCharacterControllerComponent() != null)) ? 2f : this.m_playerActor.chara.GetCharacterControllerComponent().height;
  2130.                 RaycastHit raycastHit;
  2131.                 if (Physics.Raycast(basePosition + Vector3.up * num * 0.5f, Vector3.down, out raycastHit, num, 1 << LayerMask.NameToLayer("Phy Bg")))
  2132.                 {
  2133.                     basePosition.y = raycastHit.point.y;
  2134.                 }
  2135.                 this.m_playerActor.chara.SetPosition(basePosition);
  2136.             }
  2137.             if (this.m_playerActorSub != null)
  2138.             {
  2139.                 Animator animatorComponent2 = this.m_playerActorSub.chara.GetAnimatorComponent();
  2140.                 animatorComponent2.cullingMode = AnimatorCullingMode.AlwaysAnimate;
  2141.                 this.m_playerActorSub.Init(string.Empty, 0, -1, -1);
  2142.                 this.m_playerActorSub.chara.OnSetActive(false, true);
  2143.                 this.m_playerActorSub.chara.gameObject.SetActive(false);
  2144.             }
  2145.             if (Mevius.App.Api.IsPartyMode())
  2146.             {
  2147.                 this.m_selfActor = this.m_playerActor;
  2148.                 this.m_multiBattleActorCursorHandle = Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  2149.                 {
  2150.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  2151.                     m_strSubResource = "m_cursor_001",
  2152.                     m_BindActor = this.m_selfActor.chara.gameObject
  2153.                 });
  2154.                 Mevius.Db.Api.CalcPartyPlayerStatus();
  2155.                 float[] array = new float[]
  2156.                 {
  2157.                     c237921cb068a73a8c1084a4d121e9eaf.m9ca08cba800b5256b57c973554267e39(),
  2158.                     c237921cb068a73a8c1084a4d121e9eaf.m04b7d164deff4964328e2d4b2fd0e2b8(),
  2159.                     c237921cb068a73a8c1084a4d121e9eaf.m97d175d376f6d6f45eda78467c174b78(),
  2160.                     c237921cb068a73a8c1084a4d121e9eaf.m18a27162ce54a42e19dc14c318c23a67()
  2161.                 };
  2162.                 int[] partyType = Mevius.Party.Api.GetPartyType();
  2163.                 int num2 = 0;
  2164.                 foreach (Mevius.Party.Api.PARTY_MEMBER_TYPE party_MEMBER_TYPE in partyType)
  2165.                 {
  2166.                     if (party_MEMBER_TYPE != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY)
  2167.                     {
  2168.                         BattleActor battleActor;
  2169.                         if (party_MEMBER_TYPE == Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  2170.                         {
  2171.                             battleActor = this.m_playerActor;
  2172.                         }
  2173.                         else
  2174.                         {
  2175.                             battleActor = this.FindActor(BattleManager.GetMultiMemberPlayerName(party_MEMBER_TYPE));
  2176.                         }
  2177.                         if (battleActor != null)
  2178.                         {
  2179.                             Animator animatorComponent3 = battleActor.chara.GetAnimatorComponent();
  2180.                             animatorComponent3.cullingMode = AnimatorCullingMode.AlwaysAnimate;
  2181.                             battleActor.Init(string.Empty, 0, -1, -1);
  2182.                             Vector3 vector = this._basePosition;
  2183.                             float playerAreaRandomDistance2 = this.GetPlayerAreaRandomDistance();
  2184.                             vector.z += playerAreaRandomDistance2;
  2185.                             float y = array[battleActor.PartySlot];
  2186.                             vector = Quaternion.Euler(0f, y, 0f) * vector;
  2187.                             float num3 = (!(battleActor.chara.GetCharacterControllerComponent() != null)) ? 2f : battleActor.chara.GetCharacterControllerComponent().height;
  2188.                             RaycastHit raycastHit2;
  2189.                             if (Physics.Raycast(vector + Vector3.up * num3 * 0.5f, Vector3.down, out raycastHit2, num3, 1 << LayerMask.NameToLayer("Phy Bg")))
  2190.                             {
  2191.                                 vector.y = raycastHit2.point.y;
  2192.                             }
  2193.                             battleActor.chara.SetPosition(vector);
  2194.                             this.m_multiBattleActorList.Add(battleActor);
  2195.                             battleActor.SetPartyOrder(this.m_multiBattleActorList.Count - 1);
  2196.                             num2++;
  2197.                         }
  2198.                     }
  2199.                 }
  2200.             }
  2201.             Func<float>[] array2 = null;
  2202.             Func<float>[] array3 = null;
  2203.             Func<float>[] array4 = null;
  2204.             Func<float>[] array5 = null;
  2205.             if (c237921cb068a73a8c1084a4d121e9eaf != null)
  2206.             {
  2207.                 array2 = new Func<float>[]
  2208.                 {
  2209.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.me79b3896d74924620249b1ca9543f96d),
  2210.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m89b09bf4e6d0a47ea90f4a7981d04822),
  2211.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m4cc35f769c68fa36df439a0b7588264e),
  2212.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m5120d7a91941cc55f9b139da91f90994),
  2213.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m7125fece171c13241632c34efa9bdc3c),
  2214.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m40146e80579bf525c519dae42e46f86d),
  2215.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.mb736a3ba0a6d0fb19cf8f715997194ba),
  2216.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m3bada6fca99ccb56c6bb19f7503be2b3)
  2217.                 };
  2218.                 if (this.m_chaosBattle)
  2219.                 {
  2220.                     array3 = new Func<float>[]
  2221.                     {
  2222.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m68679beefff2bdf1dedaafc6e1d1a832),
  2223.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.mbeee0400debe0964be15fe1b7119a588),
  2224.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m32bc3b1a81e0ba00fd5b451a952e665b),
  2225.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m7b52294038d2a82176a8b77d5566ea65),
  2226.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.me55a47d3b46b0183f439f35c8b2d776c),
  2227.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m0d6b9bf8ea16ad57c2cbcf7b7207a86e),
  2228.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.md21ff2f4d656d11735d7d9242028828a),
  2229.                         new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m584392ff1c47758a3231b32a471437fb)
  2230.                     };
  2231.                 }
  2232.                 array4 = new Func<float>[]
  2233.                 {
  2234.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m4cee1898bad49c69662ef8ddd954cd58),
  2235.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m97dc4b71502bb4e109fc09ef78781dc4),
  2236.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m6fcadca601d250ee4cbb62de4488ee76),
  2237.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.ma5e7a298ee233d691ec5f9868854d541),
  2238.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m0614059609b90c3a8b330acbe76c1c84),
  2239.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.madd3a312ec9e7dd8c184e45fc6e2de01),
  2240.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.mc2e776ea5369aa95e124f50660cc5eab),
  2241.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m81a58a0c83247bbbf072cf598c790aef)
  2242.                 };
  2243.                 array5 = new Func<float>[]
  2244.                 {
  2245.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.mb9fd78ec381411f25aad5eb3dcb787b0),
  2246.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m3ee26298066b90a1838a976a885dab4c),
  2247.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m94ee0dfc3b5d03d6e0b40c2cfc16325c),
  2248.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m6080cecabd47bd6018b4064e8d58d441),
  2249.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m318feea5305438fbf603064c47bb6a67),
  2250.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.mfe0c75eccbd2cff1ca53d6aaff7c242a),
  2251.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m9c08dede829c0e820d512d32104f9f8e),
  2252.                     new Func<float>(c237921cb068a73a8c1084a4d121e9eaf.m987c6e57d115e88c42c04a8793972390)
  2253.                 };
  2254.             }
  2255.             RaycastHit raycastHit3 = default(RaycastHit);
  2256.             int layerMask = 1 << LayerMask.NameToLayer("Phy Bg");
  2257.             int num4 = -1;
  2258.             for (int j = 0; j < this._entryBattleCharaSpecList.Count; j++)
  2259.             {
  2260.                 string enemyActorName = BattleManager.GetEnemyActorName(j);
  2261.                 BattleActor battleActor2 = this.FindActor(enemyActorName);
  2262.                 if (battleActor2 != null)
  2263.                 {
  2264.                     if (c237921cb068a73a8c1084a4d121e9eaf != null)
  2265.                     {
  2266.                         if (array2[j] != null && array4[j] != null)
  2267.                         {
  2268.                             Vector3 vector2 = new Vector3(array2[j](), 5f, array4[j]());
  2269.                             if (this.m_chaosBattle && array3 != null)
  2270.                             {
  2271.                                 vector2.y = array3[j]();
  2272.                             }
  2273.                             else if (Physics.Raycast(vector2, Vector3.down, out raycastHit3, float.PositiveInfinity, layerMask))
  2274.                             {
  2275.                                 vector2.y = raycastHit3.point.y;
  2276.                             }
  2277.                             battleActor2.SetPlacementPos(vector2);
  2278.                         }
  2279.                         if (array5[j] != null)
  2280.                         {
  2281.                             battleActor2.chara.transform.localEulerAngles = new Vector3(0f, array5[j](), 0f);
  2282.                         }
  2283.                     }
  2284.                     Animator animatorComponent4 = battleActor2.chara.GetAnimatorComponent();
  2285.                     animatorComponent4.cullingMode = AnimatorCullingMode.AlwaysAnimate;
  2286.                     C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b = C4d4f3a800432e94568175cb31ad3c78d.Find(this._entryBattleCharaSpecList[j]);
  2287.                     if (c51747b7e0e19ad065084a2c5a6d8421b != null && (int)c51747b7e0e19ad065084a2c5a6d8421b.ma225879fc7f6778cf12d05d9caf0cda3() != 0)
  2288.                     {
  2289.                         num4++;
  2290.                     }
  2291.                     battleActor2.Init(this._entryBattleCharaSpecList[j], this.m_enemyLevel, j, num4);
  2292.                     battleActor2.TargetActor = this.m_playerActor;
  2293.                     if (c6a63ba3da59f35f0fee059da0f7321db != null && c6a63ba3da59f35f0fee059da0f7321db.m4f63acfb743cb25115f76fc77af6151e(j) != 0)
  2294.                     {
  2295.                         battleActor2.State = BattleActor.StateType.StandBy;
  2296.                         battleActor2.chara.gameObject.SetActive(false);
  2297.                         battleActor2.LoopOffAiResidentEffect();
  2298.                         battleActor2.SaveFlagBits |= BattleActor.SaveFlagBitType.StandBy;
  2299.                     }
  2300.                     else
  2301.                     {
  2302.                         battleActor2.SetStateIdle(true, -1, -1);
  2303.                         PhysicsController physicsControllerComponent = battleActor2.chara.GetPhysicsControllerComponent();
  2304.                         if (physicsControllerComponent)
  2305.                         {
  2306.                             physicsControllerComponent.Reset(1f);
  2307.                         }
  2308.                     }
  2309.                 }
  2310.             }
  2311.             this.InitSameCharaIndex();
  2312.             if (Mevius.App.Api.IsTrialMode())
  2313.             {
  2314.                 this.m_autoAttack = BattleManager.AutoAttackType.FullAutoAttack;
  2315.             }
  2316.             else if (Mevius.Db.Api.IsTutorial())
  2317.             {
  2318.                 this.m_autoAttack = BattleManager.AutoAttackType.Off;
  2319.             }
  2320.             bool flag = true;
  2321.             if (!Mevius.App.Api.IsPartyMode() && Mevius.Db.Api.IsEnableClientSaveData(0u) && Mevius.Db.Api.HasBattleData())
  2322.             {
  2323.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  2324.                 flag = (battleData.step <= 2);
  2325.             }
  2326.             else
  2327.             {
  2328.                 BattleUtility.SetOverMissionCount(MissionCountType.TurnMax, this.m_turnNum);
  2329.                 BattleUtility.AddMissionCount(MissionCountType.TurnTotal, 1);
  2330.                 for (int k = 0; k < this._entryBattleCharaSpecList.Count; k++)
  2331.                 {
  2332.                     string enemyActorName2 = BattleManager.GetEnemyActorName(k);
  2333.                     BattleActor battleActor3 = this.FindActor(enemyActorName2);
  2334.                     if (battleActor3 != null)
  2335.                     {
  2336.                         BattleUtility.AddMissionCount(MissionCountType.EnemyHpTotal, battleActor3.HpMax);
  2337.                         BattleUtility.AddMissionCount(MissionCountType.EnemyBpTotal, battleActor3.BpMax);
  2338.                         if (battleActor3.IsActive() && battleActor3.Ai != null)
  2339.                         {
  2340.                             battleActor3.Ai.OnBehavior(BattleAiData.Pattern.TimingType.Init, string.Empty, null, true);
  2341.                         }
  2342.                     }
  2343.                 }
  2344.                 this.InitElementInfluence();
  2345.                 this.SaveData();
  2346.             }
  2347.             this.ProcManToMan();
  2348.             if (Mevius.Party.Api.IsFirstSnap())
  2349.             {
  2350.                 this.SaveMultiData();
  2351.             }
  2352.             Mevius.Gui.Api.ShowHideBillboard(false);
  2353.             if (flag)
  2354.             {
  2355.                 Mevius.Gui.Api.RemoveDelayLoadingIcon(NowLoadingManager.Layer.TopLevel, "TopLevel");
  2356.                 this.m_playerActor.onEncount();
  2357.                 for (int l = 0; l < this.m_actorList.Count; l++)
  2358.                 {
  2359.                     BattleActor battleActor4 = this.m_actorList[l];
  2360.                     if (battleActor4 != null && battleActor4.IsEnemy() && battleActor4.IsActive())
  2361.                     {
  2362.                         this.m_playerActor.TargetActor = battleActor4;
  2363.                         break;
  2364.                     }
  2365.                 }
  2366.                 if (Mevius.App.Api.IsPartyMode())
  2367.                 {
  2368.                     this.m_targetActor = this.m_playerActor.TargetActor;
  2369.                 }
  2370.                 else
  2371.                 {
  2372.                     this.UpdateSelectedTarget();
  2373.                 }
  2374.                 Vector3 forward = this.m_playerActor.TargetActor.chara.transform.position - this.m_playerActor.chara.transform.position;
  2375.                 forward.y = 0f;
  2376.                 this.m_playerActor.chara.transform.rotation = Quaternion.LookRotation(forward);
  2377.                 for (int m = 0; m < this.m_multiBattleActorList.Count; m++)
  2378.                 {
  2379.                     BattleActor battleActor5 = this.m_multiBattleActorList[m];
  2380.                     if (battleActor5.IsMultiMember())
  2381.                     {
  2382.                         Vector3 forward2 = this.m_playerActor.TargetActor.chara.transform.position - battleActor5.chara.transform.position;
  2383.                         forward2.y = 0f;
  2384.                         battleActor5.chara.transform.rotation = Quaternion.LookRotation(forward2);
  2385.                         battleActor5.onEncount();
  2386.                         battleActor5.TargetActor = this.m_playerActor.TargetActor;
  2387.                     }
  2388.                 }
  2389.                 this.InitFairyActor();
  2390.                 this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, this.m_playerActor.TargetActor);
  2391.                 this.m_cameraManager.CameraSequence.Charactor = this.m_playerActor.chara;
  2392.                 this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.Sequence);
  2393.                 this._step = BattleManager.BattleStep.EncountCameraWait;
  2394.             }
  2395.             else
  2396.             {
  2397.                 Mevius.Gui.Api.CreateBattleMenu();
  2398.                 this.LoadPlayerCardResources();
  2399.                 this._step = BattleManager.BattleStep.MenuCreateWait;
  2400.             }
  2401.             this.m_guiTouchComponent.m_stateBit = 0u;
  2402.             this.UpdateCamera();
  2403.             this.lastBattleWinActorObject = null;
  2404.         }
  2405.  
  2406.         private void UpdateBattleStart()
  2407.         {
  2408.             if (this.m_playerActor != null)
  2409.             {
  2410.                 this.m_playerActor.OnBattleBegin();
  2411.             }
  2412.             BattleActor battleActor = null;
  2413.             bool flag = true;
  2414.             for (int i = 0; i < this.m_actorList.Count; i++)
  2415.             {
  2416.                 BattleActor battleActor2 = this.m_actorList[i];
  2417.                 if (battleActor2 != null && battleActor2.IsEnemy() && battleActor2.IsActive() && battleActor2.State != BattleActor.StateType.Idle && !battleActor2.IsActionEnd())
  2418.                 {
  2419.                     battleActor = battleActor2;
  2420.                     flag = false;
  2421.                     break;
  2422.                 }
  2423.             }
  2424.             bool flag2 = battleActor != null && battleActor.IsFlagBit(BattleActor.FlagBitType.AbilityInputWait);
  2425.             if (this.CameraManager.IsActionEnd() && !flag2)
  2426.             {
  2427.                 if (battleActor != null && this.m_cameraManager.CurrentCameraType != BattleCameraManager.CameraType.TargetSelect)
  2428.                 {
  2429.                     float interpSec;
  2430.                     CameraSequence.BlendType blendType;
  2431.                     if (!this.m_cameraManager.GetActionNextInterpInfo(out interpSec, out blendType))
  2432.                     {
  2433.                         interpSec = 0.5f;
  2434.                         blendType = CameraSequence.BlendType.Curve;
  2435.                     }
  2436.                     this.m_cameraManager.SetInterpolation(interpSec, blendType, true);
  2437.                     this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, battleActor);
  2438.                     this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  2439.                 }
  2440.                 else
  2441.                 {
  2442.                     this.ChangeTargetSelectCamera(false);
  2443.                 }
  2444.             }
  2445.             this.UpdateCamera();
  2446.             this.UpdateTime();
  2447.             if (!this.m_damageSourceManager.IsExist())
  2448.             {
  2449.                 if (this.m_playerActor.Hp <= 0)
  2450.                 {
  2451.                     if (this.m_playerActor.IsDeadIdle())
  2452.                     {
  2453.                         if (Mevius.Db.Api.IsTutorial() || Mevius.App.Api.IsTrialMode())
  2454.                         {
  2455.                             this.RevivePlayer();
  2456.                             this._step = BattleManager.BattleStep.PlayerTurnStart;
  2457.                         }
  2458.                         else if (Mevius.App.Api.IsPartyMode())
  2459.                         {
  2460.                             this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  2461.                             this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  2462.                         }
  2463.                         else
  2464.                         {
  2465.                             this._step = BattleManager.BattleStep.ContinueCheck;
  2466.                         }
  2467.                         this.HideBattleEnemyActionName();
  2468.                         Mevius.Gui.Api.ClearDQBattleLogText();
  2469.                     }
  2470.                 }
  2471.                 else if (flag)
  2472.                 {
  2473.                     bool flag3 = false;
  2474.                     for (int j = 0; j < this.m_actorList.Count; j++)
  2475.                     {
  2476.                         BattleActor battleActor3 = this.m_actorList[j];
  2477.                         if (battleActor3 != null && battleActor3.IsEnemy() && battleActor3.IsActive() && battleActor3.OnBattleBegin() && battleActor3.State == BattleActor.StateType.Ability)
  2478.                         {
  2479.                             if (!this.m_playerActor.IsDead() && this.m_playerActor.State != BattleActor.StateType.Guard)
  2480.                             {
  2481.                                 this.m_playerActor.StartGuard();
  2482.                             }
  2483.                             if (this.m_boss)
  2484.                             {
  2485.                                 if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action || !this.CameraManager.IsActionOwner(battleActor3))
  2486.                                 {
  2487.                                     this.CameraManager.SetInterpolation(0.5f, CameraSequence.BlendType.Curve, true);
  2488.                                     this.CameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, battleActor3);
  2489.                                     this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  2490.                                 }
  2491.                             }
  2492.                             else if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action)
  2493.                             {
  2494.                                 string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  2495.                                 Vector3 position = battleActor3.chara.GetElementIdTransform(name).position;
  2496.                                 Camera component = Mevius.Renderer.CameraManager.GetInstance().GetViewCameraGameObject().GetComponent<Camera>();
  2497.                                 Vector3 vector = component.WorldToViewportPoint(position);
  2498.                                 if (vector.x < 0f || vector.x > 1f || vector.y < 0f || vector.y > 1f || vector.z <= 0f)
  2499.                                 {
  2500.                                     this.CameraManager.SetInterpolation(1f, CameraSequence.BlendType.Curve, true);
  2501.                                     this.CameraManager.InitTwoShot(battleActor3, this.m_playerActor, 0, false);
  2502.                                     this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TwoShot);
  2503.                                 }
  2504.                             }
  2505.                             else if (!this.CameraManager.IsActionOwner(battleActor3))
  2506.                             {
  2507.                                 this.CameraManager.SetInterpolation(1f, CameraSequence.BlendType.Curve, true);
  2508.                                 this.CameraManager.InitTwoShot(battleActor3, this.m_playerActor, 0, false);
  2509.                                 this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TwoShot);
  2510.                             }
  2511.                             flag3 = true;
  2512.                             break;
  2513.                         }
  2514.                     }
  2515.                     if (!flag3)
  2516.                     {
  2517.                         this.HideBattleEnemyActionName();
  2518.                         Mevius.Gui.Api.ClearDQBattleLogText();
  2519.                         if (!this.IsCountTimeBattle())
  2520.                         {
  2521.                             for (int k = 0; k < this.m_actorList.Count; k++)
  2522.                             {
  2523.                                 BattleActor battleActor4 = this.m_actorList[k];
  2524.                                 if (battleActor4 != null && battleActor4.IsEnemy() && battleActor4.IsActive())
  2525.                                 {
  2526.                                     battleActor4.OnTurnEnd();
  2527.                                 }
  2528.                             }
  2529.                         }
  2530.                         if (Mevius.App.Api.IsPartyMode())
  2531.                         {
  2532.                             this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  2533.                             this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  2534.                         }
  2535.                         else
  2536.                         {
  2537.                             this._step = BattleManager.BattleStep.FairyTurnStart;
  2538.                         }
  2539.                         this.SaveData();
  2540.                     }
  2541.                 }
  2542.             }
  2543.         }
  2544.  
  2545.         private void UpdatePlayerTurn()
  2546.         {
  2547.             if (Mevius.App.Api.IsPartyMode() && Mevius.Party.Api.IsExitPlayer())
  2548.             {
  2549.                 this.Step = BattleManager.BattleStep.Escape;
  2550.                 return;
  2551.             }
  2552.             this.UpdateCamera();
  2553.             this.UpdateTime();
  2554.             if (this.m_playerActor != null && this.m_playerActor.IsDead())
  2555.             {
  2556.                 if (this.m_playerActor.IsDeadIdle())
  2557.                 {
  2558.                     this.m_damageSourceManager.Clear();
  2559.                     if (this.m_playerActor.IsSummon())
  2560.                     {
  2561.                         this.ProcChangeJob(false, false);
  2562.                     }
  2563.                     else if (Mevius.Db.Api.IsTutorial() || Mevius.App.Api.IsTrialMode())
  2564.                     {
  2565.                         this.RevivePlayer();
  2566.                         this._step = BattleManager.BattleStep.PlayerTurnStart;
  2567.                     }
  2568.                     else if (Mevius.App.Api.IsPartyMode())
  2569.                     {
  2570.                         this.m_multiBattleSlotList.RemoveAt(0);
  2571.                         if (this.m_multiBattleSlotList.Count > 0)
  2572.                         {
  2573.                             this._step = BattleManager.BattleStep.PlayerTurnStart;
  2574.                         }
  2575.                         else
  2576.                         {
  2577.                             this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  2578.                             this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  2579.                         }
  2580.                     }
  2581.                     else
  2582.                     {
  2583.                         this._step = BattleManager.BattleStep.ContinueCheck;
  2584.                     }
  2585.                 }
  2586.                 return;
  2587.             }
  2588.             this.m_battleSlow.Update(Mevius.App.Api.GetDeltaTime());
  2589.             if (this.m_playerActor == null)
  2590.             {
  2591.                 return;
  2592.             }
  2593.             bool flag = true;
  2594.             bool flag2 = false;
  2595.             for (int i = 0; i < this.m_actorList.Count; i++)
  2596.             {
  2597.                 if (this.m_actorList[i].IsEnemy() && !this.m_actorList[i].IsNeedNotKill())
  2598.                 {
  2599.                     if (this.m_actorList[i].IsActive())
  2600.                     {
  2601.                         flag = false;
  2602.                         break;
  2603.                     }
  2604.                     if (this.m_actorList[i].IsRewardWait())
  2605.                     {
  2606.                         flag2 = true;
  2607.                     }
  2608.                 }
  2609.             }
  2610.             if (flag)
  2611.             {
  2612.                 if (this.CameraManager.IsActionEnd())
  2613.                 {
  2614.                     this.ChangeTargetSelectCamera(false);
  2615.                 }
  2616.                 bool flag3 = this.m_damageSourceManager.IsExist();
  2617.                 if (!flag2 && !flag3)
  2618.                 {
  2619.                     this.SetBattleWin(0f);
  2620.                 }
  2621.             }
  2622.             else if (this.IsPlayerActionEnd())
  2623.             {
  2624.                 this.m_lasTouchPosInited = false;
  2625.                 if (this.m_playerActor.IsTurnEnd())
  2626.                 {
  2627.                     this.m_actionStepWait += Mevius.App.Api.GetDeltaTimeForBattle();
  2628.                     if (this.m_actionStepWait > Mevius.DataSheet.Api.GetResidentFloat("playerTurnEndWaitSec", 0.5f))
  2629.                     {
  2630.                         this.m_actionStepWait = 0f;
  2631.                         Mevius.App.Api.SetTimeScale(1f);
  2632.                         if (!this.IsCountTimeBattle())
  2633.                         {
  2634.                             this.m_playerActor.OnTurnEnd();
  2635.                             if (this.m_playerActorSub != null)
  2636.                             {
  2637.                                 this.m_playerActorSub.OnTurnEnd();
  2638.                             }
  2639.                             this._step = BattleManager.BattleStep.EnemyTurnStart;
  2640.                         }
  2641.                         this.SaveData();
  2642.                         if (Mevius.App.Api.IsPartyMode())
  2643.                         {
  2644.                             this.m_multiBattleSlotList.RemoveAt(0);
  2645.                             if (this.m_multiBattleSlotList.Count > 0)
  2646.                             {
  2647.                                 this._step = BattleManager.BattleStep.PlayerTurnStart;
  2648.                             }
  2649.                             else
  2650.                             {
  2651.                                 this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  2652.                                 this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  2653.                             }
  2654.                         }
  2655.                     }
  2656.                 }
  2657.                 else if (this.CameraManager.IsActionEnd() || this.m_playerActor.State == BattleActor.StateType.Idle)
  2658.                 {
  2659.                     if (this.m_playerActor.State != BattleActor.StateType.Ability && this.m_playerActor.State != BattleActor.StateType.CloseAttack && this.m_playerActor.TargetActor != null && !this.m_playerActor.TargetActor.IsActive())
  2660.                     {
  2661.                         this.m_playerActor.TargetActor = this.GetEnemyActor(this.m_playerActor.TargetActor);
  2662.                     }
  2663.                     this.ChangeTargetSelectCamera(false);
  2664.                 }
  2665.             }
  2666.             else
  2667.             {
  2668.                 if (this.CameraManager.IsActionEnd() && !this.m_playerActor.IsFairyActionWait())
  2669.                 {
  2670.                     this.ChangeTargetSelectCamera(false);
  2671.                 }
  2672.                 Mevius.Renderer.CameraManager instance = Mevius.Renderer.CameraManager.GetInstance();
  2673.                 if (instance != null)
  2674.                 {
  2675.                     if (this.m_guiTouchComponent.IsPress() && this.m_playerActor.IsPlayerInputAccept())
  2676.                     {
  2677.                         Vector2 touchEmulatePosition = Mevius.App.Api.GetTouchEmulatePosition();
  2678.                         this.m_inputCheck = true;
  2679.                         this.m_inputTouch = true;
  2680.                         this.m_touchDownPos = touchEmulatePosition;
  2681.                         this.m_touchPos[0] = touchEmulatePosition;
  2682.                         this.m_touchPos[1] = touchEmulatePosition;
  2683.                     }
  2684.                     bool flag4 = false;
  2685.                     if (this.m_autoAttack != BattleManager.AutoAttackType.Off || Mevius.App.Api.IsPartyMode())
  2686.                     {
  2687.                         if (this.m_playerActor.IsPlayerInputAccept())
  2688.                         {
  2689.                             flag4 = true;
  2690.                         }
  2691.                         if (this.m_playerActor.ActionNum == 0)
  2692.                         {
  2693.                             flag4 = true;
  2694.                         }
  2695.                     }
  2696.                     else if (this.m_inputTouch)
  2697.                     {
  2698.                         if (this.m_guiTouchComponent.IsDown())
  2699.                         {
  2700.                             this.m_touchPos[0] = this.m_touchPos[1];
  2701.                             this.m_touchPos[1] = Mevius.App.Api.GetTouchEmulatePosition();
  2702.                             Vector2 presentationPosition = instance.GetPresentationPosition(this.m_touchDownPos);
  2703.                             Vector2 presentationPosition2 = instance.GetPresentationPosition(this.m_touchPos[0]);
  2704.                             Vector2 presentationPosition3 = instance.GetPresentationPosition(this.m_touchPos[1]);
  2705.                             presentationPosition.y /= instance.GetPresentationAspect();
  2706.                             presentationPosition2.y /= instance.GetPresentationAspect();
  2707.                             presentationPosition3.y /= instance.GetPresentationAspect();
  2708.                             float magnitude = (presentationPosition3 - presentationPosition).magnitude;
  2709.                             if (magnitude > 0.1f)
  2710.                             {
  2711.                                 this.m_stayMove = true;
  2712.                             }
  2713.                         }
  2714.                         if (this.m_guiTouchComponent.IsUp())
  2715.                         {
  2716.                             if (!this.m_inputAccepted && this.m_playerActor.IsPlayerInputAccept() && !this.m_stayMove)
  2717.                             {
  2718.                                 BattleActor battleActor = null;
  2719.                                 if (this.IsTargetChangeMode())
  2720.                                 {
  2721.                                     GameObject viewCameraGameObject = instance.GetViewCameraGameObject();
  2722.                                     if (viewCameraGameObject && viewCameraGameObject.GetComponent<Camera>())
  2723.                                     {
  2724.                                         Vector2 presentationPosition4 = instance.GetPresentationPosition(this.m_touchPos[1]);
  2725.                                         Vector2 a = presentationPosition4;
  2726.                                         a.y /= instance.GetPresentationAspect();
  2727.                                         float num = 1024f;
  2728.                                         string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  2729.                                         for (int j = 0; j < this.m_actorList.Count; j++)
  2730.                                         {
  2731.                                             BattleActor battleActor2 = this.m_actorList[j];
  2732.                                             if (battleActor2.IsEnemy() && battleActor2.IsActiveTarget())
  2733.                                             {
  2734.                                                 Transform elementIdTransform = battleActor2.chara.GetElementIdTransform(name);
  2735.                                                 if (elementIdTransform)
  2736.                                                 {
  2737.                                                     Vector3 vector = viewCameraGameObject.GetComponent<Camera>().WorldToViewportPoint(elementIdTransform.position);
  2738.                                                     if (vector.z > 0f)
  2739.                                                     {
  2740.                                                         Vector3 v = vector;
  2741.                                                         v.y /= instance.GetPresentationAspect();
  2742.                                                         float num2 = Vector2.Distance(a, v);
  2743.                                                         bool flag5 = false;
  2744.                                                         Vector3 position = new Vector3(presentationPosition4.x, presentationPosition4.y, vector.z);
  2745.                                                         Vector3 b = viewCameraGameObject.GetComponent<Camera>().ViewportToWorldPoint(position);
  2746.                                                         float num3 = 0.5f;
  2747.                                                         C95bcaea3352f97e159106604018eaa69.Cd665cdef191ff92708675209607d4634 cd665cdef191ff92708675209607d = C95bcaea3352f97e159106604018eaa69.Find(battleActor2.chara.spec);
  2748.                                                         if (cd665cdef191ff92708675209607d != null)
  2749.                                                         {
  2750.                                                             num3 = cd665cdef191ff92708675209607d.m9c2eb8f9a248c0d1381a0c078b73c70c() * cd665cdef191ff92708675209607d.mbdaffba4ca6452435da172e215b2ed94();
  2751.                                                         }
  2752.                                                         if (Vector3.Distance(elementIdTransform.position, b) < num3)
  2753.                                                         {
  2754.                                                             flag5 = true;
  2755.                                                         }
  2756.                                                         else
  2757.                                                         {
  2758.                                                             float num4 = (!this.IsTargetChangeMode()) ? 0.125f : 0.25f;
  2759.                                                             if (num2 < num4)
  2760.                                                             {
  2761.                                                                 flag5 = true;
  2762.                                                             }
  2763.                                                         }
  2764.                                                         if (flag5 && num2 < num)
  2765.                                                         {
  2766.                                                             battleActor = battleActor2;
  2767.                                                             num = num2;
  2768.                                                         }
  2769.                                                     }
  2770.                                                 }
  2771.                                             }
  2772.                                         }
  2773.                                     }
  2774.                                 }
  2775.                                 bool flag6 = false;
  2776.                                 if (battleActor != null && battleActor != this.m_targetActor)
  2777.                                 {
  2778.                                     flag6 = true;
  2779.                                     this.m_targetActor = battleActor;
  2780.                                     this.m_inputCheck = false;
  2781.                                     string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  2782.                                     Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_cursor_01", 1f, 0, 0, Vector3.zero, null, false, -1, 0, 1f);
  2783.                                 }
  2784.                                 if (!flag6 && this.m_targetActor != null && this.m_targetActor.IsActive() && !this.m_ignoreAttack)
  2785.                                 {
  2786.                                     this.CheckPlayerTargetChange();
  2787.                                     this.m_inputAccepted = true;
  2788.                                     this.m_inputCheck = false;
  2789.                                 }
  2790.                             }
  2791.                             this.m_inputTouch = false;
  2792.                             this.m_inputCheck = false;
  2793.                             this.m_stayMove = false;
  2794.                         }
  2795.                     }
  2796.                     if (flag4)
  2797.                     {
  2798.                         this.m_autoAttackTimer += Mevius.App.Api.GetDeltaTime();
  2799.                         float residentFloat = Mevius.DataSheet.Api.GetResidentFloat("autoAttackWaitSec", 0f);
  2800.                         if (this.m_autoAttackTimer > residentFloat)
  2801.                         {
  2802.                             this.CheckPlayerTargetChange();
  2803.                             this.m_inputAccepted = true;
  2804.                         }
  2805.                         this.m_inputCheck = false;
  2806.                     }
  2807.                 }
  2808.                 if (this.IsBattleCameraDragging())
  2809.                 {
  2810.                     if (!this.m_lasTouchPosInited)
  2811.                     {
  2812.                         this.m_lasTouchPosInited = true;
  2813.                         this.m_lastTouchPos = Mevius.App.Api.GetTouchEmulatePosition();
  2814.                     }
  2815.                     Vector2 v2 = Mevius.App.Api.GetTouchEmulatePosition() - this.m_lastTouchPos;
  2816.                     Camera component = Mevius.Renderer.CameraManager.GetInstance().GetViewCameraGameObject().GetComponent<Camera>();
  2817.                     if (Mathf.Abs(v2.x) >= 1.401298E-45f)
  2818.                     {
  2819.                         if (this.m_inputTouch || !this.m_cameraManager.IsTargetSelectForcus())
  2820.                         {
  2821.                         }
  2822.                         float num5 = component.ScreenToViewportPoint(v2).x * BattleManager.TargetSelectHrzAngleAdjust;
  2823.                         if (!Mevius.Db.Api.GetBattleCameraHrzRotReverse())
  2824.                         {
  2825.                             num5 *= -1f;
  2826.                         }
  2827.                         this.CameraManager.AddTargetSelectHrzAngle(num5);
  2828.                     }
  2829.                     if (Mathf.Abs(v2.y) >= 1.401298E-45f)
  2830.                     {
  2831.                         float num6 = component.ScreenToViewportPoint(v2).y * BattleManager.TargetSelectVrtAngleAdjust;
  2832.                         if (Mevius.Db.Api.GetBattleCameraVrtRotReverse())
  2833.                         {
  2834.                             num6 *= -1f;
  2835.                         }
  2836.                         this.CameraManager.AddTargetSelectVrtAngle(num6);
  2837.                     }
  2838.                     this.m_lastTouchPos = Mevius.App.Api.GetTouchEmulatePosition();
  2839.                 }
  2840.                 else
  2841.                 {
  2842.                     if (this.m_playerActor.State != BattleActor.StateType.Ability && this.m_playerActor.State != BattleActor.StateType.CloseAttack && this.m_playerActor.TargetActor != null && !this.m_playerActor.TargetActor.IsActive())
  2843.                     {
  2844.                         this.m_playerActor.TargetActor = this.GetEnemyActor(this.m_playerActor.TargetActor);
  2845.                         if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action)
  2846.                         {
  2847.                             BattleManager._i.ChangeTargetSelectCamera(false);
  2848.                         }
  2849.                         this.m_playerActor.OnTurnTarget();
  2850.                     }
  2851.                     this.m_lasTouchPosInited = false;
  2852.                 }
  2853.                 if (this.m_inputAccepted)
  2854.                 {
  2855.                     if (this.m_playerActor.IsPlayerInputAccept())
  2856.                     {
  2857.                         if (Mevius.App.Api.IsPartyMode())
  2858.                         {
  2859.                             this.m_playerActor.ProcMultiBattleAction();
  2860.                         }
  2861.                         else
  2862.                         {
  2863.                             bool flag7 = false;
  2864.                             if (this.m_autoAttack == BattleManager.AutoAttackType.FullAutoAttack)
  2865.                             {
  2866.                                 flag7 = this.m_playerActor.AutoAbilityAttack();
  2867.                             }
  2868.                             if (!flag7)
  2869.                             {
  2870.                                 this.m_playerActor.NormalAttack(Vector3.forward, true, false);
  2871.                             }
  2872.                         }
  2873.                         this.m_inputAccepted = false;
  2874.                         this.m_autoAttackTimer = 0f;
  2875.                     }
  2876.                     else if (Mevius.App.Api.IsPartyMode() && this.m_playerActor.ActionNum == 0)
  2877.                     {
  2878.                         this.m_playerActor.ProcMultiBattleAction();
  2879.                         this.m_inputAccepted = false;
  2880.                         this.m_autoAttackTimer = 0f;
  2881.                     }
  2882.                 }
  2883.             }
  2884.             this.UpdateTest();
  2885.         }
  2886.  
  2887.         private void UpdateMultiBattleInput()
  2888.         {
  2889.             if (Mevius.App.Api.IsPartyMode() && Mevius.Party.Api.IsExitPlayer())
  2890.             {
  2891.                 this.Step = BattleManager.BattleStep.Escape;
  2892.                 return;
  2893.             }
  2894.             if (Mevius.Party.Api.IsNeedRevivalStep())
  2895.             {
  2896.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  2897.                 {
  2898.                     BattleActor battleActor = this.m_multiBattleActorList[i];
  2899.                     if (Mevius.Party.Api.ExecRevivalSlot(battleActor.PartySlot) != Mevius.Party.Api.ExecRevival.ExecRevival_NONE && battleActor.IsDead())
  2900.                     {
  2901.                         battleActor.OnRevive();
  2902.                         battleActor.OnTurnBegin();
  2903.                         if (battleActor.ReadyAction())
  2904.                         {
  2905.                         }
  2906.                         if (battleActor.PartyMemberType == Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  2907.                         {
  2908.                             Mevius.Gui.Api.HidePlayerDeadTimer();
  2909.                             Mevius.Gui.Api.ShowPlayerTurnTimer();
  2910.                             Mevius.Gui.Api.ShowDecideButton();
  2911.                             Mevius.Gui.Api.SetBattleTargetButtonEnable(true);
  2912.                         }
  2913.                     }
  2914.                 }
  2915.                 this.m_multiBattleTurnStartTime = Mevius.Party.Api.GetBeginLimitTime();
  2916.                 this.m_multiBattleTurnLimitTime = (ulong)Mevius.Party.Api.GetBaseLimitTime();
  2917.                 this.m_multiBattleStartTime = Mevius.Party.Api.GetBeginBattleTime();
  2918.                 this.ProcManToMan();
  2919.             }
  2920.             if (Mevius.Party.Api.IsExistForceSnap())
  2921.             {
  2922.                 Mevius.App.Api.SetTimeScale(1f);
  2923.                 this.EndSlow();
  2924.                 this.m_playerActor.EndMultiBattleInput();
  2925.                 this.m_playerActor.SendMultiBattleCommand(false);
  2926.                 this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.MultiInputWait;
  2927.                 this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  2928.                 return;
  2929.             }
  2930.             this.UpdateCamera();
  2931.             this.UpdateTime();
  2932.             this.m_battleSlow.Update(Mevius.App.Api.GetDeltaTime());
  2933.             bool flag = true;
  2934.             bool flag2 = false;
  2935.             for (int j = 0; j < this.m_actorList.Count; j++)
  2936.             {
  2937.                 if (this.m_actorList[j].IsEnemy() && !this.m_actorList[j].IsNeedNotKill())
  2938.                 {
  2939.                     if (this.m_actorList[j].IsActive())
  2940.                     {
  2941.                         flag = false;
  2942.                         break;
  2943.                     }
  2944.                     if (this.m_actorList[j].IsRewardWait())
  2945.                     {
  2946.                         flag2 = true;
  2947.                     }
  2948.                 }
  2949.             }
  2950.             if (flag)
  2951.             {
  2952.                 if (!flag2)
  2953.                 {
  2954.                     this.SetBattleWin(0f);
  2955.                 }
  2956.             }
  2957.             else
  2958.             {
  2959.                 if (Mevius.Party.Api.IsNeedSendSnap(true))
  2960.                 {
  2961.                     for (int k = 0; k < this.m_multiBattleActorList.Count; k++)
  2962.                     {
  2963.                         BattleActor battleActor2 = this.m_multiBattleActorList[k];
  2964.                         if (battleActor2.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY && battleActor2.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  2965.                         {
  2966.                             if (!battleActor2.IsDead())
  2967.                             {
  2968.                                 if (Mevius.Party.Api.IsAutoAiStatus(battleActor2.PartySlot) && !battleActor2.CommandInputEnd)
  2969.                                 {
  2970.                                     battleActor2.AutoAbilityAttackMulti();
  2971.                                 }
  2972.                             }
  2973.                         }
  2974.                     }
  2975.                 }
  2976.                 if (this.m_playerActor != null && this.m_playerActor.IsDead())
  2977.                 {
  2978.                     if ((!Mevius.Party.Api.IsDestroyParty() && this.MultiBattleTimeLeftOfTurn <= 0) || Mevius.Party.Api.IsFinishCommand())
  2979.                     {
  2980.                         this.EndSlow();
  2981.                         for (int l = 0; l < this.m_multiBattleActorList.Count; l++)
  2982.                         {
  2983.                             BattleActor battleActor3 = this.m_multiBattleActorList[l];
  2984.                             if (battleActor3.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY && battleActor3.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  2985.                             {
  2986.                                 if (Mevius.Party.Api.IsAutoAiStatus(battleActor3.PartySlot))
  2987.                                 {
  2988.                                     battleActor3.UseActionPass(false, true);
  2989.                                     battleActor3.SendMultiBattleCommand(true);
  2990.                                 }
  2991.                             }
  2992.                         }
  2993.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.MultiInputWait;
  2994.                         this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  2995.                     }
  2996.                     return;
  2997.                 }
  2998.                 if (!this.IsPlayerInputEnd() && Mevius.Party.Api.IsFinishMyCommand())
  2999.                 {
  3000.                     this.SetPlayerActionPass();
  3001.                 }
  3002.                 else if (this.IsPlayerInputEnd())
  3003.                 {
  3004.                     this.m_lasTouchPosInited = false;
  3005.                     if (this.m_playerActor.IsTurnEnd())
  3006.                     {
  3007.                         Mevius.App.Api.SetTimeScale(1f);
  3008.                         this.EndSlow();
  3009.                         this.m_playerActor.EndMultiBattleInput();
  3010.                         this.m_playerActor.SendMultiBattleCommand(false);
  3011.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.MultiInputWait;
  3012.                         this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  3013.                     }
  3014.                 }
  3015.                 else
  3016.                 {
  3017.                     if (this.CameraManager.IsActionEnd() && !this.m_playerActor.IsFairyActionWait())
  3018.                     {
  3019.                         this.ChangeTargetSelectCamera(false);
  3020.                     }
  3021.                     Mevius.Renderer.CameraManager instance = Mevius.Renderer.CameraManager.GetInstance();
  3022.                     if (instance != null)
  3023.                     {
  3024.                         if (this.m_guiTouchComponent.IsPress() && this.m_playerActor.IsPlayerInputAccept())
  3025.                         {
  3026.                             Vector2 touchEmulatePosition = Mevius.App.Api.GetTouchEmulatePosition();
  3027.                             this.m_inputCheck = true;
  3028.                             this.m_inputTouch = true;
  3029.                             this.m_touchDownPos = touchEmulatePosition;
  3030.                             this.m_touchPos[0] = touchEmulatePosition;
  3031.                             this.m_touchPos[1] = touchEmulatePosition;
  3032.                         }
  3033.                         if (this.m_inputTouch)
  3034.                         {
  3035.                             if (this.m_guiTouchComponent.IsDown())
  3036.                             {
  3037.                                 this.m_touchPos[0] = this.m_touchPos[1];
  3038.                                 this.m_touchPos[1] = Mevius.App.Api.GetTouchEmulatePosition();
  3039.                                 Vector2 presentationPosition = instance.GetPresentationPosition(this.m_touchDownPos);
  3040.                                 Vector2 presentationPosition2 = instance.GetPresentationPosition(this.m_touchPos[0]);
  3041.                                 Vector2 presentationPosition3 = instance.GetPresentationPosition(this.m_touchPos[1]);
  3042.                                 presentationPosition.y /= instance.GetPresentationAspect();
  3043.                                 presentationPosition2.y /= instance.GetPresentationAspect();
  3044.                                 presentationPosition3.y /= instance.GetPresentationAspect();
  3045.                                 float magnitude = (presentationPosition3 - presentationPosition).magnitude;
  3046.                                 if (magnitude > 0.1f)
  3047.                                 {
  3048.                                     this.m_stayMove = true;
  3049.                                 }
  3050.                             }
  3051.                             if (this.m_guiTouchComponent.IsUp())
  3052.                             {
  3053.                                 if (!this.m_inputAccepted && this.m_playerActor.IsPlayerInputAccept() && !this.m_stayMove)
  3054.                                 {
  3055.                                     BattleActor battleActor4 = null;
  3056.                                     if (this.IsTargetChangeMode())
  3057.                                     {
  3058.                                         GameObject viewCameraGameObject = instance.GetViewCameraGameObject();
  3059.                                         if (viewCameraGameObject && viewCameraGameObject.GetComponent<Camera>())
  3060.                                         {
  3061.                                             Vector2 presentationPosition4 = instance.GetPresentationPosition(this.m_touchPos[1]);
  3062.                                             Vector2 a = presentationPosition4;
  3063.                                             a.y /= instance.GetPresentationAspect();
  3064.                                             float num = 1024f;
  3065.                                             string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  3066.                                             for (int m = 0; m < this.m_actorList.Count; m++)
  3067.                                             {
  3068.                                                 BattleActor battleActor5 = this.m_actorList[m];
  3069.                                                 if (battleActor5.IsEnemy() && battleActor5.IsActiveTarget())
  3070.                                                 {
  3071.                                                     Transform elementIdTransform = battleActor5.chara.GetElementIdTransform(name);
  3072.                                                     if (elementIdTransform)
  3073.                                                     {
  3074.                                                         Vector3 vector = viewCameraGameObject.GetComponent<Camera>().WorldToViewportPoint(elementIdTransform.position);
  3075.                                                         if (vector.z > 0f)
  3076.                                                         {
  3077.                                                             Vector3 v = vector;
  3078.                                                             v.y /= instance.GetPresentationAspect();
  3079.                                                             float num2 = Vector2.Distance(a, v);
  3080.                                                             bool flag3 = false;
  3081.                                                             Vector3 position = new Vector3(presentationPosition4.x, presentationPosition4.y, vector.z);
  3082.                                                             Vector3 b = viewCameraGameObject.GetComponent<Camera>().ViewportToWorldPoint(position);
  3083.                                                             float num3 = 0.5f;
  3084.                                                             C95bcaea3352f97e159106604018eaa69.Cd665cdef191ff92708675209607d4634 cd665cdef191ff92708675209607d = C95bcaea3352f97e159106604018eaa69.Find(battleActor5.chara.spec);
  3085.                                                             if (cd665cdef191ff92708675209607d != null)
  3086.                                                             {
  3087.                                                                 num3 = cd665cdef191ff92708675209607d.m9c2eb8f9a248c0d1381a0c078b73c70c() * cd665cdef191ff92708675209607d.mbdaffba4ca6452435da172e215b2ed94();
  3088.                                                             }
  3089.                                                             if (Vector3.Distance(elementIdTransform.position, b) < num3)
  3090.                                                             {
  3091.                                                                 flag3 = true;
  3092.                                                             }
  3093.                                                             else
  3094.                                                             {
  3095.                                                                 float num4 = (!this.IsTargetChangeMode()) ? 0.125f : 0.25f;
  3096.                                                                 if (num2 < num4)
  3097.                                                                 {
  3098.                                                                     flag3 = true;
  3099.                                                                 }
  3100.                                                             }
  3101.                                                             if (flag3 && num2 < num)
  3102.                                                             {
  3103.                                                                 battleActor4 = battleActor5;
  3104.                                                                 num = num2;
  3105.                                                             }
  3106.                                                         }
  3107.                                                     }
  3108.                                                 }
  3109.                                             }
  3110.                                         }
  3111.                                     }
  3112.                                     bool flag4 = false;
  3113.                                     if (battleActor4 != null && battleActor4 != this.m_targetActor)
  3114.                                     {
  3115.                                         flag4 = true;
  3116.                                         this.m_targetActor = battleActor4;
  3117.                                         this.m_inputCheck = false;
  3118.                                         string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  3119.                                         Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_cursor_01", 1f, 0, 0, Vector3.zero, null, false, -1, 0, 1f);
  3120.                                     }
  3121.                                     if (!flag4 && this.m_targetActor != null && this.m_targetActor.IsActive() && !this.m_ignoreAttack)
  3122.                                     {
  3123.                                         this.CheckPlayerTargetChange();
  3124.                                         this.m_inputAccepted = true;
  3125.                                         this.m_inputCheck = false;
  3126.                                     }
  3127.                                 }
  3128.                                 this.m_inputTouch = false;
  3129.                                 this.m_inputCheck = false;
  3130.                                 this.m_stayMove = false;
  3131.                             }
  3132.                         }
  3133.                     }
  3134.                     if (this.m_inputCheck && (this.m_playerActor.State == BattleActor.StateType.Idle || this.m_playerActor.State == BattleActor.StateType.Guard) && this.m_guiTouchComponent.IsDown())
  3135.                     {
  3136.                         if (!this.m_lasTouchPosInited)
  3137.                         {
  3138.                             this.m_lasTouchPosInited = true;
  3139.                             this.m_lastTouchPos = Mevius.App.Api.GetTouchEmulatePosition();
  3140.                         }
  3141.                         Vector2 v2 = Mevius.App.Api.GetTouchEmulatePosition() - this.m_lastTouchPos;
  3142.                         Camera component = Mevius.Renderer.CameraManager.GetInstance().GetViewCameraGameObject().GetComponent<Camera>();
  3143.                         if (Mathf.Abs(v2.x) >= 1.401298E-45f)
  3144.                         {
  3145.                             if (this.m_inputTouch || !this.m_cameraManager.IsTargetSelectForcus())
  3146.                             {
  3147.                             }
  3148.                             float num5 = component.ScreenToViewportPoint(v2).x * BattleManager.TargetSelectHrzAngleAdjust;
  3149.                             if (!Mevius.Db.Api.GetBattleCameraHrzRotReverse())
  3150.                             {
  3151.                                 num5 *= -1f;
  3152.                             }
  3153.                             this.CameraManager.AddTargetSelectHrzAngle(num5);
  3154.                         }
  3155.                         if (Mathf.Abs(v2.y) >= 1.401298E-45f)
  3156.                         {
  3157.                             float num6 = component.ScreenToViewportPoint(v2).y * BattleManager.TargetSelectVrtAngleAdjust;
  3158.                             if (Mevius.Db.Api.GetBattleCameraVrtRotReverse())
  3159.                             {
  3160.                                 num6 *= -1f;
  3161.                             }
  3162.                             this.CameraManager.AddTargetSelectVrtAngle(num6);
  3163.                         }
  3164.                         this.m_lastTouchPos = Mevius.App.Api.GetTouchEmulatePosition();
  3165.                     }
  3166.                     else
  3167.                     {
  3168.                         if (this.m_playerActor.State != BattleActor.StateType.Ability && this.m_playerActor.State != BattleActor.StateType.CloseAttack && this.m_playerActor.TargetActor != null && !this.m_playerActor.TargetActor.IsActive())
  3169.                         {
  3170.                             this.m_playerActor.TargetActor = this.GetEnemyActor(this.m_playerActor.TargetActor);
  3171.                             if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action)
  3172.                             {
  3173.                                 BattleManager._i.ChangeTargetSelectCamera(false);
  3174.                             }
  3175.                             this.m_playerActor.OnTurnTarget();
  3176.                         }
  3177.                         this.m_lasTouchPosInited = false;
  3178.                     }
  3179.                     if (this.m_inputAccepted)
  3180.                     {
  3181.                         if (this.m_playerActor.IsPlayerInputAccept())
  3182.                         {
  3183.                             this.m_playerActor.NormalAttack(Vector3.forward, true, false);
  3184.                             this.m_inputAccepted = false;
  3185.                             this.m_autoAttackTimer = 0f;
  3186.                         }
  3187.                     }
  3188.                     else if (this.m_playerActor.PartyMemberType == Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME && this.MultiBattleTimeLeftOfTurn <= 0)
  3189.                     {
  3190.                         Mevius.Gui.Api.OnEndInput(Mevius.Gui.Api.EndInputType.TimeOver);
  3191.                         this.m_playerActor.UseActionPass(false, false);
  3192.                     }
  3193.                 }
  3194.             }
  3195.         }
  3196.  
  3197.         private void UpdateEnemyTurnStart()
  3198.         {
  3199.             this.UpdateTime();
  3200.             this.m_partyMemberTurn = false;
  3201.             this.m_actionPriorityEnemyActorList.Clear();
  3202.             for (int i = 0; i < this.m_actorList.Count; i++)
  3203.             {
  3204.                 BattleActor battleActor = this.m_actorList[i];
  3205.                 if (battleActor != null && battleActor.IsEnemy())
  3206.                 {
  3207.                     if (battleActor.IsActive())
  3208.                     {
  3209.                         battleActor.OnTurnBegin();
  3210.                     }
  3211.                     bool flag = false;
  3212.                     for (int j = 0; j < this.m_actionPriorityEnemyActorList.Count; j++)
  3213.                     {
  3214.                         if (battleActor.ActionPriority > this.m_actionPriorityEnemyActorList[j].ActionPriority)
  3215.                         {
  3216.                             this.m_actionPriorityEnemyActorList.Insert(j, battleActor);
  3217.                             flag = true;
  3218.                             break;
  3219.                         }
  3220.                     }
  3221.                     if (!flag)
  3222.                     {
  3223.                         this.m_actionPriorityEnemyActorList.Add(this.m_actorList[i]);
  3224.                     }
  3225.                 }
  3226.             }
  3227.             Mevius.Gui.Api.SetBattleTargetButtonEnable(false);
  3228.             Mevius.Gui.Api.OnStartEnemyTurn();
  3229.             Mevius.Party.Api.ClearCommandStock();
  3230.             this._step = BattleManager.BattleStep.EnemyTurnStartWait;
  3231.         }
  3232.  
  3233.         private void UpdateEnemyTurnStartWait()
  3234.         {
  3235.             this.UpdateCamera();
  3236.             this.UpdateTime();
  3237.             bool flag = false;
  3238.             bool flag2 = false;
  3239.             if (Mevius.App.Api.IsPartyMode())
  3240.             {
  3241.                 for (int i = 0; i < this.m_actionPriorityEnemyActorList.Count; i++)
  3242.                 {
  3243.                     BattleActor battleActor = this.m_actionPriorityEnemyActorList[i];
  3244.                     if (battleActor.BreakState == BattleActor.BreakStateType.Recover)
  3245.                     {
  3246.                         return;
  3247.                     }
  3248.                 }
  3249.             }
  3250.             for (int j = 0; j < this.m_actionPriorityEnemyActorList.Count; j++)
  3251.             {
  3252.                 BattleActor battleActor2 = this.m_actionPriorityEnemyActorList[j];
  3253.                 if (battleActor2.IsActive())
  3254.                 {
  3255.                     if (!battleActor2.IsReadyAction())
  3256.                     {
  3257.                         battleActor2.ReadyAction();
  3258.                     }
  3259.                     if (battleActor2.ActionNum > 0)
  3260.                     {
  3261.                         if (battleActor2.UpdateReadyAction())
  3262.                         {
  3263.                             if (battleActor2.IsPlayer())
  3264.                             {
  3265.                                 if (!battleActor2.AutoAbilityAttack())
  3266.                                 {
  3267.                                     battleActor2.NormalAttack(Vector3.forward, true, false);
  3268.                                 }
  3269.                                 flag2 = true;
  3270.                             }
  3271.                             else if (battleActor2.OnAiBehavior())
  3272.                             {
  3273.                                 flag2 = true;
  3274.                             }
  3275.                         }
  3276.                         else
  3277.                         {
  3278.                             flag = true;
  3279.                         }
  3280.                         if (flag2 || flag)
  3281.                         {
  3282.                             if (!battleActor2.IsTurnFlag(BattleActor.TurnFlagBitType.UpdateTurnBegin))
  3283.                             {
  3284.                                 if (this.CameraManager.CurrentCameraType != BattleCameraManager.CameraType.Action || flag)
  3285.                                 {
  3286.                                     if (this.m_boss)
  3287.                                     {
  3288.                                         this.CameraManager.SetInterpolation(0.5f, CameraSequence.BlendType.Curve, true);
  3289.                                         this.CameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, battleActor2);
  3290.                                         this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  3291.                                     }
  3292.                                     else
  3293.                                     {
  3294.                                         string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  3295.                                         Vector3 position = battleActor2.chara.GetElementIdTransform(name).position;
  3296.                                         Camera component = Mevius.Renderer.CameraManager.GetInstance().GetViewCameraGameObject().GetComponent<Camera>();
  3297.                                         Vector3 vector = component.WorldToViewportPoint(position);
  3298.                                         if (vector.x < 0f || vector.x > 1f || vector.y < 0f || vector.y > 1f || vector.z <= 0f)
  3299.                                         {
  3300.                                             this.CameraManager.SetInterpolation(1f, CameraSequence.BlendType.Curve, true);
  3301.                                             this.CameraManager.InitTwoShot(battleActor2, this.m_playerActor, 0, false);
  3302.                                             this.CameraManager.ChangeCamera(BattleCameraManager.CameraType.TwoShot);
  3303.                                         }
  3304.                                     }
  3305.                                 }
  3306.                                 battleActor2.SetTurnFlag(BattleActor.TurnFlagBitType.UpdateTurnBegin);
  3307.                             }
  3308.                             break;
  3309.                         }
  3310.                     }
  3311.                 }
  3312.             }
  3313.             if (!flag)
  3314.             {
  3315.                 if (flag2)
  3316.                 {
  3317.                     if (this.m_playerActor != null)
  3318.                     {
  3319.                         this.m_playerActor.UpdateActionGuiActive(false);
  3320.                     }
  3321.                     this._step = BattleManager.BattleStep.EnemyTurn;
  3322.                 }
  3323.                 else
  3324.                 {
  3325.                     bool flag3 = true;
  3326.                     bool flag4 = false;
  3327.                     for (int k = 0; k < this.m_actionPriorityEnemyActorList.Count; k++)
  3328.                     {
  3329.                         if (this.m_actorList[k].IsActive() && !this.m_actorList[k].IsNeedNotKill())
  3330.                         {
  3331.                             flag3 = false;
  3332.                             break;
  3333.                         }
  3334.                         if (this.m_actorList[k].IsRewardWait())
  3335.                         {
  3336.                             flag4 = true;
  3337.                         }
  3338.                     }
  3339.                     if (flag3)
  3340.                     {
  3341.                         if (!flag4)
  3342.                         {
  3343.                             this.SetBattleWin(0f);
  3344.                         }
  3345.                     }
  3346.                     else
  3347.                     {
  3348.                         if (Mevius.App.Api.IsPartyMode())
  3349.                         {
  3350.                             this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  3351.                             this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  3352.                         }
  3353.                         else
  3354.                         {
  3355.                             this._step = BattleManager.BattleStep.FairyTurnStart;
  3356.                         }
  3357.                         this.OnEnemyTurnEnd();
  3358.                     }
  3359.                 }
  3360.             }
  3361.         }
  3362.  
  3363.         private void UpdateEnemyTurn()
  3364.         {
  3365.             this.UpdateCamera();
  3366.             this.UpdateTime();
  3367.             BattleActor battleActor = null;
  3368.             bool flag = true;
  3369.             bool flag2 = true;
  3370.             for (int i = 0; i < this.m_actionPriorityEnemyActorList.Count; i++)
  3371.             {
  3372.                 BattleActor battleActor2 = this.m_actionPriorityEnemyActorList[i];
  3373.                 if (battleActor2.IsActive())
  3374.                 {
  3375.                     if (battleActor2.IsPlayer())
  3376.                     {
  3377.                         if (!battleActor2.IsActionEnd() && !battleActor2.IsPlayerInputAccept())
  3378.                         {
  3379.                             battleActor = battleActor2;
  3380.                             flag = false;
  3381.                             break;
  3382.                         }
  3383.                     }
  3384.                     else if (battleActor2.State != BattleActor.StateType.Idle && !battleActor2.IsActionEnd())
  3385.                     {
  3386.                         battleActor = battleActor2;
  3387.                         flag = false;
  3388.                         break;
  3389.                     }
  3390.                     if (battleActor2.ActionNum > 0 || !battleActor2.IsReadyAction())
  3391.                     {
  3392.                         flag2 = false;
  3393.                     }
  3394.                 }
  3395.                 else if (battleActor2.IsDeadWait())
  3396.                 {
  3397.                     flag = false;
  3398.                 }
  3399.             }
  3400.             bool flag3 = battleActor != null && battleActor.IsFlagBit(BattleActor.FlagBitType.AbilityInputWait);
  3401.             if (this.CameraManager.IsActionEnd() && !flag3)
  3402.             {
  3403.                 if (battleActor != null && this.m_cameraManager.CurrentCameraType != BattleCameraManager.CameraType.TargetSelect)
  3404.                 {
  3405.                     float interpSec;
  3406.                     CameraSequence.BlendType blendType;
  3407.                     if (!this.m_cameraManager.GetActionNextInterpInfo(out interpSec, out blendType))
  3408.                     {
  3409.                         interpSec = 0.5f;
  3410.                         blendType = CameraSequence.BlendType.Curve;
  3411.                     }
  3412.                     this.m_cameraManager.SetInterpolation(interpSec, blendType, true);
  3413.                     this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, battleActor);
  3414.                     this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  3415.                 }
  3416.                 else
  3417.                 {
  3418.                     this.ChangeTargetSelectCamera(false);
  3419.                 }
  3420.             }
  3421.             if (flag && !this.m_damageSourceManager.IsExist())
  3422.             {
  3423.                 bool flag4 = false;
  3424.                 if (this.m_playerActor.Hp <= 0 && !Mevius.App.Api.IsPartyMode())
  3425.                 {
  3426.                     if (this.m_playerActor.IsDeadIdle())
  3427.                     {
  3428.                         if (this.m_playerActor.IsSummon())
  3429.                         {
  3430.                             this.ProcChangeJob(false, false);
  3431.                             this._step = BattleManager.BattleStep.PlayerTurnStart;
  3432.                         }
  3433.                         else if (Mevius.Db.Api.IsTutorial() || Mevius.App.Api.IsTrialMode())
  3434.                         {
  3435.                             this.RevivePlayer();
  3436.                             this._step = BattleManager.BattleStep.PlayerTurnStart;
  3437.                         }
  3438.                         else
  3439.                         {
  3440.                             this._step = BattleManager.BattleStep.ContinueCheck;
  3441.                         }
  3442.                         this.OnEnemyTurnEnd();
  3443.                     }
  3444.                     flag4 = true;
  3445.                 }
  3446.                 if (Mevius.App.Api.IsPartyMode())
  3447.                 {
  3448.                     flag4 = true;
  3449.                     bool flag5 = true;
  3450.                     for (int j = 0; j < this.m_multiBattleActorList.Count; j++)
  3451.                     {
  3452.                         if (this.m_multiBattleActorList[j].Hp > 0)
  3453.                         {
  3454.                             flag4 = false;
  3455.                             break;
  3456.                         }
  3457.                         if (!this.m_multiBattleActorList[j].IsDeadIdle())
  3458.                         {
  3459.                             flag5 = false;
  3460.                             break;
  3461.                         }
  3462.                     }
  3463.                     if (flag4 && flag5)
  3464.                     {
  3465.                         this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  3466.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  3467.                         this.OnEnemyTurnEnd();
  3468.                     }
  3469.                 }
  3470.                 if (!flag4)
  3471.                 {
  3472.                     if (!flag2)
  3473.                     {
  3474.                         for (int k = 0; k < this.m_actionPriorityEnemyActorList.Count; k++)
  3475.                         {
  3476.                             BattleActor battleActor3 = this.m_actionPriorityEnemyActorList[k];
  3477.                             if (battleActor3.IsActive())
  3478.                             {
  3479.                                 if (!battleActor3.IsReadyAction())
  3480.                                 {
  3481.                                     battleActor3.ReadyAction();
  3482.                                 }
  3483.                                 if (battleActor3.ActionNum > 0)
  3484.                                 {
  3485.                                     bool flag6 = false;
  3486.                                     bool flag7 = false;
  3487.                                     if (battleActor3.UpdateReadyAction())
  3488.                                     {
  3489.                                         if (battleActor3.IsPlayer())
  3490.                                         {
  3491.                                             if (!battleActor3.AutoAbilityAttack())
  3492.                                             {
  3493.                                                 battleActor3.NormalAttack(Vector3.forward, true, false);
  3494.                                             }
  3495.                                             flag6 = true;
  3496.                                         }
  3497.                                         else if (battleActor3.OnAiBehavior())
  3498.                                         {
  3499.                                             flag6 = true;
  3500.                                         }
  3501.                                     }
  3502.                                     else
  3503.                                     {
  3504.                                         flag7 = true;
  3505.                                     }
  3506.                                     if (flag7 || flag6)
  3507.                                     {
  3508.                                         if (!battleActor3.IsTurnFlag(BattleActor.TurnFlagBitType.UpdateTurnBegin))
  3509.                                         {
  3510.                                             this.SetEnemyCamera(battleActor3);
  3511.                                             battleActor3.SetTurnFlag(BattleActor.TurnFlagBitType.UpdateTurnBegin);
  3512.                                         }
  3513.                                         break;
  3514.                                     }
  3515.                                 }
  3516.                             }
  3517.                         }
  3518.                     }
  3519.                     else
  3520.                     {
  3521.                         bool flag8 = true;
  3522.                         bool flag9 = false;
  3523.                         for (int l = 0; l < this.m_actionPriorityEnemyActorList.Count; l++)
  3524.                         {
  3525.                             BattleActor battleActor4 = this.m_actionPriorityEnemyActorList[l];
  3526.                             if (battleActor4.IsActive() && !battleActor4.IsNeedNotKill())
  3527.                             {
  3528.                                 flag8 = false;
  3529.                                 break;
  3530.                             }
  3531.                             if (battleActor4.IsRewardWait())
  3532.                             {
  3533.                                 flag9 = true;
  3534.                             }
  3535.                         }
  3536.                         if (flag8)
  3537.                         {
  3538.                             if (!flag9)
  3539.                             {
  3540.                                 this.SetBattleWin(0f);
  3541.                             }
  3542.                         }
  3543.                         else
  3544.                         {
  3545.                             if (Mevius.App.Api.IsPartyMode())
  3546.                             {
  3547.                                 this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  3548.                                 this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  3549.                             }
  3550.                             else
  3551.                             {
  3552.                                 this._step = BattleManager.BattleStep.FairyTurnStart;
  3553.                             }
  3554.                             this.OnEnemyTurnEnd();
  3555.                         }
  3556.                     }
  3557.                 }
  3558.                 this.m_autoAttackTimer = 0f;
  3559.             }
  3560.             this.UpdateTest();
  3561.         }
  3562.  
  3563.         private void UpdateCTBStart()
  3564.         {
  3565.             this.m_activeActionOrderTime = 0f;
  3566.             GuiBattleMenu.Instance.TimeLine.ClearIcons(false);
  3567.             this.UpdateCamera();
  3568.             this.UpdateTime();
  3569.             if (this.m_turnNum == 0)
  3570.             {
  3571.                 this.m_turnNum = 1;
  3572.                 for (int i = 0; i < this.m_actorList.Count; i++)
  3573.                 {
  3574.                     BattleActor battleActor = this.m_actorList[i];
  3575.                     if (battleActor != null && battleActor.IsActive())
  3576.                     {
  3577.                         battleActor.OnTurnBegin();
  3578.                     }
  3579.                 }
  3580.             }
  3581.             else
  3582.             {
  3583.                 for (int j = 0; j < this.m_actorList.Count; j++)
  3584.                 {
  3585.                     BattleActor battleActor2 = this.m_actorList[j];
  3586.                     if (battleActor2 != null && battleActor2.IsActive())
  3587.                     {
  3588.                         battleActor2.ReadyAction();
  3589.                         battleActor2.OnTurnBegin();
  3590.                     }
  3591.                 }
  3592.             }
  3593.             this.Step = BattleManager.BattleStep.CTB;
  3594.             this.CreateActionOrderList();
  3595.             this.NextActionOrderActor();
  3596.             this.UpdateTest();
  3597.         }
  3598.  
  3599.         private void UpdateCTB()
  3600.         {
  3601.             if (this.m_activeActionOrderActor.IsPlayer())
  3602.             {
  3603.                 this.UpdatePlayerTurn();
  3604.             }
  3605.             else
  3606.             {
  3607.                 this.UpdateCamera();
  3608.                 this.UpdateTime();
  3609.             }
  3610.             if (!this.m_damageSourceManager.IsExist())
  3611.             {
  3612.                 if (this.m_playerActor.Hp <= 0)
  3613.                 {
  3614.                     if (this.m_playerActor.IsDeadIdle())
  3615.                     {
  3616.                         this.m_playerActor.OnTurnEnd();
  3617.                         this.m_playerActor.OnEnemyTurnEnd();
  3618.                         if (this.m_playerActorSub != null)
  3619.                         {
  3620.                             this.m_playerActorSub.OnTurnEnd();
  3621.                             this.m_playerActorSub.OnEnemyTurnEnd();
  3622.                         }
  3623.                         this._step = BattleManager.BattleStep.ContinueCheck;
  3624.                         BattleManager._i.ChangeActionValue(BattleManager.ChangeActionValueType.ProgressTurn, true);
  3625.                         this.m_turnNum++;
  3626.                         BattleUtility.SetOverMissionCount(MissionCountType.TurnMax, this.m_turnNum);
  3627.                         BattleUtility.AddMissionCount(MissionCountType.TurnTotal, 1);
  3628.                         this.SaveData();
  3629.                     }
  3630.                     return;
  3631.                 }
  3632.                 if (this.m_activeActionOrderActor.IsTimeLineActionEnd())
  3633.                 {
  3634.                     this.m_activeActionOrderActor.OnCTBActionEnd();
  3635.                     if (this.m_activeActionOrderActor.IsEnemy())
  3636.                     {
  3637.                         bool flag = true;
  3638.                         bool flag2 = false;
  3639.                         for (int i = 0; i < this._entryBattleCharaSpecList.Count; i++)
  3640.                         {
  3641.                             string enemyActorName = BattleManager.GetEnemyActorName(i);
  3642.                             BattleActor battleActor = this.FindActor(enemyActorName);
  3643.                             if (battleActor != null)
  3644.                             {
  3645.                                 if (battleActor.IsActive() && !battleActor.IsNeedNotKill())
  3646.                                 {
  3647.                                     flag = false;
  3648.                                     break;
  3649.                                 }
  3650.                                 if (battleActor.IsRewardWait())
  3651.                                 {
  3652.                                     flag2 = true;
  3653.                                 }
  3654.                             }
  3655.                         }
  3656.                         if (flag && !flag2)
  3657.                         {
  3658.                             this.SetBattleWin(0f);
  3659.                             return;
  3660.                         }
  3661.                     }
  3662.                     bool flag3;
  3663.                     this.UpdateZone(out flag3);
  3664.                     if (this.m_activeActionOrderActor.IsActionAbilitySkill5402())
  3665.                     {
  3666.                         GuiBattleMenu.Instance.TimeLine.SyncIcons(this.m_actionOrderList);
  3667.                         this.m_activeActionOrderActor.OnTimeLineActionStart();
  3668.                     }
  3669.                     else if (this.m_actionOrderList.Count <= 0)
  3670.                     {
  3671.                         if (this.m_activeActionOrderActor.IsTurnEnd() || !this.m_activeActionOrderActor.IsActive())
  3672.                         {
  3673.                             this.m_activeActionOrderActor = null;
  3674.                             GuiBattleMenu.Instance.ShowTimeLineEnd();
  3675.                             this.m_playerActor.OnTurnEnd();
  3676.                             this.m_playerActor.OnEnemyTurnEnd();
  3677.                             if (this.m_playerActorSub != null)
  3678.                             {
  3679.                                 this.m_playerActorSub.OnTurnEnd();
  3680.                                 this.m_playerActorSub.OnEnemyTurnEnd();
  3681.                             }
  3682.                             BattleManager._i.ChangeActionValue(BattleManager.ChangeActionValueType.ProgressTurn, true);
  3683.                             this.Step = BattleManager.BattleStep.FairyTurnStart;
  3684.                             this.m_turnNum++;
  3685.                             BattleUtility.SetOverMissionCount(MissionCountType.TurnMax, this.m_turnNum);
  3686.                             BattleUtility.AddMissionCount(MissionCountType.TurnTotal, 1);
  3687.                             this.SaveData();
  3688.                         }
  3689.                     }
  3690.                     else
  3691.                     {
  3692.                         BattleActor battleActor2 = this.m_actionOrderList[0].Actor;
  3693.                         if (battleActor2.IsEnemy() && battleActor2.IsBreak())
  3694.                         {
  3695.                             battleActor2 = this.m_playerActor;
  3696.                         }
  3697.                         if (this.m_activeActionOrderActor == battleActor2 || this.m_activeActionOrderActor.IsEnemy() || this.m_activeActionOrderActor.IsTurnEnd())
  3698.                         {
  3699.                             this.NextActionOrderActor();
  3700.                         }
  3701.                     }
  3702.                 }
  3703.             }
  3704.             if (this.m_actionOrderListCreateFlag)
  3705.             {
  3706.                 this.m_actionOrderListCreateFlag = false;
  3707.                 this.CreateActionOrderList();
  3708.             }
  3709.             this.UpdateTest();
  3710.         }
  3711.  
  3712.         public bool NextActionOrderActor()
  3713.         {
  3714.             if (this.IsCountTimeBattle() && 1 <= this.m_actionOrderList.Count)
  3715.             {
  3716.                 GuiBattleMenu.Instance.TimeLine.SyncIcons(this.m_actionOrderList);
  3717.                 BattleActor activeActionOrderActor = this.m_activeActionOrderActor;
  3718.                 this.m_activeActionOrderActor = null;
  3719.                 this.m_stealActionOrderActor = null;
  3720.                 this.m_activeActionOrderActor = this.m_actionOrderList[0].Actor;
  3721.                 if (this.m_activeActionOrderActor.IsEnemy())
  3722.                 {
  3723.                     if (this.m_activeActionOrderActor.IsBreak())
  3724.                     {
  3725.                         this.m_stealActionOrderActor = this.m_activeActionOrderActor;
  3726.                         this.m_stealActionOrderActor.OnStolen();
  3727.                         this.m_activeActionOrderActor = this.m_playerActor;
  3728.                         this.m_activeActionOrderActor.OnSteal();
  3729.                         Mevius.Gui.Api.SetBattlePlayerActionName("$se001_ac001");
  3730.                         Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, Mevius.Sound.Api.GetSoundResourceName("Resident"), "system_se_steal", 1f, 0, 0, false, -1, 1f);
  3731.                         BattleManager._i.ChangeActionValue(BattleManager.ChangeActionValueType.Steal, true);
  3732.                         BattleUtility.AddMissionCount(MissionCountType.StealCount, 1);
  3733.                         GuiBattleMenu.Instance.TimeLine.SetIconSteal(0);
  3734.                     }
  3735.                     else
  3736.                     {
  3737.                         this.SaveData();
  3738.                     }
  3739.                 }
  3740.                 this.m_activeActionOrderTime = this.m_actionOrderList[0].Time;
  3741.                 this.m_actionOrderList.RemoveAt(0);
  3742.                 if (activeActionOrderActor != this.m_activeActionOrderActor)
  3743.                 {
  3744.                     if (this.m_activeActionOrderActor.IsPlayer())
  3745.                     {
  3746.                         if (GuiBattleMenu.Instance != null)
  3747.                         {
  3748.                             GuiBattleMenu.Instance.EnableMenuButton = true;
  3749.                         }
  3750.                         this.HideBattleEnemyActionName();
  3751.                         Mevius.Gui.Api.SetBattleTargetButtonEnable(true);
  3752.                     }
  3753.                     else
  3754.                     {
  3755.                         Mevius.Gui.Api.SetBattleTargetButtonEnable(false);
  3756.                     }
  3757.                 }
  3758.                 if (this.m_activeActionOrderActor.IsPlayer())
  3759.                 {
  3760.                     if (this.m_targetActor == null || !this.m_targetActor.IsActive())
  3761.                     {
  3762.                         this.UpdateSelectedTarget();
  3763.                         this.ChangeTargetSelectCamera(false);
  3764.                     }
  3765.                     else if (this.m_activeActionOrderActor != activeActionOrderActor)
  3766.                     {
  3767.                         this.ChangeTargetSelectCamera(true);
  3768.                     }
  3769.                 }
  3770.                 else
  3771.                 {
  3772.                     if (this.m_playerActor.State == BattleActor.StateType.Encount || this.m_playerActor.State == BattleActor.StateType.Idle)
  3773.                     {
  3774.                         this.m_playerActor.StartGuard();
  3775.                     }
  3776.                     if (activeActionOrderActor != null && activeActionOrderActor.IsPlayer())
  3777.                     {
  3778.                         this.ChangeTargetSelectCamera(true);
  3779.                     }
  3780.                     this.SetEnemyCamera(this.m_activeActionOrderActor);
  3781.                 }
  3782.                 this.m_activeActionOrderActor.OnTimeLineActionStart();
  3783.                 return true;
  3784.             }
  3785.             return false;
  3786.         }
  3787.  
  3788.         public bool IsActionOrderActorTurnEnd()
  3789.         {
  3790.             if (this.IsSubStrike())
  3791.             {
  3792.                 return false;
  3793.             }
  3794.             if (this.m_activeActionOrderActor != null)
  3795.             {
  3796.                 if (this.m_activeActionOrderActor.IsEnemy())
  3797.                 {
  3798.                     return true;
  3799.                 }
  3800.                 if (this.m_activeActionOrderActor.IsTimeLineActionStart())
  3801.                 {
  3802.                     if (this.m_actionOrderList.Count <= 0)
  3803.                     {
  3804.                         return true;
  3805.                     }
  3806.                     if (this.m_activeActionOrderActor != this.m_actionOrderList[0].Actor && !this.m_actionOrderList[0].Actor.IsBreak())
  3807.                     {
  3808.                         return true;
  3809.                     }
  3810.                 }
  3811.             }
  3812.             return false;
  3813.         }
  3814.  
  3815.         private void UpdateTest()
  3816.         {
  3817.             if (BattleTest._i != null && BattleTest._i.IsExitBattle())
  3818.             {
  3819.                 this._step = BattleManager.BattleStep.Escape;
  3820.             }
  3821.         }
  3822.  
  3823.         public static HashSet<string> GetLoadCharaSpecList(string battleSceneName)
  3824.         {
  3825.             C098a168d3605b12448638cab8ccafe9d.C6a63ba3da59f35f0fee059da0f7321db c6a63ba3da59f35f0fee059da0f7321db = C098a168d3605b12448638cab8ccafe9d.Find(battleSceneName);
  3826.             if (c6a63ba3da59f35f0fee059da0f7321db != null)
  3827.             {
  3828.                 string[] entryBtChSpecIds = new string[]
  3829.                 {
  3830.                     c6a63ba3da59f35f0fee059da0f7321db.m2fd5b5d0d06c450dff7142d5979733e5(),
  3831.                     c6a63ba3da59f35f0fee059da0f7321db.m93a11a07c0e821939010621e4b4e30c8(),
  3832.                     c6a63ba3da59f35f0fee059da0f7321db.mbd2c58964e9a96e4216d06b8c21528e6(),
  3833.                     c6a63ba3da59f35f0fee059da0f7321db.m10d3240ae62c144d7c74f19bd3b619d5(),
  3834.                     c6a63ba3da59f35f0fee059da0f7321db.mdf64d7a7df53a5fef981025bf50c4d37(),
  3835.                     c6a63ba3da59f35f0fee059da0f7321db.m604f6040ea47dc38767da31f04751a7e(),
  3836.                     c6a63ba3da59f35f0fee059da0f7321db.mc734b5fc868261a5590ba6b7600c8143(),
  3837.                     c6a63ba3da59f35f0fee059da0f7321db.m538ad959898836ca9ca7cbe67965ee5b()
  3838.                 };
  3839.                 return BattleManager.GetLoadCharaSpecList(entryBtChSpecIds);
  3840.             }
  3841.             return new HashSet<string>();
  3842.         }
  3843.  
  3844.         public static HashSet<string> GetLoadCharaSpecList(string[] entryBtChSpecIds)
  3845.         {
  3846.             HashSet<string> hashSet = new HashSet<string>();
  3847.             foreach (string text in entryBtChSpecIds)
  3848.             {
  3849.                 if (text.Length > 0)
  3850.                 {
  3851.                     C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b = C4d4f3a800432e94568175cb31ad3c78d.Find(text);
  3852.                     if (c51747b7e0e19ad065084a2c5a6d8421b != null)
  3853.                     {
  3854.                         hashSet.Add(c51747b7e0e19ad065084a2c5a6d8421b.mc17ab063bf174d4fbb31c91f28a5f111());
  3855.                     }
  3856.                 }
  3857.             }
  3858.             return hashSet;
  3859.         }
  3860.  
  3861.         private void _UpdateResource()
  3862.         {
  3863.             switch (this._resourceStep)
  3864.             {
  3865.             case BattleManager.ResourceStep.Init:
  3866.                 Mevius.App.Api.SetActiveBattleActors(false);
  3867.                 this._entryBattleCharaSpecList = new List<string>();
  3868.                 this._actorNameList = new HashSet<string>();
  3869.                 this._resourceStep = BattleManager.ResourceStep.LoadCharaSpec;
  3870.                 break;
  3871.             case BattleManager.ResourceStep.LoadCharaSpec:
  3872.             {
  3873.                 C098a168d3605b12448638cab8ccafe9d.C6a63ba3da59f35f0fee059da0f7321db c6a63ba3da59f35f0fee059da0f7321db = C098a168d3605b12448638cab8ccafe9d.Find(this.currentBattleScene);
  3874.                 if (c6a63ba3da59f35f0fee059da0f7321db != null)
  3875.                 {
  3876.                     string[] array = new string[]
  3877.                     {
  3878.                         c6a63ba3da59f35f0fee059da0f7321db.m2fd5b5d0d06c450dff7142d5979733e5(),
  3879.                         c6a63ba3da59f35f0fee059da0f7321db.m93a11a07c0e821939010621e4b4e30c8(),
  3880.                         c6a63ba3da59f35f0fee059da0f7321db.mbd2c58964e9a96e4216d06b8c21528e6(),
  3881.                         c6a63ba3da59f35f0fee059da0f7321db.m10d3240ae62c144d7c74f19bd3b619d5(),
  3882.                         c6a63ba3da59f35f0fee059da0f7321db.mdf64d7a7df53a5fef981025bf50c4d37(),
  3883.                         c6a63ba3da59f35f0fee059da0f7321db.m604f6040ea47dc38767da31f04751a7e(),
  3884.                         c6a63ba3da59f35f0fee059da0f7321db.mc734b5fc868261a5590ba6b7600c8143(),
  3885.                         c6a63ba3da59f35f0fee059da0f7321db.m538ad959898836ca9ca7cbe67965ee5b()
  3886.                     };
  3887.                     foreach (string text in array)
  3888.                     {
  3889.                         if (text.Length > 0)
  3890.                         {
  3891.                             this._entryBattleCharaSpecList.Add(text);
  3892.                         }
  3893.                     }
  3894.                     this._loadCharaSpecList = BattleManager.GetLoadCharaSpecList(array);
  3895.                     foreach (string name in this._loadCharaSpecList)
  3896.                     {
  3897.                         this.taskid = Mevius.Loader.Api.LoadCharaSpec(name);
  3898.                     }
  3899.                     this.m_placementPlayerDistanceStart = c6a63ba3da59f35f0fee059da0f7321db.m6420242b0837c42c1ad096b6b0ef0c9e();
  3900.                     this.m_placementPlayerDistanceEnd = c6a63ba3da59f35f0fee059da0f7321db.mb640213ed697bd8d174206d6e6162ddc();
  3901.                     this.m_placementEnemyId = c6a63ba3da59f35f0fee059da0f7321db.m80b0f7453b78bb411bfb6f96aff92d47();
  3902.                     if (BattleUtility.IsFF8Gimmick())
  3903.                     {
  3904.                         HashSet<string> hashSet = new HashSet<string>();
  3905.                         DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  3906.                         for (int j = 0; j < battleData.ff8AbilityUniqueIndexes.Length; j++)
  3907.                         {
  3908.                             this.m_ff8LoadAbilityIDs[j] = null;
  3909.                             if (battleData.ff8AbilityUniqueIndexes[j] != 0)
  3910.                             {
  3911.                                 foreach (C4c26d468b97150ce002ae9a639f4ea2a.C1dc494102b702de4447e82ad4b8a1927 c1dc494102b702de4447e82ad4b8a in C4c26d468b97150ce002ae9a639f4ea2a.GetRecords())
  3912.                                 {
  3913.                                     if (battleData.ff8AbilityUniqueIndexes[j] == c1dc494102b702de4447e82ad4b8a.mdabe095dc2209349fd26902efb69aa55())
  3914.                                     {
  3915.                                         this.m_ff8LoadAbilityIDs[j] = c1dc494102b702de4447e82ad4b8a.m3200e7d469baddbd48fb57787ece7fde();
  3916.                                         hashSet.Add(this.m_ff8LoadAbilityIDs[j]);
  3917.                                         break;
  3918.                                     }
  3919.                                 }
  3920.                             }
  3921.                         }
  3922.                         HashSet<string> hashSet2 = new HashSet<string>();
  3923.                         foreach (string text2 in array)
  3924.                         {
  3925.                             C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b = C4d4f3a800432e94568175cb31ad3c78d.Find(text2);
  3926.                             if (c51747b7e0e19ad065084a2c5a6d8421b != null)
  3927.                             {
  3928.                                 hashSet2.Add(text2);
  3929.                                 int num = c51747b7e0e19ad065084a2c5a6d8421b.countm316681f2ec1aeb23e488797acbe9558f();
  3930.                                 for (int l = 0; l < num; l++)
  3931.                                 {
  3932.                                     string text3 = c51747b7e0e19ad065084a2c5a6d8421b.m2ea7d7fba19e1799d48d4ef2bd7d9dd0(l);
  3933.                                     if (string.IsNullOrEmpty(text3))
  3934.                                     {
  3935.                                         break;
  3936.                                     }
  3937.                                     hashSet2.Add(text3);
  3938.                                 }
  3939.                             }
  3940.                         }
  3941.                         foreach (string id in hashSet2)
  3942.                         {
  3943.                             Cdbb9c6c5a1bc4309d61b9b14da7d84d2.C6482043a9b7c9dbdb5036d00c5bc1d8b c6482043a9b7c9dbdb5036d00c5bc1d8b = Cdbb9c6c5a1bc4309d61b9b14da7d84d2.Find(id);
  3944.                             if (c6482043a9b7c9dbdb5036d00c5bc1d8b != null)
  3945.                             {
  3946.                                 C4c26d468b97150ce002ae9a639f4ea2a.C1dc494102b702de4447e82ad4b8a1927 c1dc494102b702de4447e82ad4b8a2 = C4c26d468b97150ce002ae9a639f4ea2a.Find(c6482043a9b7c9dbdb5036d00c5bc1d8b.m336099ebbdf163fa2188c0ac0728b7aa());
  3947.                                 if (c1dc494102b702de4447e82ad4b8a2 != null)
  3948.                                 {
  3949.                                     hashSet.Add(c1dc494102b702de4447e82ad4b8a2.m3200e7d469baddbd48fb57787ece7fde());
  3950.                                 }
  3951.                             }
  3952.                         }
  3953.                         foreach (string abilityId in hashSet)
  3954.                         {
  3955.                             Mevius.Loader.Api.LoadAbility(abilityId);
  3956.                         }
  3957.                     }
  3958.                     if (Mevius.App.Api.IsPartyMode())
  3959.                     {
  3960.                         Mevius.Party.Api.RefreshResource();
  3961.                     }
  3962.                     this._resourceStep = BattleManager.ResourceStep.LoadCharaSpecWait;
  3963.                 }
  3964.                 else
  3965.                 {
  3966.                     this._resourceStep = BattleManager.ResourceStep.End;
  3967.                 }
  3968.                 break;
  3969.             }
  3970.             case BattleManager.ResourceStep.LoadCharaSpecWait:
  3971.                 if (!Mevius.App.Api.IsExistTaskId(this.taskid))
  3972.                 {
  3973.                     if (Mevius.App.Api.IsPartyMode())
  3974.                     {
  3975.                         if (!Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  3976.                         {
  3977.                             break;
  3978.                         }
  3979.                         if (!Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  3980.                         {
  3981.                             break;
  3982.                         }
  3983.                         Mevius.Gui.Api.EndLoadingIcon();
  3984.                     }
  3985.                     this._resourceStep = BattleManager.ResourceStep.CreateActor;
  3986.                 }
  3987.                 break;
  3988.             case BattleManager.ResourceStep.CreateActor:
  3989.                 this._resourceStep = BattleManager.ResourceStep.CreateActorWait;
  3990.                 break;
  3991.             case BattleManager.ResourceStep.CreateActorWait:
  3992.                 this._resourceStep = BattleManager.ResourceStep.EndRequestWait;
  3993.                 break;
  3994.             case BattleManager.ResourceStep.RemoveActor:
  3995.                 if (BattleUtility.IsFF8Gimmick())
  3996.                 {
  3997.                     HashSet<string> hashSet3 = new HashSet<string>();
  3998.                     for (int m = 0; m < this.m_ff8LoadAbilityIDs.Length; m++)
  3999.                     {
  4000.                         if (!string.IsNullOrEmpty(this.m_ff8LoadAbilityIDs[m]))
  4001.                         {
  4002.                             hashSet3.Add(this.m_ff8LoadAbilityIDs[m]);
  4003.                         }
  4004.                     }
  4005.                     HashSet<string> hashSet4 = new HashSet<string>();
  4006.                     foreach (string text4 in this._entryBattleCharaSpecList)
  4007.                     {
  4008.                         C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b2 = C4d4f3a800432e94568175cb31ad3c78d.Find(text4);
  4009.                         if (c51747b7e0e19ad065084a2c5a6d8421b2 != null)
  4010.                         {
  4011.                             hashSet4.Add(text4);
  4012.                             int num2 = c51747b7e0e19ad065084a2c5a6d8421b2.countm316681f2ec1aeb23e488797acbe9558f();
  4013.                             for (int n = 0; n < num2; n++)
  4014.                             {
  4015.                                 string text5 = c51747b7e0e19ad065084a2c5a6d8421b2.m2ea7d7fba19e1799d48d4ef2bd7d9dd0(n);
  4016.                                 if (string.IsNullOrEmpty(text5))
  4017.                                 {
  4018.                                     break;
  4019.                                 }
  4020.                                 hashSet4.Add(text5);
  4021.                             }
  4022.                         }
  4023.                     }
  4024.                     foreach (string id2 in hashSet4)
  4025.                     {
  4026.                         Cdbb9c6c5a1bc4309d61b9b14da7d84d2.C6482043a9b7c9dbdb5036d00c5bc1d8b c6482043a9b7c9dbdb5036d00c5bc1d8b2 = Cdbb9c6c5a1bc4309d61b9b14da7d84d2.Find(id2);
  4027.                         if (c6482043a9b7c9dbdb5036d00c5bc1d8b2 != null)
  4028.                         {
  4029.                             C4c26d468b97150ce002ae9a639f4ea2a.C1dc494102b702de4447e82ad4b8a1927 c1dc494102b702de4447e82ad4b8a3 = C4c26d468b97150ce002ae9a639f4ea2a.Find(c6482043a9b7c9dbdb5036d00c5bc1d8b2.m336099ebbdf163fa2188c0ac0728b7aa());
  4030.                             if (c1dc494102b702de4447e82ad4b8a3 != null)
  4031.                             {
  4032.                                 hashSet3.Add(c1dc494102b702de4447e82ad4b8a3.m3200e7d469baddbd48fb57787ece7fde());
  4033.                             }
  4034.                         }
  4035.                     }
  4036.                     foreach (string abilityId2 in hashSet3)
  4037.                     {
  4038.                         Mevius.Loader.Api.UnLoadAbility(abilityId2);
  4039.                     }
  4040.                 }
  4041.                 for (int num3 = 0; num3 < this._entryBattleCharaSpecList.Count; num3++)
  4042.                 {
  4043.                     string enemyActorName = BattleManager.GetEnemyActorName(num3);
  4044.                     Mevius.App.Api.RemoveCharaInstanceCommand(enemyActorName, new GameInstanceManager.RemoveInstanceArg
  4045.                     {
  4046.                         callback = new GameInstanceManager.CreateInstanceCallBack(AppManager._i.appActorManager.delegateRemoveActor),
  4047.                         callbacktag = null
  4048.                     });
  4049.                 }
  4050.                 Mevius.Db.Api.RemoveSubPartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  4051.                 Mevius.Db.Api.RemovePartyResource(DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  4052.                 if (Mevius.App.Api.IsPartyMode())
  4053.                 {
  4054.                     foreach (Mevius.Party.Api.PARTY_MEMBER_TYPE party_MEMBER_TYPE in Mevius.Party.Api.GetPartyType())
  4055.                     {
  4056.                         if (party_MEMBER_TYPE != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME && party_MEMBER_TYPE != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY)
  4057.                         {
  4058.                             Mevius.Db.Api.RemovePartyResource(party_MEMBER_TYPE, DbPartyManager.DbPartyTypes.DbPartyTypes_BATTLE);
  4059.                         }
  4060.                     }
  4061.                 }
  4062.                 this._resourceStep = BattleManager.ResourceStep.RemoveActorWait;
  4063.                 break;
  4064.             case BattleManager.ResourceStep.RemoveActorWait:
  4065.             {
  4066.                 bool flag = true;
  4067.                 for (int num5 = 0; num5 < this._entryBattleCharaSpecList.Count; num5++)
  4068.                 {
  4069.                     string enemyActorName2 = BattleManager.GetEnemyActorName(num5);
  4070.                     if (Mevius.App.Api.FindChrGameObject(enemyActorName2))
  4071.                     {
  4072.                         flag = false;
  4073.                     }
  4074.                 }
  4075.                 if (!Mevius.Db.Api.IsPartyStatusNone(DbPartyManager.DbPartyTypes.DbPartyTypes_NONE))
  4076.                 {
  4077.                     flag = false;
  4078.                 }
  4079.                 if (Mevius.App.Api.IsPartyMode() && (!Mevius.Db.Api.IsPartyStatusNone(Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_NPC1) || !Mevius.Db.Api.IsPartyStatusNone(Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_NPC2) || !Mevius.Db.Api.IsPartyStatusNone(Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_NPC3)))
  4080.                 {
  4081.                     flag = false;
  4082.                 }
  4083.                 if (flag)
  4084.                 {
  4085.                     this._resourceStep = BattleManager.ResourceStep.UnloadCharaSpec;
  4086.                 }
  4087.                 break;
  4088.             }
  4089.             case BattleManager.ResourceStep.UnloadCharaSpec:
  4090.                 if (this._loadCharaSpecList != null)
  4091.                 {
  4092.                     foreach (string name2 in this._loadCharaSpecList)
  4093.                     {
  4094.                         this.charaspecUnloadTaskId = Mevius.Loader.Api.UnLoadCharaSpec(name2);
  4095.                     }
  4096.                 }
  4097.                 if (Mevius.App.Api.IsPartyMode())
  4098.                 {
  4099.                 }
  4100.                 this._resourceStep = BattleManager.ResourceStep.UnloadCharaSpecWait;
  4101.                 break;
  4102.             case BattleManager.ResourceStep.UnloadCharaSpecWait:
  4103.                 if (!Mevius.App.Api.IsExistTaskId(this.charaspecUnloadTaskId))
  4104.                 {
  4105.                     this._resourceStep = BattleManager.ResourceStep.End;
  4106.                 }
  4107.                 break;
  4108.             case BattleManager.ResourceStep.End:
  4109.                 this._entryBattleCharaSpecList = null;
  4110.                 this._loadCharaSpecList = null;
  4111.                 this._actorNameList = null;
  4112.                 Mevius.App.Api.RemoveTaskId(this.resourceUnloadTaskId);
  4113.                 this.resourceUnloadTaskId = 0u;
  4114.                 this._resourceStep = BattleManager.ResourceStep.None;
  4115.                 break;
  4116.             }
  4117.         }
  4118.  
  4119.         public void RequestEscape()
  4120.         {
  4121.             if (BattleUtility.IsDQGimmick())
  4122.             {
  4123.                 Ce9a57996ed2aff549552eb8b4069e830.Ce67b34e0f86dcbb14f8a71b2a412a8e1 ce67b34e0f86dcbb14f8a71b2a412a8e = Ce9a57996ed2aff549552eb8b4069e830.Find(Mevius.Db.Api.GetRegionName());
  4124.                 if (ce67b34e0f86dcbb14f8a71b2a412a8e != null)
  4125.                 {
  4126.                     string soundResourceName = Mevius.Sound.Api.GetSoundResourceName(ce67b34e0f86dcbb14f8a71b2a412a8e.m08f3332c454ec6ddc95dc8807d6e9d2e());
  4127.                     Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "46_Joutyu_SE_[036]escape", 1f, 0, 0, Vector3.zero, null, false, -1, 0, 1f);
  4128.                 }
  4129.             }
  4130.             if (Mevius.App.Api.IsPartyMode())
  4131.             {
  4132.                 Mevius.Party.Api.SetExitBattle();
  4133.             }
  4134.             else
  4135.             {
  4136.                 this._step = BattleManager.BattleStep.Escape;
  4137.             }
  4138.         }
  4139.  
  4140.         public void UpdateEscapeCheck()
  4141.         {
  4142.             int num = Mevius.Gui.Util.CheckMessageBox(ref this.m_MsgHandle, "$msg_title_017", "$btl_msg_01", GuiMessageBox.Buttons.FromText, GuiMessageBox.Skin.Default, true, GuiMessageBox.DefaultFromTextButtonSE, Mevius.Gui.Constants.SoundEffectKind.system_se_window_in, false);
  4143.             if (num == -1)
  4144.             {
  4145.                 return;
  4146.             }
  4147.             int num2 = num;
  4148.             if (num2 != 0)
  4149.             {
  4150.                 if (num2 == 1)
  4151.                 {
  4152.                     this._step = BattleManager.BattleStep.PlayerTurn;
  4153.                 }
  4154.             }
  4155.             else if (Mevius.App.Api.IsPartyMode())
  4156.             {
  4157.                 Mevius.Party.Api.SetExitBattle();
  4158.                 this._step = BattleManager.BattleStep.PlayerTurn;
  4159.             }
  4160.             else
  4161.             {
  4162.                 this._step = BattleManager.BattleStep.Escape;
  4163.             }
  4164.         }
  4165.  
  4166.         public void EndBattle()
  4167.         {
  4168.             Mevius.Gui.Api.RemoveBattleTouchAreaEvent(new GuiBattleMenu.TouchAreaEventHandler(this.TouchAreaEvent));
  4169.             this.ClearCurrentTarget();
  4170.             this.m_battleSlow.End();
  4171.             DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  4172.             if (!Mevius.App.Api.IsPartyMode())
  4173.             {
  4174.                 for (int i = 0; i < battleData.manaElements.Length; i++)
  4175.                 {
  4176.                     battleData.manaElements[i] = -1;
  4177.                 }
  4178.                 BattleActor battleActor = this.m_playerActor;
  4179.                 if (this.IsCountTimeBattle() && battleActor.IsSubActionSub())
  4180.                 {
  4181.                     battleActor = this.m_playerActorSub;
  4182.                 }
  4183.                 if (battleActor != null)
  4184.                 {
  4185.                     battleActor.OnBattleEnd();
  4186.                     Array.Clear(battleData.statusEffectIds, 0, battleData.statusEffectIds.Length);
  4187.                     Array.Clear(battleData.statusEffectTurns, 0, battleData.statusEffectTurns.Length);
  4188.                     Array.Clear(battleData.statusEffectStates, 0, battleData.statusEffectStates.Length);
  4189.                     Array.Clear(battleData.statusEffectParams, 0, battleData.statusEffectParams.Length);
  4190.                     Array.Clear(battleData.statusEffectIds2, 0, battleData.statusEffectIds2.Length);
  4191.                     Array.Clear(battleData.statusEffectTurns2, 0, battleData.statusEffectTurns2.Length);
  4192.                     Array.Clear(battleData.statusEffectStates2, 0, battleData.statusEffectStates2.Length);
  4193.                     Array.Clear(battleData.statusEffectParams2, 0, battleData.statusEffectParams2.Length);
  4194.                     int[,] statusEffectEntries = battleActor.GetStatusEffectEntries();
  4195.                     int length = statusEffectEntries.GetLength(0);
  4196.                     int num = Math.Min(length, 16);
  4197.                     for (int j = 0; j < num; j++)
  4198.                     {
  4199.                         battleData.statusEffectIds[j] = statusEffectEntries[j, 0];
  4200.                         battleData.statusEffectTurns[j] = (sbyte)statusEffectEntries[j, 1];
  4201.                         battleData.statusEffectStates[j] = (byte)statusEffectEntries[j, 2];
  4202.                         battleData.statusEffectParams[j] = statusEffectEntries[j, 3];
  4203.                     }
  4204.                     if (16 < length)
  4205.                     {
  4206.                         num = length - 16;
  4207.                         for (int k = 0; k < num; k++)
  4208.                         {
  4209.                             int num2 = 16 + k;
  4210.                             battleData.statusEffectIds2[k] = statusEffectEntries[num2, 0];
  4211.                             battleData.statusEffectTurns2[k] = (sbyte)statusEffectEntries[num2, 1];
  4212.                             battleData.statusEffectStates2[k] = (byte)statusEffectEntries[num2, 2];
  4213.                             battleData.statusEffectParams2[k] = statusEffectEntries[num2, 3];
  4214.                         }
  4215.                     }
  4216.                     battleActor.ElementalGauge.GetOriginalValues().CopyTo(battleData.elementalGauge, 0);
  4217.                     battleActor.ManaElements.CopyTo(battleData.manaElements, 0);
  4218.                     battleData.abilityUseSuportCount = battleActor.AbilityUseSuportCount;
  4219.                 }
  4220.                 BattleActor battleActor2 = this.FindActor(BattleManager.GetBattlePlayerName());
  4221.                 if (battleActor2 != null)
  4222.                 {
  4223.                     Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Hp, battleActor2.Hp);
  4224.                     Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Ability_Point, battleActor2.ManaUseNum);
  4225.                     BattleActor.CardAbilityInfo[] cardAbilityInfos = battleActor2.CardAbilityInfos;
  4226.                     for (int l = 0; l < cardAbilityInfos.Length; l++)
  4227.                     {
  4228.                         battleData.cardAbilityChargeTurns[l] = (sbyte)cardAbilityInfos[l].chargeTurn;
  4229.                         battleData.cardAbilityUseCounts[l] = (ushort)cardAbilityInfos[l].useCount;
  4230.                         battleData.cardAbilityTurnUseCounts[l] = 0;
  4231.                     }
  4232.                     for (int m = 0; m < battleActor2.DQAbilityChargeTurns.Length; m++)
  4233.                     {
  4234.                         battleData.playerDqAbilityChargeTurns[0, m] = battleActor2.DQAbilityChargeTurns[m];
  4235.                     }
  4236.                     for (int n = 0; n < battleActor2.RevengeDamages.Length; n++)
  4237.                     {
  4238.                         battleData.playerRevengeDamages[0, n] = battleActor2.RevengeDamages[n];
  4239.                     }
  4240.                 }
  4241.                 BattleActor battleActor3 = this.FindActor(BattleManager.GetBattlePlayerSubName());
  4242.                 if (battleActor3 != null)
  4243.                 {
  4244.                     Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Hp_Sub, battleActor3.Hp);
  4245.                     Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Ability_Point_Sub, battleActor3.ManaUseNum);
  4246.                     BattleActor.CardAbilityInfo[] cardAbilityInfos = battleActor3.CardAbilityInfos;
  4247.                     for (int num3 = 0; num3 < cardAbilityInfos.Length; num3++)
  4248.                     {
  4249.                         battleData.subCardAbilityChargeTurns[num3] = (sbyte)cardAbilityInfos[num3].chargeTurn;
  4250.                         battleData.subCardAbilityUseCounts[num3] = (ushort)cardAbilityInfos[num3].useCount;
  4251.                         battleData.subCardAbilityTurnUseCounts[num3] = 0;
  4252.                     }
  4253.                     for (int num4 = 0; num4 < battleActor3.DQAbilityChargeTurns.Length; num4++)
  4254.                     {
  4255.                         battleData.playerDqAbilityChargeTurns[1, num4] = battleActor3.DQAbilityChargeTurns[num4];
  4256.                     }
  4257.                     for (int num5 = 0; num5 < battleActor3.RevengeDamages.Length; num5++)
  4258.                     {
  4259.                         battleData.playerRevengeDamages[1, num5] = battleActor3.RevengeDamages[num5];
  4260.                     }
  4261.                 }
  4262.                 if (battleActor2 != null && battleActor3 != null)
  4263.                 {
  4264.                     if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  4265.                     {
  4266.                         float num6 = (float)battleActor3.ManaUseNum / (float)battleActor3.JobAbilityUseManaUseNum;
  4267.                         battleActor2.ManaUseNum = (int)((float)battleActor2.JobAbilityUseManaUseNum * num6 + 0.5f);
  4268.                         Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Ability_Point, battleActor2.ManaUseNum);
  4269.                     }
  4270.                     else
  4271.                     {
  4272.                         float num7 = (float)battleActor2.ManaUseNum / (float)battleActor2.JobAbilityUseManaUseNum;
  4273.                         battleActor3.ManaUseNum = (int)((float)battleActor3.JobAbilityUseManaUseNum * num7 + 0.5f);
  4274.                         Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Ability_Point_Sub, battleActor3.ManaUseNum);
  4275.                     }
  4276.                 }
  4277.                 battleData.playerJobChangeChargeTurn = this.m_playerJobChangeChargeTurn;
  4278.                 battleData.actionGauge = (ushort)this.m_actionGauge;
  4279.                 battleData.actionGaugeDecrease = (ushort)this.m_actionGaugeDecrease;
  4280.                 battleData.actionPower = this.m_actionPower;
  4281.                 Array.Clear(battleData.manaAttributeUseNum, 0, battleData.manaAttributeUseNum.Length);
  4282.                 this.m_ff7AbilityUseCounts.CopyTo(battleData.ff7AbilityUseCounts, 0);
  4283.                 if (BattleUtility.IsFF8Gimmick())
  4284.                 {
  4285.                     for (int num8 = 0; num8 < this.FF8DrawAbility.Length; num8++)
  4286.                     {
  4287.                         battleData.ff8AbilityUniqueIndexes[num8] = this.FF8DrawAbility[num8].id;
  4288.                         battleData.ff8AbilityCounts[num8] = (byte)this.FF8DrawAbility[num8].remainingCount;
  4289.                     }
  4290.                 }
  4291.             }
  4292.             else
  4293.             {
  4294.                 DbManager.MultiBattleData multiBattleData = Mevius.Db.Api.GetMultiBattleData();
  4295.                 if (multiBattleData != null)
  4296.                 {
  4297.                     multiBattleData.enemyEscapeActionIndex.CopyTo(battleData.enemyEscapeActionIndex, 0);
  4298.                     multiBattleData.enemyEscapeActionIndex.CopyTo(PartyManager._i.current_data.battle_data.enemyEscapeActionIndex, 0);
  4299.                     for (int num9 = 0; num9 < multiBattleData.enemyEscapeCharaFlags.GetLength(0); num9++)
  4300.                     {
  4301.                         for (int num10 = 0; num10 < multiBattleData.enemyEscapeCharaFlags.GetLength(1); num10++)
  4302.                         {
  4303.                             battleData.enemyEscapeCharaFlags[num9, num10] = multiBattleData.enemyEscapeCharaFlags[num9, num10];
  4304.                             PartyManager._i.current_data.battle_data.enemyEscapeCharaFlags[num9, num10] = multiBattleData.enemyEscapeCharaFlags[num9, num10];
  4305.                         }
  4306.                     }
  4307.                     for (int num11 = 0; num11 < this.m_multiBattleActorList.Count; num11++)
  4308.                     {
  4309.                         if (this.m_multiBattleActorList[num11].PartyMemberType == Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  4310.                         {
  4311.                             int partySlot = this.m_multiBattleActorList[num11].PartySlot;
  4312.                             multiBattleData.abilityUseSuportCounts[partySlot] = this.m_multiBattleActorList[num11].AbilityUseSuportCount;
  4313.                             for (int num12 = 0; num12 < battleData.cardAbilityUseCounts.Length; num12++)
  4314.                             {
  4315.                                 battleData.cardAbilityUseCounts[num12] = multiBattleData.cardAbilityUseCounts[partySlot, num12];
  4316.                                 battleData.cardAbilityTurnUseCounts[num12] = 0;
  4317.                                 PartyManager._i.current_data.battle_data.cardAbilityUseCounts[partySlot, num12] = multiBattleData.cardAbilityUseCounts[partySlot, num12];
  4318.                             }
  4319.                             break;
  4320.                         }
  4321.                     }
  4322.                 }
  4323.             }
  4324.             BattleUtility.SetOverMissionCount(MissionCountType.TurnMax, this.m_turnNum);
  4325.             this.m_missionCounts.CopyTo(battleData.missionCount, 0);
  4326.             this.m_bossMissionCounts.CopyTo(battleData.bossMissionCount, 0);
  4327.             this.m_saveLongValues.CopyTo(battleData.saveLongValues, 0);
  4328.             this.m_bossSaveLongValues.CopyTo(battleData.bossSaveLongValues, 0);
  4329.             this.m_actionPriorityEnemyActorList.Clear();
  4330.             this.m_partyMemberTurn = false;
  4331.             this.m_selfActor = null;
  4332.             this.m_multiBattleActorList.Clear();
  4333.             this.m_multiBattleCurrentOrder = 0;
  4334.             this.m_multiBattleTurnLimitTime = 0UL;
  4335.             this.m_multiBattleTurnStartTime = 0UL;
  4336.             if (this.m_multiBattleActorCursorHandle != null)
  4337.             {
  4338.                 Mevius.Effect.Api.SetEffectLoopOff(this.m_multiBattleActorCursorHandle);
  4339.             }
  4340.             this.m_randCount = 0;
  4341.             this.m_damageRandCount = 0;
  4342.             this.m_movementRandCount = 0;
  4343.             Mevius.App.Api.SetTimeScale(1f);
  4344.             this.m_damageSourceManager.Clear();
  4345.             this.m_manaObjectManager.Clear();
  4346.             UnityEngine.Object.Destroy(this.m_rootObject);
  4347.             Physics.IgnoreLayerCollision(LayerMask.NameToLayer("Phy Bg"), LayerMask.NameToLayer("Phy Character"), false);
  4348.             this.m_isMultiFinishCamera = false;
  4349.             if (BgmManager._i.BgmEffectOn)
  4350.             {
  4351.                 BgmManager._i.SetBgmEffect(false, 1000);
  4352.             }
  4353.             Mevius.Sound.Api.StopSound(this.m_zoneSoundHandle, 1000);
  4354.             this.m_zoneSoundHandle = 0;
  4355.             this.m_dqSameNameDictionary = null;
  4356.         }
  4357.  
  4358.         public BattleManager.BattleStep Step
  4359.         {
  4360.             set
  4361.             {
  4362.                 this._step = value;
  4363.             }
  4364.         }
  4365.  
  4366.         private void SetRandomSeed(bool init = false)
  4367.         {
  4368.             uint num;
  4369.             if (Mevius.App.Api.IsPartyMode() && init)
  4370.             {
  4371.                 num = Mevius.Party.Api.GetInitSeed();
  4372.             }
  4373.             else
  4374.             {
  4375.                 num = (uint)DateTime.Now.Ticks + (uint)Environment.TickCount;
  4376.             }
  4377.             this.m_rand.SetSeed(num);
  4378.             this.m_playerDamageRand.SetSeed(num);
  4379.             this.m_playerMovementRand.SetSeed(num);
  4380.             if (Mevius.App.Api.IsPartyMode())
  4381.             {
  4382.                 DbManager.MultiBattleData multiBattleData = Mevius.Db.Api.GetMultiBattleData();
  4383.                 multiBattleData.randSeed = num;
  4384.             }
  4385.             else
  4386.             {
  4387.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  4388.                 battleData.randSeed = num;
  4389.             }
  4390.         }
  4391.  
  4392.         public void ResetPlayerDamageRandomSeed()
  4393.         {
  4394.             if (!Mevius.App.Api.IsPartyMode())
  4395.             {
  4396.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  4397.                 this.m_playerDamageRand.SetSeed(battleData.randSeed);
  4398.                 this.m_damageRandCount = 0;
  4399.             }
  4400.         }
  4401.  
  4402.         public void SaveData()
  4403.         {
  4404.             if (Mevius.Db.Api.IsTutorial() || this._step >= BattleManager.BattleStep.ResultReady)
  4405.             {
  4406.                 return;
  4407.             }
  4408.             if (!Mevius.App.Api.IsPartyMode())
  4409.             {
  4410.                 this.SaveSingleData();
  4411.             }
  4412.         }
  4413.  
  4414.         private void SaveSingleData()
  4415.         {
  4416.             Mevius.Db.Api.SetHasBattleData(true);
  4417.             DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  4418.             this.SetRandomSeed(false);
  4419.             battleData.version = BattleManager.SaveDataVersion;
  4420.             battleData.step = (int)this._step;
  4421.             battleData.turnNum = this.m_turnNum;
  4422.             battleData.chainNum = this.m_chainNum;
  4423.             battleData.breakNum = this.m_breakNum;
  4424.             battleData.deadNum = this.m_deadNum;
  4425.             battleData.playerHp = this.m_playerActor.Hp;
  4426.             if (this.m_playerActorSub != null)
  4427.             {
  4428.                 battleData.playerSubHp = this.m_playerActorSub.Hp;
  4429.             }
  4430.             battleData.playerActionNum = (byte)this.m_playerActor.ActionNum;
  4431.             battleData.playerActionType = (byte)this.m_playerActor.PlayerActionType;
  4432.             battleData.playerNormalAttackNum = (byte)this.m_playerActor.NormalAttackNum;
  4433.             battleData.playerAreaState = (byte)this.m_playerActor.AreaState;
  4434.             battleData.playerPosX = this.m_playerActor.chara.transform.position.x;
  4435.             battleData.playerPosZ = this.m_playerActor.chara.transform.position.z;
  4436.             battleData.playerRot = this.m_playerActor.chara.transform.localEulerAngles.y;
  4437.             if (this.m_playerActor.PrevUseCardAbilityAttribute != ElementAttributeType.None)
  4438.             {
  4439.                 battleData.prevUseCardAbilityAttributeBit = (ushort)(1 << (int)this.m_playerActor.PrevUseCardAbilityAttribute);
  4440.             }
  4441.             else
  4442.             {
  4443.                 battleData.prevUseCardAbilityAttributeBit = 0;
  4444.             }
  4445.             if (this.m_playerActor.TargetActor != null)
  4446.             {
  4447.                 battleData.playerTargetIndex = (sbyte)this.m_playerActor.TargetActor.EnemyIndex;
  4448.                 this.m_playerActor.PinchAutoAbilityFlags.CopyTo(battleData.autoAbilityPinchFlags, 0);
  4449.             }
  4450.             else
  4451.             {
  4452.                 battleData.playerTargetIndex = -1;
  4453.             }
  4454.             Array.Clear(battleData.statusEffectIds, 0, battleData.statusEffectIds.Length);
  4455.             Array.Clear(battleData.statusEffectTurns, 0, battleData.statusEffectTurns.Length);
  4456.             Array.Clear(battleData.statusEffectStates, 0, battleData.statusEffectStates.Length);
  4457.             Array.Clear(battleData.statusEffectParams, 0, battleData.statusEffectParams.Length);
  4458.             Array.Clear(battleData.statusEffectIds2, 0, battleData.statusEffectIds2.Length);
  4459.             Array.Clear(battleData.statusEffectTurns2, 0, battleData.statusEffectTurns2.Length);
  4460.             Array.Clear(battleData.statusEffectStates2, 0, battleData.statusEffectStates2.Length);
  4461.             Array.Clear(battleData.statusEffectParams2, 0, battleData.statusEffectParams2.Length);
  4462.             int[,] statusEffectEntries = this.m_playerActor.GetStatusEffectEntries();
  4463.             int length = statusEffectEntries.GetLength(0);
  4464.             int num = Math.Min(length, 16);
  4465.             for (int i = 0; i < num; i++)
  4466.             {
  4467.                 battleData.statusEffectIds[i] = statusEffectEntries[i, 0];
  4468.                 battleData.statusEffectTurns[i] = (sbyte)statusEffectEntries[i, 1];
  4469.                 battleData.statusEffectStates[i] = (byte)statusEffectEntries[i, 2];
  4470.                 battleData.statusEffectParams[i] = statusEffectEntries[i, 3];
  4471.             }
  4472.             if (16 < length)
  4473.             {
  4474.                 num = length - 16;
  4475.                 for (int j = 0; j < num; j++)
  4476.                 {
  4477.                     int num2 = 16 + j;
  4478.                     battleData.statusEffectIds2[j] = statusEffectEntries[num2, 0];
  4479.                     battleData.statusEffectTurns2[j] = (sbyte)statusEffectEntries[num2, 1];
  4480.                     battleData.statusEffectStates2[j] = (byte)statusEffectEntries[num2, 2];
  4481.                     battleData.statusEffectParams2[j] = statusEffectEntries[num2, 3];
  4482.                 }
  4483.             }
  4484.             this.m_playerActor.ElementalGauge.GetOriginalValues().CopyTo(battleData.elementalGauge, 0);
  4485.             BattleActor battleActor = this.FindActor(BattleManager.GetBattlePlayerName());
  4486.             Array.Clear(battleData.cardAbilityChargeTurns, 0, battleData.cardAbilityChargeTurns.Length);
  4487.             Array.Clear(battleData.cardAbilityUseCounts, 0, battleData.cardAbilityUseCounts.Length);
  4488.             if (battleActor != null)
  4489.             {
  4490.                 BattleActor.CardAbilityInfo[] cardAbilityInfos = battleActor.CardAbilityInfos;
  4491.                 for (int k = 0; k < cardAbilityInfos.Length; k++)
  4492.                 {
  4493.                     battleData.cardAbilityChargeTurns[k] = (sbyte)cardAbilityInfos[k].chargeTurn;
  4494.                     battleData.cardAbilityUseCounts[k] = (ushort)cardAbilityInfos[k].useCount;
  4495.                     battleData.cardAbilityTurnUseCounts[k] = cardAbilityInfos[k].turnUseCount;
  4496.                 }
  4497.                 Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Ability_Point, battleActor.ManaUseNum);
  4498.                 for (int l = 0; l < 3; l++)
  4499.                 {
  4500.                     battleData.playerDqAbilityChargeTurns[0, l] = battleActor.DQAbilityChargeTurns[l];
  4501.                 }
  4502.                 int num3 = 0;
  4503.                 while (num3 < battleActor.ActionTimeList.Count && num3 < 32)
  4504.                 {
  4505.                     battleData.playerActionTime[num3] = battleActor.ActionTimeList[num3];
  4506.                     num3++;
  4507.                 }
  4508.                 for (int m = 0; m < 3; m++)
  4509.                 {
  4510.                     battleData.playerRevengeDamages[0, m] = battleActor.RevengeDamages[m];
  4511.                 }
  4512.                 battleData.playerSuccessiveActionNum = battleActor.SuccessiveActionNum;
  4513.             }
  4514.             Array.Clear(battleData.enemyStatusEffectIds, 0, battleData.enemyStatusEffectIds.Length);
  4515.             Array.Clear(battleData.enemyStatusEffectTurns, 0, battleData.enemyStatusEffectTurns.Length);
  4516.             Array.Clear(battleData.enemyStatusEffectStates, 0, battleData.enemyStatusEffectStates.Length);
  4517.             Array.Clear(battleData.enemyStatusEffectParams, 0, battleData.enemyStatusEffectParams.Length);
  4518.             for (int n = 0; n < this._entryBattleCharaSpecList.Count; n++)
  4519.             {
  4520.                 string enemyActorName = BattleManager.GetEnemyActorName(n);
  4521.                 BattleActor battleActor2 = this.FindActor(enemyActorName);
  4522.                 if (battleActor2 != null)
  4523.                 {
  4524.                     battleData.enemyYRots[n] = battleActor2.chara.transform.localEulerAngles.y;
  4525.                     battleData.enemyHps[n] = battleActor2.Hp;
  4526.                     battleData.enemyBps[n] = battleActor2.Bp;
  4527.                     battleData.enemyBpArmorDamages[n] = battleActor2.BpArmorDamage;
  4528.                     battleData.enemyBreakCounts[n] = (byte)battleActor2.BreakCount;
  4529.                     if (battleActor2.Ai != null)
  4530.                     {
  4531.                         for (int num4 = 0; num4 < 8; num4++)
  4532.                         {
  4533.                             battleData.enemyAiCounters[n, num4] = battleActor2.Ai.Counters[num4];
  4534.                         }
  4535.                         for (int num5 = 0; num5 < 8; num5++)
  4536.                         {
  4537.                             battleData.enemyAiCounters2[n, num5] = battleActor2.Ai.Counters[8 + num5];
  4538.                         }
  4539.                         battleData.enemyAiFlags[n] = battleActor2.Ai.Flag;
  4540.                         battleData.enemyAiSpCounters[n] = battleActor2.Ai.SpCounter;
  4541.                         battleData.enemyAiTakeDamageBit[n] = battleActor2.Ai.TakeDamageBit;
  4542.                         battleData.enemyAiTakeDamageAttributeBit[n] = battleActor2.Ai.TakeDamageAttributeBit;
  4543.                     }
  4544.                     battleData.enemyAttributeBit[n] = battleActor2.ElementAttributeBit;
  4545.                     battleData.enemyUnknownAttribute[n] = battleActor2.UnknownAttribute;
  4546.                     battleData.enemyAbsorbAttributeBit[n] = battleActor2.AbsorbAttributeBit;
  4547.                     battleData.enemyChangeBtCharaSpecId[n] = battleActor2.ChangeBtCharaSpecId;
  4548.                     int[,] statusEffectEntries2 = battleActor2.GetStatusEffectEntries();
  4549.                     int length2 = statusEffectEntries2.GetLength(0);
  4550.                     int num6 = Math.Min(length2, 16);
  4551.                     for (int num7 = 0; num7 < num6; num7++)
  4552.                     {
  4553.                         battleData.enemyStatusEffectIds[n, num7] = statusEffectEntries2[num7, 0];
  4554.                         battleData.enemyStatusEffectTurns[n, num7] = (sbyte)statusEffectEntries2[num7, 1];
  4555.                         battleData.enemyStatusEffectStates[n, num7] = (byte)statusEffectEntries2[num7, 2];
  4556.                         battleData.enemyStatusEffectParams[n, num7] = statusEffectEntries2[num7, 3];
  4557.                     }
  4558.                     if (16 < length2)
  4559.                     {
  4560.                         num6 = length2 - 16;
  4561.                         for (int num8 = 0; num8 < num6; num8++)
  4562.                         {
  4563.                             int num9 = 16 + num8;
  4564.                             battleData.enemyStatusEffectIds2[n, num8] = statusEffectEntries2[num9, 0];
  4565.                             battleData.enemyStatusEffectTurns2[n, num8] = (sbyte)statusEffectEntries2[num9, 1];
  4566.                             battleData.enemyStatusEffectStates2[n, num8] = (byte)statusEffectEntries2[num9, 2];
  4567.                             battleData.enemyStatusEffectParams2[n, num8] = statusEffectEntries2[num9, 3];
  4568.                         }
  4569.                     }
  4570.                     byte[] debuffInvalidCounts = battleActor2.DebuffInvalidCounts;
  4571.                     for (int num10 = 0; num10 < debuffInvalidCounts.Length; num10++)
  4572.                     {
  4573.                         battleData.enemyDebuffInvalidCounts[n, num10] = debuffInvalidCounts[num10];
  4574.                     }
  4575.                     battleData.enemyVisibleGroupNodeBits[n] = battleActor2.VisibleGroupNodeBits;
  4576.                     battleData.enemySaveFlagBits[n] = (uint)battleActor2.SaveFlagBits;
  4577.                     battleData.enemyHpLimitIndexs[n] = battleActor2.HpLimitIndex;
  4578.                     battleData.enemySameNameIndexes[n] = battleActor2.SameCharaIndex;
  4579.                     battleData.enemyHpLimitMotionIndexes[n] = battleActor2.HpLimitMotionIndex;
  4580.                     battleData.enemyDamagedActorIndexBits[n] = battleActor2.EnemyDamagedActorIndexBit;
  4581.                     battleData.enemyHpGaugeFixRates[n] = battleActor2.EnemyHpGaugeFixRate;
  4582.                     battleData.enemyActionNum[n] = (byte)battleActor2.ActionNum;
  4583.                     int count = battleActor2.ActionTimeList.Count;
  4584.                     if (0 < count)
  4585.                     {
  4586.                         battleData.enemyActionTimeStart[n] = battleActor2.ActionTimeList[0];
  4587.                         if (1 < count)
  4588.                         {
  4589.                             battleData.enemyActionTimeInterval[n] = battleActor2.ActionTimeInterval;
  4590.                         }
  4591.                     }
  4592.                     battleData.enemyActionNumMax[n] = (byte)battleActor2.ActionNumMax;
  4593.                     battleData.ff8EnemyDraweds[n] = ((!battleActor2.FF8EnemyDrawed) ? 0 : 1);
  4594.                 }
  4595.             }
  4596.             for (int num11 = 0; num11 < battleData.manaElements.Length; num11++)
  4597.             {
  4598.                 battleData.manaElements[num11] = -1;
  4599.             }
  4600.             this.m_playerActor.ManaElements.CopyTo(battleData.manaElements, 0);
  4601.             battleData.playerNormalAttackCombo = this.m_playerActor.NormalAttackCombo;
  4602.             battleData.abilityUseSuportCount = this.m_playerActor.AbilityUseSuportCount;
  4603.             this.m_enemyAiCommonCounters.CopyTo(battleData.enemyAiCommonCounters, 0);
  4604.             battleData.playerJobChangeChargeTurn = this.m_playerJobChangeChargeTurn;
  4605.             battleData.playerJobChangeThroughTurn = this.m_playerJobChangeThroughTurn;
  4606.             BattleActor battleActor3 = this.FindActor(BattleManager.GetBattlePlayerSubName());
  4607.             if (battleActor3 != null)
  4608.             {
  4609.                 BattleActor.CardAbilityInfo[] cardAbilityInfos2 = battleActor3.CardAbilityInfos;
  4610.                 for (int num12 = 0; num12 < cardAbilityInfos2.Length; num12++)
  4611.                 {
  4612.                     battleData.subCardAbilityChargeTurns[num12] = (sbyte)cardAbilityInfos2[num12].chargeTurn;
  4613.                     battleData.subCardAbilityUseCounts[num12] = (ushort)cardAbilityInfos2[num12].useCount;
  4614.                     battleData.subCardAbilityTurnUseCounts[num12] = cardAbilityInfos2[num12].turnUseCount;
  4615.                 }
  4616.                 Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Ability_Point_Sub, battleActor3.ManaUseNum);
  4617.                 for (int num13 = 0; num13 < 3; num13++)
  4618.                 {
  4619.                     battleData.playerDqAbilityChargeTurns[1, num13] = battleActor3.DQAbilityChargeTurns[num13];
  4620.                 }
  4621.                 for (int num14 = 0; num14 < 3; num14++)
  4622.                 {
  4623.                     battleData.playerRevengeDamages[1, num14] = battleActor3.RevengeDamages[num14];
  4624.                 }
  4625.             }
  4626.             battleData.fairyHour = this.m_fairyHour;
  4627.             battleData.optimaType = (sbyte)this.m_optimaType;
  4628.             this.m_optimaUseCounts.CopyTo(battleData.optimaUseCounts, 0);
  4629.             this.m_missionCounts.CopyTo(battleData.missionCount, 0);
  4630.             this.m_bossMissionCounts.CopyTo(battleData.bossMissionCount, 0);
  4631.             this.m_saveLongValues.CopyTo(battleData.saveLongValues, 0);
  4632.             this.m_bossSaveLongValues.CopyTo(battleData.bossSaveLongValues, 0);
  4633.             this.m_ff7AbilityUseCounts.CopyTo(battleData.ff7AbilityUseCounts, 0);
  4634.             battleData.actionGauge = (ushort)this.m_actionGauge;
  4635.             battleData.actionGaugeDecrease = (ushort)this.m_actionGaugeDecrease;
  4636.             battleData.actionPower = this.m_actionPower;
  4637.             battleData.isZone = ((!this.m_zone) ? 0 : 1);
  4638.             if (this.m_stealActionOrderActor != null)
  4639.             {
  4640.                 battleData.ctbStealIndex = (sbyte)this.m_stealActionOrderActor.EnemyIndex;
  4641.             }
  4642.             else
  4643.             {
  4644.                 battleData.ctbStealIndex = -1;
  4645.             }
  4646.             battleData.enemyActionEndFlag = this.m_enemyActionEndFlag;
  4647.             if (BattleUtility.IsFF8Gimmick())
  4648.             {
  4649.                 for (int num15 = 0; num15 < this.FF8DrawAbility.Length; num15++)
  4650.                 {
  4651.                     battleData.ff8AbilityUniqueIndexes[num15] = this.FF8DrawAbility[num15].id;
  4652.                     battleData.ff8AbilityCounts[num15] = (byte)this.FF8DrawAbility[num15].remainingCount;
  4653.                 }
  4654.             }
  4655.             battleData.playerAbilityCombo = this.m_playerActor.AbilityCombo;
  4656.             this.m_playerActor.ManaAttributeUseNum.CopyTo(battleData.manaAttributeUseNum, 0);
  4657.             Mevius.App.Api.AddAsyncCommand(new AsyncCommandManager.AsyncCommandCallBack(DbManager.execClientSaveData), false);
  4658.         }
  4659.  
  4660.         public void LoadData()
  4661.         {
  4662.             DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  4663.             if (battleData.version == 0)
  4664.             {
  4665.                 if (battleData.step == 40)
  4666.                 {
  4667.                     battleData.step = 14;
  4668.                 }
  4669.                 else if (battleData.step >= 13)
  4670.                 {
  4671.                     battleData.step += 2;
  4672.                 }
  4673.                 else if (battleData.step >= 12)
  4674.                 {
  4675.                     battleData.step++;
  4676.                 }
  4677.                 battleData.version = 1;
  4678.             }
  4679.             if (battleData.version == 1)
  4680.             {
  4681.                 if (battleData.step >= 6)
  4682.                 {
  4683.                     battleData.step++;
  4684.                 }
  4685.                 battleData.version = 2;
  4686.             }
  4687.             if (battleData.version == 2)
  4688.             {
  4689.                 if (battleData.step >= 34)
  4690.                 {
  4691.                     battleData.step += 3;
  4692.                 }
  4693.                 else if (battleData.step >= 21)
  4694.                 {
  4695.                     battleData.step += 2;
  4696.                 }
  4697.                 battleData.version = 3;
  4698.             }
  4699.             this._step = (BattleManager.BattleStep)battleData.step;
  4700.             this.m_rand.SetSeed(battleData.randSeed);
  4701.             this.m_playerDamageRand.SetSeed(battleData.randSeed);
  4702.             this.m_playerMovementRand.SetSeed(battleData.randSeed);
  4703.             this.m_turnNum = battleData.turnNum;
  4704.             this.m_chainNum = battleData.chainNum;
  4705.             this.m_breakNum = battleData.breakNum;
  4706.             this.m_deadNum = battleData.deadNum;
  4707.             this.m_playerJobChangeChargeTurn = battleData.playerJobChangeChargeTurn;
  4708.             this.m_playerJobChangeThroughTurn = battleData.playerJobChangeThroughTurn;
  4709.             this.m_fairyHour = battleData.fairyHour;
  4710.             if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  4711.             {
  4712.                 this.ProcChangeJob(true, false);
  4713.             }
  4714.             this.m_playerActor.SetPinchAutoAbilityFlags(battleData.autoAbilityPinchFlags);
  4715.             this.m_playerActor.SetHp(battleData.playerHp, false, false);
  4716.             if (this.m_playerActorSub != null)
  4717.             {
  4718.                 this.m_playerActorSub.SetHp(battleData.playerSubHp, false, false);
  4719.             }
  4720.             this.m_playerActor.ActionNum = (int)battleData.playerActionNum;
  4721.             this.m_playerActor.NormalAttackNum = (int)battleData.playerNormalAttackNum;
  4722.             this.m_playerActor.AreaState = (BattleActor.AreaStateType)battleData.playerAreaState;
  4723.             Mevius.Gui.Api.SetBattlePlayerAttackCount((int)battleData.playerActionNum, GuiBattlePlayerTurnEffect.None);
  4724.             this.m_playerActor.PlayerActionType = (PlayerActionType)battleData.playerActionType;
  4725.             if ((int)battleData.prevUseCardAbilityIndex != -1)
  4726.             {
  4727.                 battleData.prevUseCardAbilityAttributeBit = (ushort)(1 << this.m_playerActor.CardAbilityInfos[(int)battleData.prevUseCardAbilityIndex].displayCosts[0]);
  4728.                 battleData.prevUseCardAbilityIndex = -1;
  4729.             }
  4730.             for (int i = 0; i < 7; i++)
  4731.             {
  4732.                 if (((int)battleData.prevUseCardAbilityAttributeBit & 1 << i) != 0)
  4733.                 {
  4734.                     this.m_playerActor.PrevUseCardAbilityAttribute = (ElementAttributeType)i;
  4735.                     break;
  4736.                 }
  4737.             }
  4738.             string enemyActorName = BattleManager.GetEnemyActorName((int)battleData.playerTargetIndex);
  4739.             BattleActor targetActor = this.FindActor(enemyActorName);
  4740.             this.m_targetActor = targetActor;
  4741.             this.m_playerActor.TargetActor = targetActor;
  4742.             bool flag = false;
  4743.             Vector3 vector = new Vector3(battleData.playerPosX, 0f, battleData.playerPosZ);
  4744.             if (this.ChaosBattle)
  4745.             {
  4746.                 float num = (!(this.m_playerActor.chara.GetCharacterControllerComponent() != null)) ? 2f : this.m_playerActor.chara.GetCharacterControllerComponent().height;
  4747.                 RaycastHit raycastHit;
  4748.                 if (!Physics.Raycast(vector + Vector3.up * num * 0.5f, Vector3.down, out raycastHit, num, 1 << LayerMask.NameToLayer("Phy Bg")))
  4749.                 {
  4750.                     flag = true;
  4751.                 }
  4752.             }
  4753.             if (!flag)
  4754.             {
  4755.                 this.m_playerActor.chara.transform.position = vector;
  4756.                 this.m_playerActor.chara.transform.localEulerAngles = new Vector3(0f, battleData.playerRot, 0f);
  4757.             }
  4758.             this.m_playerActor.NormalAttackCombo = battleData.playerNormalAttackCombo;
  4759.             this.m_playerActor.SuccessiveActionNum = battleData.playerSuccessiveActionNum;
  4760.             this.m_playerActor.AbilityCombo = battleData.playerAbilityCombo;
  4761.             this.m_playerActor.AbilityUseSuportCount = battleData.abilityUseSuportCount;
  4762.             battleData.manaAttributeUseNum.CopyTo(this.m_playerActor.ManaAttributeUseNum, 0);
  4763.             if (this.IsCountTimeBattle())
  4764.             {
  4765.                 this.m_playerActor.CreateActionTimeList(battleData.playerActionTime);
  4766.             }
  4767.             int num2 = -1;
  4768.             int actionIndex = Mevius.Zone.Api.GetActionIndex();
  4769.             for (int j = 0; j < battleData.enemyEscapeActionIndex.Length; j++)
  4770.             {
  4771.                 if (battleData.enemyEscapeActionIndex[j] == actionIndex)
  4772.                 {
  4773.                     num2 = j;
  4774.                     break;
  4775.                 }
  4776.             }
  4777.             for (int k = 0; k < this._entryBattleCharaSpecList.Count; k++)
  4778.             {
  4779.                 string enemyActorName2 = BattleManager.GetEnemyActorName(k);
  4780.                 BattleActor battleActor = this.FindActor(enemyActorName2);
  4781.                 if (battleActor != null)
  4782.                 {
  4783.                     if (!flag)
  4784.                     {
  4785.                         battleActor.chara.transform.localEulerAngles = new Vector3(0f, battleData.enemyYRots[k], 0f);
  4786.                     }
  4787.                     battleActor.SetHp(battleData.enemyHps[k], false, false);
  4788.                     battleActor.Bp = battleData.enemyBps[k];
  4789.                     battleActor.BreakCount = (int)battleData.enemyBreakCounts[k];
  4790.                     battleActor.BpArmorDamage = battleData.enemyBpArmorDamages[k];
  4791.                     if (battleActor.Ai != null)
  4792.                     {
  4793.                         for (int l = 0; l < 8; l++)
  4794.                         {
  4795.                             battleActor.Ai.Counters[l] = battleData.enemyAiCounters[k, l];
  4796.                         }
  4797.                         for (int m = 0; m < 8; m++)
  4798.                         {
  4799.                             battleActor.Ai.Counters[8 + m] = battleData.enemyAiCounters2[k, m];
  4800.                         }
  4801.                         battleActor.Ai.Flag = battleData.enemyAiFlags[k];
  4802.                         battleActor.Ai.SpCounter = battleData.enemyAiSpCounters[k];
  4803.                         battleActor.Ai.TakeDamageBit = battleData.enemyAiTakeDamageBit[k];
  4804.                         battleActor.Ai.TakeDamageAttributeBit = battleData.enemyAiTakeDamageAttributeBit[k];
  4805.                     }
  4806.                     if (battleData.version <= 2)
  4807.                     {
  4808.                         if (battleData.enemyAttributeBit[k] != 0)
  4809.                         {
  4810.                             battleActor.ElementAttributeBit = battleData.enemyAttributeBit[k];
  4811.                         }
  4812.                         if (battleData.enemyChangeAttributeBit[k] != 0)
  4813.                         {
  4814.                             battleActor.ElementAttributeBit = battleData.enemyChangeAttributeBit[k];
  4815.                         }
  4816.                     }
  4817.                     else
  4818.                     {
  4819.                         battleActor.ElementAttributeBit = battleData.enemyAttributeBit[k];
  4820.                     }
  4821.                     if (battleData.enemyAbsorbAttributeBit[k] != 0)
  4822.                     {
  4823.                         battleActor.AbsorbAttributeBit = battleData.enemyAbsorbAttributeBit[k];
  4824.                     }
  4825.                     battleActor.UnknownAttribute = battleData.enemyUnknownAttribute[k];
  4826.                     battleActor.SetChangeBtCharaSpecId(battleData.enemyChangeBtCharaSpecId[k], false);
  4827.                     List<int[]> list = new List<int[]>();
  4828.                     for (int n = 0; n < battleData.enemyStatusEffectIds.GetLength(1); n++)
  4829.                     {
  4830.                         if (battleData.enemyStatusEffectIds[k, n] != 0)
  4831.                         {
  4832.                             list.Add(new int[]
  4833.                             {
  4834.                                 battleData.enemyStatusEffectIds[k, n],
  4835.                                 (int)battleData.enemyStatusEffectTurns[k, n],
  4836.                                 (int)battleData.enemyStatusEffectStates[k, n],
  4837.                                 battleData.enemyStatusEffectParams[k, n]
  4838.                             });
  4839.                         }
  4840.                     }
  4841.                     for (int num3 = 0; num3 < battleData.enemyStatusEffectIds2.GetLength(1); num3++)
  4842.                     {
  4843.                         if (battleData.enemyStatusEffectIds2[k, num3] != 0)
  4844.                         {
  4845.                             list.Add(new int[]
  4846.                             {
  4847.                                 battleData.enemyStatusEffectIds2[k, num3],
  4848.                                 (int)battleData.enemyStatusEffectTurns2[k, num3],
  4849.                                 (int)battleData.enemyStatusEffectStates2[k, num3],
  4850.                                 battleData.enemyStatusEffectParams2[k, num3]
  4851.                             });
  4852.                         }
  4853.                     }
  4854.                     battleActor.SetStatusEffectEntries(list.ToArray());
  4855.                     for (int num4 = 0; num4 < battleData.enemyDebuffInvalidCounts.GetLength(1); num4++)
  4856.                     {
  4857.                         battleActor.SetDebuffInvalidCount(num4, battleData.enemyDebuffInvalidCounts[k, num4]);
  4858.                     }
  4859.                     if (battleActor.IsVisibleGroupNodeBp())
  4860.                     {
  4861.                         battleActor.VisibleGroupNodeBits = battleData.enemyVisibleGroupNodeBits[k];
  4862.                         battleActor.chara.SetVisibleGroupNode(battleActor.VisibleGroupNodeBits);
  4863.                     }
  4864.                     battleActor.SaveFlagBits = (BattleActor.SaveFlagBitType)battleData.enemySaveFlagBits[k];
  4865.                     battleActor.HpLimitIndex = battleData.enemyHpLimitIndexs[k];
  4866.                     battleActor.SameCharaIndex = battleData.enemySameNameIndexes[k];
  4867.                     battleActor.HpLimitMotionIndex = battleData.enemyHpLimitMotionIndexes[k];
  4868.                     battleActor.EnemyDamagedActorIndexBit = battleData.enemyDamagedActorIndexBits[k];
  4869.                     battleActor.EnemyHpGaugeFixRate = battleData.enemyHpGaugeFixRates[k];
  4870.                     battleActor.ActionNumMax = (int)battleData.enemyActionNumMax[k];
  4871.                     if (this.IsCountTimeBattle())
  4872.                     {
  4873.                         battleActor.CreateActionTimeList((int)battleData.enemyActionNum[k], battleData.enemyActionTimeStart[k], battleData.enemyActionTimeInterval[k]);
  4874.                     }
  4875.                     battleActor.FF8EnemyDrawed = (battleData.ff8EnemyDraweds[k] != 0);
  4876.                     bool escape = false;
  4877.                     if (num2 != -1 && battleData.enemyEscapeCharaFlags[num2, k])
  4878.                     {
  4879.                         escape = true;
  4880.                     }
  4881.                     battleActor.OnRestore(this._step, escape, true, true);
  4882.                 }
  4883.             }
  4884.             battleData.enemyAiCommonCounters.CopyTo(this.m_enemyAiCommonCounters, 0);
  4885.             this.m_enemyActionEndFlag = battleData.enemyActionEndFlag;
  4886.             this.m_optimaType = (OptimaType)battleData.optimaType;
  4887.             battleData.optimaUseCounts.CopyTo(this.m_optimaUseCounts, 0);
  4888.             battleData.ff7AbilityUseCounts.CopyTo(this.m_ff7AbilityUseCounts, 0);
  4889.             this.LoadFF8Data();
  4890.             if (this.IsCountTimeBattle())
  4891.             {
  4892.                 this.m_zone = (battleData.isZone != 0);
  4893.                 if (this.m_zone)
  4894.                 {
  4895.                     string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  4896.                     this.m_zoneSoundHandle = Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_mzone_loop", 1f, 0, 0, false, -1, 1f);
  4897.                 }
  4898.                 GuiBattleMenu.Instance.IsZone = this.m_zone;
  4899.                 this.CreateActionOrderList();
  4900.                 this.NextActionOrderActor();
  4901.                 string enemyActorName3 = BattleManager.GetEnemyActorName((int)battleData.ctbStealIndex);
  4902.                 this.m_stealActionOrderActor = this.FindActor(enemyActorName3);
  4903.                 if (this.m_stealActionOrderActor != null)
  4904.                 {
  4905.                     GuiBattleMenu.Instance.TimeLine.SetIconSteal(0);
  4906.                 }
  4907.             }
  4908.             this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, this.m_playerActor.TargetActor);
  4909.             this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  4910.             this.UpdateCameraEntry();
  4911.             this.m_playerActor.OnRestore(this._step, false, true, true);
  4912.             if (this.m_playerActorSub != null && this.m_playerActorSub.IsSummon())
  4913.             {
  4914.                 this.m_playerActorSub.OnRestoreSummon();
  4915.             }
  4916.             this.InitSameCharaIndex();
  4917.             this.ProcManToMan();
  4918.         }
  4919.  
  4920.         public void LoadFF8Data()
  4921.         {
  4922.             if (BattleUtility.IsFF8Gimmick())
  4923.             {
  4924.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  4925.                 for (int i = 0; i < this.FF8DrawAbility.Length; i++)
  4926.                 {
  4927.                     this.FF8DrawAbility[i].id = battleData.ff8AbilityUniqueIndexes[i];
  4928.                     foreach (C4c26d468b97150ce002ae9a639f4ea2a.C1dc494102b702de4447e82ad4b8a1927 c1dc494102b702de4447e82ad4b8a in C4c26d468b97150ce002ae9a639f4ea2a.GetRecords())
  4929.                     {
  4930.                         if (this.FF8DrawAbility[i].id == c1dc494102b702de4447e82ad4b8a.mdabe095dc2209349fd26902efb69aa55())
  4931.                         {
  4932.                             this.FF8DrawAbility[i].Datasheet = c1dc494102b702de4447e82ad4b8a;
  4933.                             break;
  4934.                         }
  4935.                     }
  4936.                     this.FF8DrawAbility[i].remainingCount = (int)battleData.ff8AbilityCounts[i];
  4937.                 }
  4938.             }
  4939.         }
  4940.  
  4941.         public void AddActor(BattleActor btActor)
  4942.         {
  4943.             if (Mevius.App.Api.IsPartyMode())
  4944.             {
  4945.                 int[] partyType = Mevius.Party.Api.GetPartyType();
  4946.                 int count = this.m_actorList.Count;
  4947.                 for (int i = 0; i < count; i++)
  4948.                 {
  4949.                     if (btActor.IsPlayer())
  4950.                     {
  4951.                         if (this.m_actorList[i].IsPlayer() && btActor.PartySlot < this.m_actorList[i].PartySlot)
  4952.                         {
  4953.                             this.m_actorList.Insert(i, btActor);
  4954.                             return;
  4955.                         }
  4956.                     }
  4957.                     else if (this.m_actorList[i].IsPlayer())
  4958.                     {
  4959.                         this.m_actorList.Insert(i, btActor);
  4960.                         return;
  4961.                     }
  4962.                 }
  4963.                 this.m_actorList.Add(btActor);
  4964.             }
  4965.             else
  4966.             {
  4967.                 this.m_actorList.Add(btActor);
  4968.             }
  4969.         }
  4970.  
  4971.         public void RemoveActor(BattleActor btActor)
  4972.         {
  4973.             this.m_actorList.Remove(btActor);
  4974.         }
  4975.  
  4976.         public BattleActor FindActor(string name)
  4977.         {
  4978.             for (int i = 0; i < this.m_actorList.Count; i++)
  4979.             {
  4980.                 if (this.m_actorList[i].chara.Name == name)
  4981.                 {
  4982.                     return this.m_actorList[i];
  4983.                 }
  4984.             }
  4985.             return null;
  4986.         }
  4987.  
  4988.         public BattleActor FindActor(uint actorIndexBit)
  4989.         {
  4990.             if ((actorIndexBit & 4278190080u) != 0u)
  4991.             {
  4992.                 for (int i = 0; i < this.m_actorList.Count; i++)
  4993.                 {
  4994.                     if (this.m_actorList[i].IsPlayer())
  4995.                     {
  4996.                         uint num = 1u << this.m_actorList[i].PartySlot + 24;
  4997.                         if ((actorIndexBit & num) != 0u)
  4998.                         {
  4999.                             return this.m_actorList[i];
  5000.                         }
  5001.                     }
  5002.                 }
  5003.             }
  5004.             else if ((actorIndexBit & 16777215u) != 0u)
  5005.             {
  5006.                 for (int j = 0; j < this.m_actorList.Count; j++)
  5007.                 {
  5008.                     if (this.m_actorList[j].IsEnemy())
  5009.                     {
  5010.                         uint num2 = 1u << this.m_actorList[j].EnemyIndex;
  5011.                         if ((actorIndexBit & num2) != 0u)
  5012.                         {
  5013.                             return this.m_actorList[j];
  5014.                         }
  5015.                     }
  5016.                 }
  5017.             }
  5018.             return null;
  5019.         }
  5020.  
  5021.         public BattleActor GetPlayerActor()
  5022.         {
  5023.             return this.m_playerActor;
  5024.         }
  5025.  
  5026.         public BattleActor GetPlayerActorSub()
  5027.         {
  5028.             return this.m_playerActorSub;
  5029.         }
  5030.  
  5031.         public bool GetPlayerHp(out int hp, out int maxHp)
  5032.         {
  5033.             hp = 0;
  5034.             maxHp = 0;
  5035.             if (this.m_playerActor != null)
  5036.             {
  5037.                 hp = this.m_playerActor.Hp;
  5038.                 maxHp = this.m_playerActor.HpMax;
  5039.                 return true;
  5040.             }
  5041.             return false;
  5042.         }
  5043.  
  5044.         public void UseNormalAttack()
  5045.         {
  5046.             if (this.m_playerActor != null)
  5047.             {
  5048.                 if (Mevius.App.Api.IsPartyMode())
  5049.                 {
  5050.                     if (this._step == BattleManager.BattleStep.MultiBattleInput && this.m_playerActor.IsPlayerInputAccept())
  5051.                     {
  5052.                         this.m_playerActor.NormalAttack(Vector3.forward, true, false);
  5053.                     }
  5054.                 }
  5055.                 else if (this.IsPlayerTurn() && this.m_playerActor.IsPlayerInputAccept())
  5056.                 {
  5057.                     this.m_playerActor.NormalAttack(Vector3.forward, true, false);
  5058.                 }
  5059.             }
  5060.         }
  5061.  
  5062.         public void UseJobAbility()
  5063.         {
  5064.             if (this.m_playerActor != null)
  5065.             {
  5066.                 if (Mevius.App.Api.IsPartyMode())
  5067.                 {
  5068.                     if (this._step == BattleManager.BattleStep.MultiBattleInput)
  5069.                     {
  5070.                         this.m_playerActor.UseJobAbility(true, false);
  5071.                     }
  5072.                 }
  5073.                 else if (this.IsPlayerTurn())
  5074.                 {
  5075.                     if (this.IsZone())
  5076.                     {
  5077.                         this.m_playerActor.UseSubAction(true);
  5078.                     }
  5079.                     else
  5080.                     {
  5081.                         this.m_playerActor.UseJobAbility(true, false);
  5082.                     }
  5083.                 }
  5084.             }
  5085.         }
  5086.  
  5087.         public void UseCardAbility(int index)
  5088.         {
  5089.             if (this.m_playerActor != null)
  5090.             {
  5091.                 if (Mevius.App.Api.IsPartyMode())
  5092.                 {
  5093.                     if (this._step == BattleManager.BattleStep.MultiBattleInput)
  5094.                     {
  5095.                         this.m_playerActor.UseCardAbility(index, true, false);
  5096.                     }
  5097.                 }
  5098.                 else if (this.IsPlayerTurn())
  5099.                 {
  5100.                     this.m_playerActor.UseCardAbility(index, true, false);
  5101.                 }
  5102.             }
  5103.         }
  5104.  
  5105.         public void UseDrawAbility(int index)
  5106.         {
  5107.             if (this.m_playerActor != null && !Mevius.App.Api.IsPartyMode() && this.IsPlayerTurn() && BattleUtility.IsFF8Gimmick())
  5108.             {
  5109.                 if (index == 0)
  5110.                 {
  5111.                     this.m_playerActor.RequestUseFF8Draw();
  5112.                 }
  5113.                 else if (index == 1)
  5114.                 {
  5115.                     this.m_playerActor.RequestUseFF8Ability(0);
  5116.                 }
  5117.                 else if (index == 2)
  5118.                 {
  5119.                     this.m_playerActor.RequestUseFF8Ability(1);
  5120.                 }
  5121.                 else if (index == 3)
  5122.                 {
  5123.                     this.m_playerActor.RequestUseFF8Ability(2);
  5124.                 }
  5125.                 else
  5126.                 {
  5127.                     this.m_playerActor.UseCardAbility(index, true, false);
  5128.                 }
  5129.             }
  5130.         }
  5131.  
  5132.         public void UseRecast(ElementAttributeType elementAttr)
  5133.         {
  5134.             if (this.m_playerActor != null)
  5135.             {
  5136.                 if (Mevius.App.Api.IsPartyMode())
  5137.                 {
  5138.                     if (this._step == BattleManager.BattleStep.MultiBattleInput)
  5139.                     {
  5140.                         this.m_playerActor.UseRecast(elementAttr, true, false);
  5141.                     }
  5142.                 }
  5143.                 else if (this.IsPlayerTurn())
  5144.                 {
  5145.                     this.m_playerActor.UseRecast(elementAttr, true, false);
  5146.                 }
  5147.             }
  5148.         }
  5149.  
  5150.         public void UseJobChange()
  5151.         {
  5152.             if (this.m_playerActor != null && this.IsPlayerTurn())
  5153.             {
  5154.                 this.m_playerActor.UseJobChange();
  5155.             }
  5156.         }
  5157.  
  5158.         public bool EnableJobChange()
  5159.         {
  5160.             return this.IsPlayerTurn() && this.m_playerActor != null && this.m_playerActor.IsPlayerInput() && this.CanJobChange();
  5161.         }
  5162.  
  5163.         public bool CanJobChange()
  5164.         {
  5165.             if (this.IsCountTimeBattle())
  5166.             {
  5167.                 return this.m_jobChangeActionGauge <= this.m_actionGauge || this.IsZone();
  5168.             }
  5169.             return (!this.m_playerActorSub.IsSummon() || !this.m_playerActorSub.IsDead()) && BattleManager._i.PlayerJobChangeChargeTurn == 0;
  5170.         }
  5171.  
  5172.         public void UseOptimaChange(int optimaType)
  5173.         {
  5174.             if (this.m_playerActor != null && this.IsPlayerTurn())
  5175.             {
  5176.                 this.m_playerActor.UseOptimaChange(optimaType);
  5177.             }
  5178.         }
  5179.  
  5180.         public BattleCameraManager CameraManager
  5181.         {
  5182.             get
  5183.             {
  5184.                 return this.m_cameraManager;
  5185.             }
  5186.         }
  5187.  
  5188.         public void CreateDamageSource(string id, BattleActor owner, BattleActor target, Vector3 parentDamageSourcePos, BattleDamageSource parentDamageSource = null, bool bind = false, bool multi = false, bool origin = false)
  5189.         {
  5190.             if (owner != null)
  5191.             {
  5192.                 owner.SetAbsorbEffectLoopOff();
  5193.             }
  5194.             this.m_damageSourceManager.CreateDamageSource(id, owner, target, parentDamageSourcePos, parentDamageSource, bind, multi, origin);
  5195.         }
  5196.  
  5197.         public void CreateMana(BattleActor actor, Vector3 pos, int num = 1, bool hitMove = false, int almightyProb = 0, int multiNum = 0)
  5198.         {
  5199.             this.CreateMana(actor, pos, ElementAttributeType.None, num, hitMove, almightyProb, multiNum, false);
  5200.         }
  5201.  
  5202.         public void CreateMana(BattleActor actor, Vector3 pos, ElementAttributeType attribute, int num = 1, bool hitMove = false, int almightyProb = 0, int multiNum = 0, bool checkElementalGaugeStatusEffect = false)
  5203.         {
  5204.             int num2 = 0;
  5205.             if (Mevius.App.Api.IsPartyMode())
  5206.             {
  5207.                 BattleActor selfActor = this.GetSelfActor();
  5208.                 if (multiNum != 0)
  5209.                 {
  5210.                     for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  5211.                     {
  5212.                         bool flag = BattleUtility.IsUseAttribute(this.m_multiBattleActorList[i], attribute, checkElementalGaugeStatusEffect);
  5213.                         int almightyProb2 = 0;
  5214.                         int num3 = multiNum;
  5215.                         if (actor == this.m_multiBattleActorList[i])
  5216.                         {
  5217.                             almightyProb2 = almightyProb;
  5218.                             num3 = num;
  5219.                         }
  5220.                         for (int j = 0; j < num3; j++)
  5221.                         {
  5222.                             ElementAttributeType elementAttributeType;
  5223.                             if (flag)
  5224.                             {
  5225.                                 elementAttributeType = this.m_multiBattleActorList[i].CreateMana(pos, attribute, hitMove, almightyProb2);
  5226.                             }
  5227.                             else
  5228.                             {
  5229.                                 elementAttributeType = this.m_multiBattleActorList[i].CreateMana(pos, hitMove, almightyProb2);
  5230.                             }
  5231.                             if (actor == selfActor && this.m_multiBattleActorList[i] == selfActor && elementAttributeType != ElementAttributeType.None)
  5232.                             {
  5233.                                 num2++;
  5234.                                 if (elementAttributeType != ElementAttributeType.OriginalMax)
  5235.                                 {
  5236.                                     BattleUtility.AddMissionCount(MissionCountType.CreateManaAttribute0 + (int)elementAttributeType, 1);
  5237.                                 }
  5238.                             }
  5239.                         }
  5240.                     }
  5241.                 }
  5242.                 else
  5243.                 {
  5244.                     BattleActor battleActor = actor;
  5245.                     if (battleActor == null)
  5246.                     {
  5247.                         battleActor = selfActor;
  5248.                     }
  5249.                     if (battleActor != null)
  5250.                     {
  5251.                         bool flag2 = BattleUtility.IsUseAttribute(battleActor, attribute, checkElementalGaugeStatusEffect);
  5252.                         for (int k = 0; k < num; k++)
  5253.                         {
  5254.                             ElementAttributeType elementAttributeType2;
  5255.                             if (flag2)
  5256.                             {
  5257.                                 elementAttributeType2 = battleActor.CreateMana(pos, attribute, hitMove, almightyProb);
  5258.                             }
  5259.                             else
  5260.                             {
  5261.                                 elementAttributeType2 = battleActor.CreateMana(pos, hitMove, almightyProb);
  5262.                             }
  5263.                             if (elementAttributeType2 != ElementAttributeType.None && actor == selfActor)
  5264.                             {
  5265.                                 num2++;
  5266.                                 if (elementAttributeType2 != ElementAttributeType.OriginalMax)
  5267.                                 {
  5268.                                     BattleUtility.AddMissionCount(MissionCountType.CreateManaAttribute0 + (int)elementAttributeType2, 1);
  5269.                                 }
  5270.                             }
  5271.                         }
  5272.                     }
  5273.                 }
  5274.             }
  5275.             else
  5276.             {
  5277.                 BattleActor battleActor2 = actor;
  5278.                 if (battleActor2 == null)
  5279.                 {
  5280.                     battleActor2 = this.m_playerActor;
  5281.                 }
  5282.                 if (this.IsSubAction() && battleActor2.IsSubActionSub())
  5283.                 {
  5284.                     battleActor2 = this.GetPlayerActorSub();
  5285.                 }
  5286.                 bool flag3 = BattleUtility.IsUseAttribute(battleActor2, attribute, checkElementalGaugeStatusEffect);
  5287.                 for (int l = 0; l < num; l++)
  5288.                 {
  5289.                     ElementAttributeType elementAttributeType3;
  5290.                     if (flag3)
  5291.                     {
  5292.                         elementAttributeType3 = battleActor2.CreateMana(pos, attribute, hitMove, almightyProb);
  5293.                     }
  5294.                     else
  5295.                     {
  5296.                         elementAttributeType3 = battleActor2.CreateMana(pos, hitMove, almightyProb);
  5297.                     }
  5298.                     if (elementAttributeType3 != ElementAttributeType.None && actor == this.m_playerActor)
  5299.                     {
  5300.                         num2++;
  5301.                         if (elementAttributeType3 != ElementAttributeType.OriginalMax)
  5302.                         {
  5303.                             BattleUtility.AddMissionCount(MissionCountType.CreateManaAttribute0 + (int)elementAttributeType3, 1);
  5304.                         }
  5305.                     }
  5306.                 }
  5307.             }
  5308.             if (num2 != 0)
  5309.             {
  5310.                 BattleUtility.AddMissionCount(MissionCountType.CreateManaTotal, num2);
  5311.             }
  5312.             this.UpdateManaGui();
  5313.         }
  5314.  
  5315.         public void CreateMana(BattleActor actor, Vector3 pos, Vector3 targetPos, bool multiAll = false)
  5316.         {
  5317.             if (Mevius.App.Api.IsPartyMode())
  5318.             {
  5319.                 BattleActor selfActor = this.GetSelfActor();
  5320.                 if (multiAll)
  5321.                 {
  5322.                     for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  5323.                     {
  5324.                         ElementAttributeType elementAttributeType = this.m_multiBattleActorList[i].CreateMana(pos, targetPos);
  5325.                         if (actor == selfActor && this.m_multiBattleActorList[i] == selfActor && elementAttributeType != ElementAttributeType.None)
  5326.                         {
  5327.                             if (elementAttributeType != ElementAttributeType.OriginalMax)
  5328.                             {
  5329.                                 BattleUtility.AddMissionCount(MissionCountType.CreateManaAttribute0 + (int)elementAttributeType, 1);
  5330.                             }
  5331.                             BattleUtility.AddMissionCount(MissionCountType.CreateManaTotal, 1);
  5332.                         }
  5333.                     }
  5334.                 }
  5335.                 else if (actor != null)
  5336.                 {
  5337.                     ElementAttributeType elementAttributeType2 = actor.CreateMana(pos, targetPos);
  5338.                     if (elementAttributeType2 != ElementAttributeType.None && actor == selfActor)
  5339.                     {
  5340.                         if (elementAttributeType2 != ElementAttributeType.OriginalMax)
  5341.                         {
  5342.                             BattleUtility.AddMissionCount(MissionCountType.CreateManaAttribute0 + (int)elementAttributeType2, 1);
  5343.                         }
  5344.                         BattleUtility.AddMissionCount(MissionCountType.CreateManaTotal, 1);
  5345.                     }
  5346.                 }
  5347.             }
  5348.             else
  5349.             {
  5350.                 BattleActor battleActor = this.m_playerActor;
  5351.                 if (this.IsSubAction() && battleActor.IsSubActionSub())
  5352.                 {
  5353.                     battleActor = this.GetPlayerActorSub();
  5354.                 }
  5355.                 ElementAttributeType elementAttributeType3 = battleActor.CreateMana(pos, targetPos);
  5356.                 if (elementAttributeType3 != ElementAttributeType.None && actor == battleActor)
  5357.                 {
  5358.                     if (elementAttributeType3 != ElementAttributeType.OriginalMax)
  5359.                     {
  5360.                         BattleUtility.AddMissionCount(MissionCountType.CreateManaAttribute0 + (int)elementAttributeType3, 1);
  5361.                     }
  5362.                     BattleUtility.AddMissionCount(MissionCountType.CreateManaTotal, 1);
  5363.                 }
  5364.             }
  5365.             this.UpdateManaGui();
  5366.         }
  5367.  
  5368.         public bool IsDrawingMana()
  5369.         {
  5370.             return this.m_manaObjectManager.IsDrawing();
  5371.         }
  5372.  
  5373.         public void ClearMana()
  5374.         {
  5375.             this.m_manaObjectManager.Clear();
  5376.         }
  5377.  
  5378.         public void RequestRemoveMana()
  5379.         {
  5380.             this.m_manaObjectManager.RequestRemove();
  5381.         }
  5382.  
  5383.         public void AddReservedMana(ElementAttributeType type)
  5384.         {
  5385.             this.m_playerActor.AddReservedMana(type);
  5386.         }
  5387.  
  5388.         public void ClearReservedMana()
  5389.         {
  5390.             this.m_playerActor.ClearReservedMana();
  5391.         }
  5392.  
  5393.         public void AddTakeDamageTotal(BattleActor owner, BattleActor target, int value)
  5394.         {
  5395.             if (owner != null && target != null && owner == this.GetSelfActor() && target.IsEnemy())
  5396.             {
  5397.                 BattleUtility.AddMissionCount(MissionCountType.TakeDamageTotal, value);
  5398.             }
  5399.         }
  5400.  
  5401.         public void GiveDamageMissionCount(BattleActor target, BattleActor owner, int value)
  5402.         {
  5403.             if (value > 0 && owner != null && target != null && target == this.GetSelfActor())
  5404.             {
  5405.                 BattleUtility.AddMissionCount(MissionCountType.GiveDamageTotal, value);
  5406.                 BattleUtility.SetOverMissionCount(MissionCountType.GiveDamageMax, value);
  5407.                 if (owner.IsEnemy())
  5408.                 {
  5409.                     BattleUtility.AddMissionCount(MissionCountType.EnemyGiveDamageTotal, value);
  5410.                     BattleUtility.SetOverMissionCount(MissionCountType.EnemyGiveDamageMax, value);
  5411.                 }
  5412.             }
  5413.         }
  5414.  
  5415.         public void AddRecoveryTotal(BattleActor actor, int value)
  5416.         {
  5417.             if (actor != null && (actor == this.GetSelfActor() || actor == this.m_playerActorSub))
  5418.             {
  5419.                 BattleUtility.AddMissionCount(MissionCountType.RecoveryTotal, value);
  5420.             }
  5421.         }
  5422.  
  5423.         public int ChainNum
  5424.         {
  5425.             get
  5426.             {
  5427.                 return this.m_chainNum;
  5428.             }
  5429.             set
  5430.             {
  5431.                 this.m_chainNum = value;
  5432.             }
  5433.         }
  5434.  
  5435.         public int TurnNum
  5436.         {
  5437.             get
  5438.             {
  5439.                 return this.m_turnNum;
  5440.             }
  5441.         }
  5442.  
  5443.         private Vector3 GetCameraAimPos(bool checkActor = true)
  5444.         {
  5445.             bool flag = false;
  5446.             Vector2 vector = default(Vector2);
  5447.             Vector2 vector2 = default(Vector2);
  5448.             if (checkActor)
  5449.             {
  5450.                 for (int i = 0; i < this.m_actorList.Count; i++)
  5451.                 {
  5452.                     BattleActor battleActor = this.m_actorList[i];
  5453.                     if (battleActor != null && (battleActor.IsPlayer() || (battleActor.IsEnemy() && battleActor.IsActive())))
  5454.                     {
  5455.                         if (flag)
  5456.                         {
  5457.                             if (battleActor.chara.transform.position.x < vector.x)
  5458.                             {
  5459.                                 vector.x = battleActor.chara.transform.position.x;
  5460.                             }
  5461.                             if (vector2.x < battleActor.chara.transform.position.x)
  5462.                             {
  5463.                                 vector2.x = battleActor.chara.transform.position.x;
  5464.                             }
  5465.                             if (battleActor.chara.transform.position.z < vector.y)
  5466.                             {
  5467.                                 vector.y = battleActor.chara.transform.position.z;
  5468.                             }
  5469.                             if (vector2.y < battleActor.chara.transform.position.z)
  5470.                             {
  5471.                                 vector2.y = battleActor.chara.transform.position.z;
  5472.                             }
  5473.                         }
  5474.                         else
  5475.                         {
  5476.                             vector.Set(battleActor.chara.transform.position.x, battleActor.chara.transform.position.z);
  5477.                             vector2 = vector;
  5478.                             flag = true;
  5479.                         }
  5480.                     }
  5481.                 }
  5482.             }
  5483.             Vector3 zero = Vector3.zero;
  5484.             zero.x = (vector.x + vector2.x) / 2f;
  5485.             zero.z = (vector.y + vector2.y) / 2f;
  5486.             return zero;
  5487.         }
  5488.  
  5489.         public int EnemyLevel
  5490.         {
  5491.             get
  5492.             {
  5493.                 return this.m_enemyLevel;
  5494.             }
  5495.             set
  5496.             {
  5497.                 this.m_enemyLevel = value;
  5498.             }
  5499.         }
  5500.  
  5501.         public BattleActor GetEnemyActor(BattleActor targetActor)
  5502.         {
  5503.             BattleActor result = null;
  5504.             Vector3 normalized = (targetActor.chara.transform.position - this.m_playerActor.chara.transform.position).normalized;
  5505.             float num = 180f;
  5506.             for (int i = 0; i < this.m_actorList.Count; i++)
  5507.             {
  5508.                 BattleActor battleActor = this.m_actorList[i];
  5509.                 if (battleActor != null && battleActor.IsEnemy() && battleActor.IsActiveTarget())
  5510.                 {
  5511.                     Vector3 normalized2 = (battleActor.chara.transform.position - this.m_playerActor.chara.transform.position).normalized;
  5512.                     float num2 = Vector3.Angle(normalized, normalized2);
  5513.                     if (num2 < num)
  5514.                     {
  5515.                         num = num2;
  5516.                         result = battleActor;
  5517.                     }
  5518.                 }
  5519.             }
  5520.             return result;
  5521.         }
  5522.  
  5523.         public bool IsPlayerActionEnd()
  5524.         {
  5525.             if (Mevius.App.Api.IsPartyMode())
  5526.             {
  5527.                 return this.m_playerActor.MultiTurnEnd && (this.m_playerActor.State == BattleActor.StateType.Idle || this.m_playerActor.State == BattleActor.StateType.Guard);
  5528.             }
  5529.             return this.m_playerActor.IsChangeTurn();
  5530.         }
  5531.  
  5532.         public bool IsPlayerInputEnd()
  5533.         {
  5534.             return this.m_playerActor.CommandInputEnd;
  5535.         }
  5536.  
  5537.         public uint GetRandomUnsignedInteger()
  5538.         {
  5539.             this.m_randCount++;
  5540.             return this.m_rand.GetUnsignedInteger();
  5541.         }
  5542.  
  5543.         public float GetRandomSingleFloat()
  5544.         {
  5545.             this.m_randCount++;
  5546.             return this.m_rand.GetSingleFloat();
  5547.         }
  5548.  
  5549.         public uint GetPlayerDamageRandomUnsignedInteger()
  5550.         {
  5551.             this.m_damageRandCount++;
  5552.             return this.m_playerDamageRand.GetUnsignedInteger();
  5553.         }
  5554.  
  5555.         public float GetPlayerDamageRandomSingleFloat()
  5556.         {
  5557.             this.m_damageRandCount++;
  5558.             return this.m_playerDamageRand.GetSingleFloat();
  5559.         }
  5560.  
  5561.         public uint GetPlayerMovementRandomUnsignedInteger()
  5562.         {
  5563.             this.m_movementRandCount++;
  5564.             return this.m_playerMovementRand.GetUnsignedInteger();
  5565.         }
  5566.  
  5567.         public float GetPlayerMovementRandomSingleFloat()
  5568.         {
  5569.             this.m_movementRandCount++;
  5570.             return this.m_playerMovementRand.GetSingleFloat();
  5571.         }
  5572.  
  5573.         public PreciseTime GetPreciseTime()
  5574.         {
  5575.             return this.m_preciseTime;
  5576.         }
  5577.  
  5578.         public List<BattleActor> GetActorList()
  5579.         {
  5580.             return this.m_actorList;
  5581.         }
  5582.  
  5583.         public void SetPlayerTargetActor(int enemyIndex)
  5584.         {
  5585.             string enemyActorName = BattleManager.GetEnemyActorName(enemyIndex);
  5586.             BattleActor battleActor = this.FindActor(enemyActorName);
  5587.             if (battleActor != null)
  5588.             {
  5589.                 this.m_targetActor = battleActor;
  5590.                 this.m_playerActor.TargetActor = battleActor;
  5591.                 if (this.m_cameraManager.CurrentCameraType == BattleCameraManager.CameraType.TwoShot || this.m_cameraManager.CurrentCameraType == BattleCameraManager.CameraType.TargetSelect)
  5592.                 {
  5593.                     this.m_cameraManager.SetInterpolation(0.25f, CameraSequence.BlendType.Curve, true);
  5594.                     this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, this.m_playerActor.TargetActor);
  5595.                     this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  5596.                 }
  5597.             }
  5598.         }
  5599.  
  5600.         public void SetTargetActor(BattleActor actor)
  5601.         {
  5602.             if (this.m_playerActor.TargetActor != actor)
  5603.             {
  5604.                 this.m_playerActor.TargetActor = actor;
  5605.                 if (this.m_cameraManager.CurrentCameraType == BattleCameraManager.CameraType.TwoShot || this.m_cameraManager.CurrentCameraType == BattleCameraManager.CameraType.TargetSelect)
  5606.                 {
  5607.                     this.m_cameraManager.SetInterpolation(1f, CameraSequence.BlendType.Curve, true);
  5608.                 }
  5609.                 this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, this.m_playerActor.TargetActor);
  5610.                 this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  5611.             }
  5612.         }
  5613.  
  5614.         public void EnemyTurnTarget()
  5615.         {
  5616.             if (this.m_boss)
  5617.             {
  5618.                 return;
  5619.             }
  5620.             for (int i = 0; i < this.m_actorList.Count; i++)
  5621.             {
  5622.                 BattleActor battleActor = this.m_actorList[i];
  5623.                 if (battleActor != null && battleActor.IsEnemy() && battleActor.IsActive())
  5624.                 {
  5625.                     battleActor.OnTurnTarget();
  5626.                 }
  5627.             }
  5628.         }
  5629.  
  5630.         public void UpdateManaGui()
  5631.         {
  5632.             BattleActor battleActor = this.GetSelfActor();
  5633.             if (this.IsSubAction() && battleActor.IsSubActionSub())
  5634.             {
  5635.                 battleActor = this.GetPlayerActorSub();
  5636.             }
  5637.             if (battleActor != null)
  5638.             {
  5639.                 battleActor.UpdateManaGui();
  5640.             }
  5641.         }
  5642.  
  5643.         public bool HasGuiActive()
  5644.         {
  5645.             if (this.m_playerActor == null)
  5646.             {
  5647.                 return false;
  5648.             }
  5649.             bool flag = this.m_playerActor.IsPlayerInputAccept();
  5650.             if (Mevius.App.Api.IsPartyMode())
  5651.             {
  5652.                 flag = (flag && this._step == BattleManager.BattleStep.MultiBattleInput);
  5653.             }
  5654.             else
  5655.             {
  5656.                 flag = (flag && (this._step == BattleManager.BattleStep.PlayerTurnStart || this.IsPlayerTurn()));
  5657.             }
  5658.             return flag;
  5659.         }
  5660.  
  5661.         public void UpdateActionGuiActive()
  5662.         {
  5663.             if (this.m_playerActor != null)
  5664.             {
  5665.                 if (this.PartyMemberTurn)
  5666.                 {
  5667.                     this.m_playerActor.UpdateActionGuiActive(false);
  5668.                 }
  5669.                 else
  5670.                 {
  5671.                     this.m_playerActor.UpdateActionGuiActive(this.HasGuiActive());
  5672.                 }
  5673.             }
  5674.         }
  5675.  
  5676.         public void UpdateJobAbilityGauge()
  5677.         {
  5678.             if (this.m_playerActor != null)
  5679.             {
  5680.                 this.m_playerActor.UpdateJobAbilityGauge();
  5681.             }
  5682.         }
  5683.  
  5684.         public BattleDebugParameter DebugParameter
  5685.         {
  5686.             get
  5687.             {
  5688.                 return null;
  5689.             }
  5690.         }
  5691.  
  5692.         public void GetEnemyCenterPosDist(out Vector3 pos, out float farDistance)
  5693.         {
  5694.             pos = Vector3.zero;
  5695.             int num = 0;
  5696.             farDistance = 0f;
  5697.             List<BattleActor> actorList = BattleManager._i.GetActorList();
  5698.             for (int i = 0; i < actorList.Count; i++)
  5699.             {
  5700.                 BattleActor battleActor = this.m_actorList[i];
  5701.                 if (battleActor.IsEnemy() && battleActor.IsActiveTarget())
  5702.                 {
  5703.                     pos += battleActor.chara.transform.position;
  5704.                     num++;
  5705.                 }
  5706.             }
  5707.             if (num != 0)
  5708.             {
  5709.                 pos /= (float)num;
  5710.                 for (int j = 0; j < actorList.Count; j++)
  5711.                 {
  5712.                     BattleActor battleActor2 = this.m_actorList[j];
  5713.                     if (battleActor2.IsEnemy() && battleActor2.IsActiveTarget())
  5714.                     {
  5715.                         float num2 = Vector3.Distance(pos, battleActor2.chara.transform.position);
  5716.                         if (num2 > farDistance)
  5717.                         {
  5718.                             farDistance = num2;
  5719.                         }
  5720.                     }
  5721.                 }
  5722.             }
  5723.         }
  5724.  
  5725.         public void UpdateTargetSelectCameraFocus()
  5726.         {
  5727.             Mevius.Renderer.CameraManager instance = Mevius.Renderer.CameraManager.GetInstance();
  5728.             if (instance != null)
  5729.             {
  5730.                 GameObject viewCameraGameObject = instance.GetViewCameraGameObject();
  5731.                 if (viewCameraGameObject && viewCameraGameObject.GetComponent<Camera>())
  5732.                 {
  5733.                     Vector3 vector = Vector3.forward;
  5734.                     vector.y = 0f;
  5735.                     vector = vector.normalized;
  5736.                     vector = Quaternion.Euler(0f, this.m_cameraManager.GetTargetSelectHrzAngle(), 0f) * vector;
  5737.                     int num = 0;
  5738.                     BattleManager.AutoFocusInfo[] array = new BattleManager.AutoFocusInfo[2];
  5739.                     for (int i = 0; i < 2; i++)
  5740.                     {
  5741.                         array[i] = new BattleManager.AutoFocusInfo();
  5742.                     }
  5743.                     string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  5744.                     for (int j = 0; j < this.m_actorList.Count; j++)
  5745.                     {
  5746.                         BattleActor battleActor = this.m_actorList[j];
  5747.                         if (battleActor.IsEnemy() && battleActor.IsActiveTarget())
  5748.                         {
  5749.                             Transform elementIdTransform = battleActor.chara.GetElementIdTransform(name);
  5750.                             if (elementIdTransform)
  5751.                             {
  5752.                                 Vector3 vector2 = viewCameraGameObject.GetComponent<Camera>().WorldToViewportPoint(elementIdTransform.position);
  5753.                                 if (0f <= vector2.x && vector2.x <= 1f && 0f <= vector2.y && vector2.y <= 1f && 0f < vector2.z)
  5754.                                 {
  5755.                                     num++;
  5756.                                 }
  5757.                                 Vector3 vector3 = elementIdTransform.position - this.m_playerActor.chara.transform.position;
  5758.                                 vector3.y = 0f;
  5759.                                 vector3 = vector3.normalized;
  5760.                                 float num2 = Vector3.Dot(vector, vector3);
  5761.                                 num2 = Mathf.Clamp(num2, -1f, 1f);
  5762.                                 float num3 = Mathf.Acos(num2);
  5763.                                 if (Vector3.Cross(vector, vector3).y < 0f)
  5764.                                 {
  5765.                                     if (num3 < array[0].radian)
  5766.                                     {
  5767.                                         array[0].actor = battleActor;
  5768.                                         array[0].radian = num3;
  5769.                                         array[0].dir = vector3;
  5770.                                     }
  5771.                                 }
  5772.                                 else if (num3 < array[1].radian)
  5773.                                 {
  5774.                                     array[1].actor = battleActor;
  5775.                                     array[1].radian = num3;
  5776.                                     array[1].dir = vector3;
  5777.                                 }
  5778.                             }
  5779.                         }
  5780.                     }
  5781.                     int num4 = -1;
  5782.                     if (array[0].actor != null && array[1].actor == null)
  5783.                     {
  5784.                         num4 = 0;
  5785.                     }
  5786.                     else if (array[0].actor == null && array[1].actor != null)
  5787.                     {
  5788.                         num4 = 1;
  5789.                     }
  5790.                     else if (array[0].actor != null && array[1].actor != null && num <= 1)
  5791.                     {
  5792.                         if (array[0].radian < array[1].radian)
  5793.                         {
  5794.                             num4 = 0;
  5795.                         }
  5796.                         else
  5797.                         {
  5798.                             num4 = 1;
  5799.                         }
  5800.                     }
  5801.                     if (num4 != -1)
  5802.                     {
  5803.                         this.m_playerActor.TargetActor = array[num4].actor;
  5804.                         float num5 = array[num4].radian;
  5805.                         if (Vector3.Cross(vector, array[num4].dir).y < 0f)
  5806.                         {
  5807.                             num5 *= -1f;
  5808.                         }
  5809.                         this.m_cameraManager.SetTargetSelectTargetPos(this.m_playerActor.TargetActor.chara.transform.position, true);
  5810.                     }
  5811.                 }
  5812.             }
  5813.         }
  5814.  
  5815.         public void UpdateSelectedTarget()
  5816.         {
  5817.             if (this._step >= BattleManager.BattleStep.ResultReady)
  5818.             {
  5819.                 return;
  5820.             }
  5821.             if (Mevius.App.Api.IsPartyMode())
  5822.             {
  5823.                 for (int i = this.m_actorList.Count - 1; i >= 0; i--)
  5824.                 {
  5825.                     BattleActor battleActor = this.m_actorList[i];
  5826.                     if (battleActor.IsEnemy() && battleActor.IsActiveTarget())
  5827.                     {
  5828.                         this.m_targetActor = battleActor;
  5829.                         this.CheckPlayerTargetChange();
  5830.                         break;
  5831.                     }
  5832.                 }
  5833.             }
  5834.             else
  5835.             {
  5836.                 Mevius.Renderer.CameraManager instance = Mevius.Renderer.CameraManager.GetInstance();
  5837.                 if (instance != null)
  5838.                 {
  5839.                     GameObject viewCameraGameObject = instance.GetViewCameraGameObject();
  5840.                     if (viewCameraGameObject && viewCameraGameObject.GetComponent<Camera>())
  5841.                     {
  5842.                         int num = int.MaxValue;
  5843.                         float num2 = float.MaxValue;
  5844.                         BattleActor battleActor2 = null;
  5845.                         BattleActor battleActor3 = null;
  5846.                         string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  5847.                         Vector3 position = this.m_playerActor.chara.GetElementIdTransform(name).position;
  5848.                         Vector3 vector = viewCameraGameObject.GetComponent<Camera>().WorldToViewportPoint(position);
  5849.                         Vector3 lhs = this.m_playerActor.chara.transform.rotation * Vector3.forward;
  5850.                         for (int j = 0; j < this.m_actorList.Count; j++)
  5851.                         {
  5852.                             BattleActor battleActor4 = this.m_actorList[j];
  5853.                             if (battleActor4.IsEnemy() && battleActor4.IsActiveTarget() && !battleActor4.IsNeedNotKill())
  5854.                             {
  5855.                                 if (battleActor4.Hp < num)
  5856.                                 {
  5857.                                     num = battleActor4.Hp;
  5858.                                     battleActor2 = battleActor4;
  5859.                                     Transform elementIdTransform = battleActor4.chara.GetElementIdTransform(name);
  5860.                                     num2 = Vector3.Distance((!elementIdTransform) ? battleActor4.chara.transform.position : elementIdTransform.position, position);
  5861.                                 }
  5862.                                 else if (battleActor4.Hp == num)
  5863.                                 {
  5864.                                     Transform elementIdTransform2 = battleActor4.chara.GetElementIdTransform(name);
  5865.                                     Vector3 a = (!elementIdTransform2) ? battleActor4.chara.transform.position : elementIdTransform2.position;
  5866.                                     Vector3 normalized = (a - position).normalized;
  5867.                                     normalized.y = 0f;
  5868.                                     float num3 = Vector3.Distance(a, position);
  5869.                                     if (num3 < num2)
  5870.                                     {
  5871.                                         num2 = num3;
  5872.                                         if (Vector3.Dot(lhs, normalized) >= 0f)
  5873.                                         {
  5874.                                             battleActor2 = battleActor4;
  5875.                                         }
  5876.                                         else
  5877.                                         {
  5878.                                             battleActor3 = battleActor4;
  5879.                                         }
  5880.                                     }
  5881.                                 }
  5882.                             }
  5883.                         }
  5884.                         BattleActor battleActor5 = null;
  5885.                         if (battleActor2 != null)
  5886.                         {
  5887.                             battleActor5 = battleActor2;
  5888.                         }
  5889.                         else if (battleActor3 != null)
  5890.                         {
  5891.                             battleActor5 = battleActor3;
  5892.                         }
  5893.                         if (battleActor5 != null)
  5894.                         {
  5895.                             this.m_targetActor = battleActor5;
  5896.                             this.CheckPlayerTargetChange();
  5897.                         }
  5898.                     }
  5899.                 }
  5900.             }
  5901.         }
  5902.  
  5903.         public BattleActor GetTargetActor()
  5904.         {
  5905.             return this.m_targetActor;
  5906.         }
  5907.  
  5908.         public void OnPlayerHit(bool critical, bool actionFirstHit, bool isBreakJust)
  5909.         {
  5910.             if (critical && !MainLoop.DisableTapEffect)
  5911.             {
  5912.                 Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  5913.                 {
  5914.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  5915.                     m_strSubResource = "critical_001"
  5916.                 });
  5917.             }
  5918.             if (actionFirstHit)
  5919.             {
  5920.                 if (Mevius.App.Api.IsPartyMode())
  5921.                 {
  5922.                     for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  5923.                     {
  5924.                         this.m_multiBattleActorList[i].OnPlayerHit();
  5925.                     }
  5926.                 }
  5927.                 else
  5928.                 {
  5929.                     this.m_playerActor.OnPlayerHit();
  5930.                 }
  5931.             }
  5932.             if ((critical || isBreakJust) && this.m_fairyActor != null)
  5933.             {
  5934.                 this.m_fairyActor.PlayMotion("b_break1", false);
  5935.             }
  5936.         }
  5937.  
  5938.         public void OnPlayerDamage()
  5939.         {
  5940.             if (this.m_fairyActor != null)
  5941.             {
  5942.                 this.m_fairyActor.OnPlayerDamage();
  5943.             }
  5944.         }
  5945.  
  5946.         public float GetInputWaitingTime()
  5947.         {
  5948.             return this.m_battleSlow.CurrentSlowTime;
  5949.         }
  5950.  
  5951.         public float GetTotalInputWaitTime()
  5952.         {
  5953.             return this.m_battleSlow.TotalSlowTime;
  5954.         }
  5955.  
  5956.         public bool IsInputWaiting()
  5957.         {
  5958.             return this.m_battleSlow.IsInBattleSlow();
  5959.         }
  5960.  
  5961.         public string GetSlowDebugInfo()
  5962.         {
  5963.             return this.m_battleSlow.GetDebugInfo();
  5964.         }
  5965.  
  5966.         public float GetPlayerAreaRandomDistance()
  5967.         {
  5968.             return this.m_placementPlayerDistanceStart + Mevius.Battle.Api.GetPlayerMovementRandomSingleFloat() * (this.m_placementPlayerDistanceEnd - this.m_placementPlayerDistanceStart);
  5969.         }
  5970.  
  5971.         public float GetPlayerAreaDistanceStart()
  5972.         {
  5973.             return this.m_placementPlayerDistanceStart;
  5974.         }
  5975.  
  5976.         public float GetPlayerAreaDistanceEnd()
  5977.         {
  5978.             return this.m_placementPlayerDistanceEnd;
  5979.         }
  5980.  
  5981.         public int GetPlayerActionNumBase()
  5982.         {
  5983.             if (this.m_playerActor != null)
  5984.             {
  5985.                 return this.m_playerActor.GetActionNumBase();
  5986.             }
  5987.             return 0;
  5988.         }
  5989.  
  5990.         public void OnPlayerActionStart(bool freeAction, bool subActionMainAction)
  5991.         {
  5992.             for (int i = 0; i < this.m_actorList.Count; i++)
  5993.             {
  5994.                 BattleActor battleActor = this.m_actorList[i];
  5995.                 battleActor.OnPlayerActionStart(freeAction, subActionMainAction);
  5996.             }
  5997.             GuiBattleMenu.Instance.TimeLine.SetIconEffect(0, GuiBattleTimeLineIconEffect.Action);
  5998.         }
  5999.  
  6000.         public void OnPlayerActionEnd()
  6001.         {
  6002.             for (int i = 0; i < this.m_actorList.Count; i++)
  6003.             {
  6004.                 BattleActor battleActor = this.m_actorList[i];
  6005.                 battleActor.OnPlayerActionEnd();
  6006.             }
  6007.         }
  6008.  
  6009.         public void OnEnemyActionStart()
  6010.         {
  6011.             if (Mevius.App.Api.IsPartyMode())
  6012.             {
  6013.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  6014.                 {
  6015.                     this.m_multiBattleActorList[i].OnEnemyActionStart();
  6016.                 }
  6017.             }
  6018.             else
  6019.             {
  6020.                 this.m_playerActor.OnEnemyActionStart();
  6021.                 if (this.m_playerActorSub != null)
  6022.                 {
  6023.                     this.m_playerActorSub.OnEnemyActionStart();
  6024.                 }
  6025.             }
  6026.         }
  6027.  
  6028.         public void OnEnemyActionEnd()
  6029.         {
  6030.             this.m_enemyActionEndFlag = true;
  6031.             if (Mevius.App.Api.IsPartyMode())
  6032.             {
  6033.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  6034.                 {
  6035.                     this.m_multiBattleActorList[i].OnEnemyActionEnd();
  6036.                 }
  6037.             }
  6038.             else
  6039.             {
  6040.                 this.m_playerActor.OnEnemyActionEnd();
  6041.                 if (this.m_playerActorSub != null)
  6042.                 {
  6043.                     this.m_playerActorSub.OnEnemyActionEnd();
  6044.                 }
  6045.             }
  6046.         }
  6047.  
  6048.         public void OnEnemyTurnEnd()
  6049.         {
  6050.             this.HideBattleEnemyActionName();
  6051.             Mevius.Gui.Api.ClearDQBattleLogText();
  6052.             for (int i = 0; i < this.m_actorList.Count; i++)
  6053.             {
  6054.                 BattleActor battleActor = this.m_actorList[i];
  6055.                 if (battleActor != null && battleActor.IsEnemy() && battleActor.IsActive())
  6056.                 {
  6057.                     battleActor.OnTurnEnd();
  6058.                 }
  6059.             }
  6060.             if (Mevius.App.Api.IsPartyMode())
  6061.             {
  6062.                 for (int j = 0; j < this.m_multiBattleActorList.Count; j++)
  6063.                 {
  6064.                     this.m_multiBattleActorList[j].OnEnemyTurnEnd();
  6065.                 }
  6066.             }
  6067.             else
  6068.             {
  6069.                 this.m_playerActor.OnEnemyTurnEnd();
  6070.                 if (this.m_playerActorSub != null)
  6071.                 {
  6072.                     this.m_playerActorSub.OnEnemyTurnEnd();
  6073.                 }
  6074.             }
  6075.             this.m_turnNum++;
  6076.             BattleUtility.SetOverMissionCount(MissionCountType.TurnMax, this.m_turnNum);
  6077.             BattleUtility.AddMissionCount(MissionCountType.TurnTotal, 1);
  6078.             this.SaveData();
  6079.         }
  6080.  
  6081.         public void ChangeTargetSelectCamera(bool force = false)
  6082.         {
  6083.             if ((this.m_cameraManager.CurrentCameraType != BattleCameraManager.CameraType.TargetSelect || force) && !this.IsMultiFinishCamera())
  6084.             {
  6085.                 float interpSec;
  6086.                 CameraSequence.BlendType blendType;
  6087.                 if (!this.m_cameraManager.GetActionNextInterpInfo(out interpSec, out blendType))
  6088.                 {
  6089.                     interpSec = 0.5f;
  6090.                     blendType = CameraSequence.BlendType.Curve;
  6091.                 }
  6092.                 if (this.m_playerActor.TargetActor.IsUsePlayerMotion() && this._step == BattleManager.BattleStep.PlayerTurnStart)
  6093.                 {
  6094.                     interpSec = 0f;
  6095.                 }
  6096.                 this.m_cameraManager.SetInterpolation(interpSec, blendType, true);
  6097.                 this.m_cameraManager.InitTargetSelect(this.m_boss, this.m_playerActor, this.m_playerActor.TargetActor);
  6098.                 this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.TargetSelect);
  6099.             }
  6100.         }
  6101.  
  6102.         public void CheckPlayerTargetChange()
  6103.         {
  6104.             if (this.m_targetActor != this.m_playerActor.TargetActor && !this.m_playerActor.IsStatusEffectEntry(BattleStatusEffect.GroupType.Provoke))
  6105.             {
  6106.                 this.m_playerActor.OnTargetChange();
  6107.                 this.m_playerActor.TargetActor = this.m_targetActor;
  6108.             }
  6109.         }
  6110.  
  6111.         public int GetEnemyNum(bool ignoreEnemyNeedNotToKill = true)
  6112.         {
  6113.             int num = 0;
  6114.             for (int i = 0; i < this.m_actorList.Count; i++)
  6115.             {
  6116.                 BattleActor battleActor = this.m_actorList[i];
  6117.                 if (battleActor != null && battleActor.IsEnemy() && battleActor.IsActiveTarget())
  6118.                 {
  6119.                     if (ignoreEnemyNeedNotToKill)
  6120.                     {
  6121.                         if (!battleActor.IsNeedNotKill())
  6122.                         {
  6123.                             num++;
  6124.                         }
  6125.                     }
  6126.                     else
  6127.                     {
  6128.                         num++;
  6129.                     }
  6130.                 }
  6131.             }
  6132.             return num;
  6133.         }
  6134.  
  6135.         public bool IsDamageSourceExist()
  6136.         {
  6137.             return this.m_damageSourceManager.IsExist();
  6138.         }
  6139.  
  6140.         public string ReplaceDamageSourceId(string id, BattleActor owner)
  6141.         {
  6142.             return this.m_damageSourceManager.ReplaceDamageSourceId(id, owner);
  6143.         }
  6144.  
  6145.         public void OnEnemyNoActionPlayerActionContinue()
  6146.         {
  6147.             if (Mevius.App.Api.IsPartyMode())
  6148.             {
  6149.                 return;
  6150.             }
  6151.             if (BattleManager._i.IsCountTimeBattle())
  6152.             {
  6153.                 return;
  6154.             }
  6155.             if (this.IsPlayerTurn())
  6156.             {
  6157.                 bool flag = false;
  6158.                 for (int i = 0; i < this.m_actorList.Count; i++)
  6159.                 {
  6160.                     BattleActor battleActor = this.m_actorList[i];
  6161.                     if (battleActor != null && !battleActor.IsPlayer() && battleActor.IsActive())
  6162.                     {
  6163.                         if (battleActor.IsNextTurnAction())
  6164.                         {
  6165.                             flag = false;
  6166.                             break;
  6167.                         }
  6168.                         flag = true;
  6169.                     }
  6170.                 }
  6171.                 if (flag)
  6172.                 {
  6173.                     if (this.m_fairyActor != null)
  6174.                     {
  6175.                         this.ProcFairyEffectType(true);
  6176.                     }
  6177.                     if (this.m_fairyEffectType == BattleManager.FairyEffectType.None)
  6178.                     {
  6179.                         if (Mevius.Db.Api.GetBattleData().padCombo > 0 && Mevius.Db.Api.GetBattleData().padComboTurn <= 1)
  6180.                         {
  6181.                             return;
  6182.                         }
  6183.                         this.m_playerActor.UpdatePadComboTurn();
  6184.                         if (this.m_playerActor != null)
  6185.                         {
  6186.                             this.m_playerActor.OnTurnEnd();
  6187.                         }
  6188.                         if (this.m_playerActorSub != null)
  6189.                         {
  6190.                             this.m_playerActorSub.OnTurnEnd();
  6191.                         }
  6192.                         this.OnEnemyTurnEnd();
  6193.                         if (this.m_playerActor != null)
  6194.                         {
  6195.                             this.m_playerActor.OnTurnBegin();
  6196.                             this.m_playerActor.ReadyAction();
  6197.                             if (!this.m_playerActor.IsDead() && (this.m_targetActor == null || !this.m_targetActor.IsActive()))
  6198.                             {
  6199.                                 this.UpdateSelectedTarget();
  6200.                             }
  6201.                         }
  6202.                     }
  6203.                 }
  6204.             }
  6205.         }
  6206.  
  6207.         public BattleFairyActor FairyActor
  6208.         {
  6209.             get
  6210.             {
  6211.                 return this.m_fairyActor;
  6212.             }
  6213.         }
  6214.  
  6215.         public void OnTutorialTrigger(BattleTutorialManager.TriggerType trigger)
  6216.         {
  6217.             if (this.m_tutorialManager != null)
  6218.             {
  6219.                 this.m_tutorialManager.OnTrigger(trigger);
  6220.             }
  6221.         }
  6222.  
  6223.         private void InitFairyActor()
  6224.         {
  6225.             this.m_fairyActor = null;
  6226.             AppActor appActor = Mevius.App.Api.FindAppActor(Mevius.Db.Api.GetPlayerFairyName() + "_battle");
  6227.             if (appActor != null && appActor.getGameObject().activeInHierarchy)
  6228.             {
  6229.                 this.m_fairyActor = (appActor.actors[1] as BattleFairyActor);
  6230.                 this.m_fairyActor.SetIdle();
  6231.                 this.m_fairyActor.InitIdlePos();
  6232.                 if (this.m_playerActor != null && this.m_playerActor.IsSummon())
  6233.                 {
  6234.                     this.m_fairyActor.Chara.ShowHideModel(false, true);
  6235.                 }
  6236.             }
  6237.         }
  6238.  
  6239.         public void OnFairyEffect()
  6240.         {
  6241.             switch (this.m_fairyEffectType)
  6242.             {
  6243.             case BattleManager.FairyEffectType.Revive:
  6244.                 this.RevivePlayer();
  6245.                 break;
  6246.             case BattleManager.FairyEffectType.Heal:
  6247.             {
  6248.                 Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  6249.                 {
  6250.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  6251.                     m_strSubResource = "keal_002",
  6252.                     m_BindActor = this.m_playerActor.chara.gameObject
  6253.                 });
  6254.                 float recoverRate = (float)Mevius.DataSheet.Api.GetResidentInteger("fairyEffect0val1", 20) * 0.01f;
  6255.                 this.m_playerActor.RecoverHpMaxRate(recoverRate);
  6256.                 Mevius.Gui.Constants.PopupStatusKind kind = Mevius.Gui.Constants.PopupStatusKind.Full;
  6257.                 Mevius.Gui.Constants.PopupStatusEffect effect = Mevius.Gui.Constants.PopupStatusEffect.None;
  6258.                 string value = string.Empty;
  6259.                 C02688ac2fa3465c4dc969e664556169f.Cdb83ac7b1b94f482a747dd16b359c48f cdb83ac7b1b94f482a747dd16b359c48f = C02688ac2fa3465c4dc969e664556169f.Find("6");
  6260.                 if (cdb83ac7b1b94f482a747dd16b359c48f != null && this.m_playerActor.AddStatusEffect(cdb83ac7b1b94f482a747dd16b359c48f, Mevius.DataSheet.Api.GetResidentInteger("fairyEffect0val2", 3), BattleStatusEffect.StateType.Normal, 0, true, true))
  6261.                 {
  6262.                     value = cdb83ac7b1b94f482a747dd16b359c48f.m8d891e45af2849894b2221fd8edc72c0();
  6263.                 }
  6264.                 Transform elementIdTransform = this.m_playerActor.chara.GetElementIdTransform(ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.MAGIC_HIT));
  6265.                 Mevius.Gui.Api.AddStatusPopup(kind, effect, value, elementIdTransform, Vector2.zero, false);
  6266.                 Mevius.Gui.Api.ShowPopup();
  6267.                 string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  6268.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field_3D, soundResourceName, "system_se_ed_hp_recovery", 1f, 0, 0, this.m_playerActor.chara.transform.position, null, false, -1, 0, 1f);
  6269.                 break;
  6270.             }
  6271.             case BattleManager.FairyEffectType.Rescue:
  6272.             {
  6273.                 int residentInteger = Mevius.DataSheet.Api.GetResidentInteger("fairyEffect1val1", 2);
  6274.                 if (residentInteger > 0)
  6275.                 {
  6276.                     Transform elementIdTransform2 = this.m_fairyActor.Chara.GetElementIdTransform(ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER));
  6277.                     Vector3 position;
  6278.                     if (elementIdTransform2)
  6279.                     {
  6280.                         position = elementIdTransform2.position;
  6281.                     }
  6282.                     else
  6283.                     {
  6284.                         position = this.m_fairyActor.Chara.transform.position;
  6285.                     }
  6286.                     float num = 0.75f;
  6287.                     float d = num + 0.5f;
  6288.                     float num2 = 180f;
  6289.                     float num3 = 90f;
  6290.                     for (int i = 0; i < residentInteger; i++)
  6291.                     {
  6292.                         Vector3 a = Quaternion.AngleAxis(num2, Vector3.up) * this.m_fairyActor.Chara.transform.forward;
  6293.                         Vector3 vector = position + a * num;
  6294.                         Vector3 pos = vector + a * d;
  6295.                         pos.y += 2.5f;
  6296.                         this.CreateMana(null, pos, vector, false);
  6297.                         num2 += num3;
  6298.                     }
  6299.                 }
  6300.                 string soundResourceName2 = Mevius.Sound.Api.GetSoundResourceName("Resident");
  6301.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field_3D, soundResourceName2, "system_se_ce_battle_in", 1f, 0, 0, this.m_fairyActor.Chara.transform.position, null, false, -1, 0, 1f);
  6302.                 break;
  6303.             }
  6304.             case BattleManager.FairyEffectType.Cheer:
  6305.             {
  6306.                 this.m_fairyActor.CheerEffect = true;
  6307.                 Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  6308.                 {
  6309.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  6310.                     m_strSubResource = "fairy_eff_001",
  6311.                     m_BindActor = this.m_playerActor.chara.gameObject
  6312.                 });
  6313.                 string soundResourceName3 = Mevius.Sound.Api.GetSoundResourceName("Resident");
  6314.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field_3D, soundResourceName3, "fairy_eff_001", 1f, 0, 0, this.m_playerActor.chara.transform.position, null, false, -1, 0, 1f);
  6315.                 break;
  6316.             }
  6317.             case BattleManager.FairyEffectType.Encourage:
  6318.             {
  6319.                 this.m_playerActor.TargetActor.BreakCount++;
  6320.                 Mevius.Gui.Api.ShowBreakBonusEffect();
  6321.                 Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  6322.                 {
  6323.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  6324.                     m_strSubResource = "fairy_eff_002",
  6325.                     m_BindActor = this.m_playerActor.chara.gameObject
  6326.                 });
  6327.                 string soundResourceName4 = Mevius.Sound.Api.GetSoundResourceName("Resident");
  6328.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field_3D, soundResourceName4, "fairy_eff_002", 1f, 0, 0, this.m_playerActor.chara.transform.position, null, false, -1, 0, 1f);
  6329.                 break;
  6330.             }
  6331.             }
  6332.             this.m_fairyEffectType = BattleManager.FairyEffectType.None;
  6333.         }
  6334.  
  6335.         private void ProcFairyEffectType(bool preset)
  6336.         {
  6337.             if (this.m_playerActor != null && this.m_playerActor.IsSummon())
  6338.             {
  6339.                 return;
  6340.             }
  6341.             if (preset && this.m_presetFairyEffect)
  6342.             {
  6343.                 return;
  6344.             }
  6345.             uint num = Mevius.Battle.Api.GetRandomUnsignedInteger() % 100u;
  6346.             this.m_presetFairyEffect = preset;
  6347.             this.m_fairyEffectType = BattleManager.FairyEffectType.None;
  6348.             int num2 = 0;
  6349.             int num3 = Mevius.DataSheet.Api.GetResidentInteger("fairyEffect0prob", 10);
  6350.             if (this.m_fairyHour)
  6351.             {
  6352.                 num3 <<= 1;
  6353.             }
  6354.             num2 += num3;
  6355.             if ((ulong)num < (ulong)((long)num2))
  6356.             {
  6357.                 if (this.m_playerActor.GetHpRate() < (float)Mevius.DataSheet.Api.GetResidentInteger("fairyEffect0val0", 30) * 0.01f)
  6358.                 {
  6359.                     this.m_fairyEffectType = BattleManager.FairyEffectType.Heal;
  6360.                 }
  6361.             }
  6362.             else
  6363.             {
  6364.                 num3 = Mevius.DataSheet.Api.GetResidentInteger("fairyEffect1prob", 3);
  6365.                 if (this.m_fairyHour)
  6366.                 {
  6367.                     num3 <<= 1;
  6368.                 }
  6369.                 num2 += num3;
  6370.                 if ((ulong)num < (ulong)((long)num2))
  6371.                 {
  6372.                     if (this.m_playerActor.ManaElements.Length <= Mevius.DataSheet.Api.GetResidentInteger("fairyEffect1val0", 4))
  6373.                     {
  6374.                         this.m_fairyEffectType = BattleManager.FairyEffectType.Rescue;
  6375.                     }
  6376.                 }
  6377.                 else if (this.PlayerJobChangeThroughTurn != 1)
  6378.                 {
  6379.                     int num4 = this.m_turnNum;
  6380.                     if (preset)
  6381.                     {
  6382.                         num4++;
  6383.                     }
  6384.                     if (num4 >= Mevius.DataSheet.Api.GetResidentInteger("fairyEffect2prob1", 5))
  6385.                     {
  6386.                         num3 = Mevius.DataSheet.Api.GetResidentInteger("fairyEffect2prob", 2);
  6387.                         if (this.m_fairyHour)
  6388.                         {
  6389.                             num3 <<= 1;
  6390.                         }
  6391.                         num2 += num3;
  6392.                         if ((ulong)num < (ulong)((long)num2))
  6393.                         {
  6394.                             this.m_fairyEffectType = BattleManager.FairyEffectType.Cheer;
  6395.                         }
  6396.                     }
  6397.                 }
  6398.             }
  6399.         }
  6400.  
  6401.         public bool ProcFairyEncourage()
  6402.         {
  6403.             bool result = false;
  6404.             if (this.m_playerActor != null && this.m_playerActor.IsSummon())
  6405.             {
  6406.                 return result;
  6407.             }
  6408.             if (this.m_fairyActor != null && this.m_breakNum >= Mevius.DataSheet.Api.GetResidentInteger("fairyEffect3prob1", 2))
  6409.             {
  6410.                 uint num = Mevius.Battle.Api.GetRandomUnsignedInteger() % 100u;
  6411.                 int num2 = Mevius.DataSheet.Api.GetResidentInteger("fairyEffect3prob", 10);
  6412.                 if (this.m_fairyHour)
  6413.                 {
  6414.                     num2 <<= 1;
  6415.                 }
  6416.                 if ((ulong)num < (ulong)((long)num2))
  6417.                 {
  6418.                     this.m_fairyEffectType = BattleManager.FairyEffectType.Encourage;
  6419.                     this.m_fairyActor.Action(this.m_fairyEffectType);
  6420.                     BattleManager._i.CameraManager.SetInterpolation(0f, CameraSequence.BlendType.Curve, true);
  6421.                     BattleManager._i.CameraManager.InitAction("fairyB1", this.m_playerActor, false, false);
  6422.                     BattleManager._i.CameraManager.ChangeCamera(BattleCameraManager.CameraType.Action);
  6423.                     result = true;
  6424.                 }
  6425.             }
  6426.             return result;
  6427.         }
  6428.  
  6429.         public void SetFairyFollowPlayer(bool flag)
  6430.         {
  6431.             if (this.m_fairyActor != null)
  6432.             {
  6433.                 this.m_fairyActor.FollowPlayer = flag;
  6434.             }
  6435.         }
  6436.  
  6437.         public void HideGuardFairy()
  6438.         {
  6439.             if (this.m_fairyActor != null)
  6440.             {
  6441.                 this.m_fairyActor.HideGuard();
  6442.             }
  6443.         }
  6444.  
  6445.         public void ShowGuardFairy()
  6446.         {
  6447.             if (this.m_fairyActor != null)
  6448.             {
  6449.                 this.m_fairyActor.ShowGuard();
  6450.             }
  6451.         }
  6452.  
  6453.         public bool IsUseDebugParameter()
  6454.         {
  6455.             return false;
  6456.         }
  6457.  
  6458.         public void IncrementBreakNum()
  6459.         {
  6460.             this.m_breakNum++;
  6461.             BattleUtility.AddMissionCount(MissionCountType.BreakCount, 1);
  6462.         }
  6463.  
  6464.         public int DeadNum
  6465.         {
  6466.             get
  6467.             {
  6468.                 return this.m_deadNum;
  6469.             }
  6470.             set
  6471.             {
  6472.                 this.m_deadNum = value;
  6473.             }
  6474.         }
  6475.  
  6476.         public int GetScoreTurnNum()
  6477.         {
  6478.             return this.m_turnNum + this.m_deadNum * Mevius.DataSheet.Api.GetResidentInteger("scoreDeadTurn", 10);
  6479.         }
  6480.  
  6481.         public bool LastEnemyEscape
  6482.         {
  6483.             get
  6484.             {
  6485.                 return this.m_lastEnemyEscape;
  6486.             }
  6487.             set
  6488.             {
  6489.                 this.m_lastEnemyEscape = value;
  6490.             }
  6491.         }
  6492.  
  6493.         public bool ChaosBattle
  6494.         {
  6495.             get
  6496.             {
  6497.                 return this.m_chaosBattle;
  6498.             }
  6499.         }
  6500.  
  6501.         public bool ShadowBlankBattle
  6502.         {
  6503.             get
  6504.             {
  6505.                 return this.m_shadowBlankBattle;
  6506.             }
  6507.         }
  6508.  
  6509.         public bool ForceAllCamera
  6510.         {
  6511.             get
  6512.             {
  6513.                 return this.m_forceAllCameraBattle;
  6514.             }
  6515.         }
  6516.  
  6517.         public string TargetSelectCameraName
  6518.         {
  6519.             get
  6520.             {
  6521.                 return this.m_targetSelectCameraName;
  6522.             }
  6523.         }
  6524.  
  6525.         public bool IsLowerFpsEnable()
  6526.         {
  6527.             return (this.IsPlayerTurn() && !this.IsPlayerActionEnd() && this.m_playerActor.State == BattleActor.StateType.Idle && !Mevius.App.Api.IsButtonStay(InputType.InputType_TouchEmulate) && !this.m_guiTouchComponent.IsPress() && !this.m_guiTouchComponent.IsUp()) || this.GetSlowState() == BattleSlow.StateType.Slow;
  6528.         }
  6529.  
  6530.         public void CreateMethodCache()
  6531.         {
  6532.             Mevius.Battle.Api.GetRandomUnsignedInteger();
  6533.             Mevius.Battle.Api.GetRandomSingleFloat();
  6534.             this.CreateDamageSource(string.Empty, null, null, Vector3.zero, null, false, false, false);
  6535.             this.m_damageSourceManager.CreateMethodCache();
  6536.             this.m_manaObjectManager.CreateMethodCache();
  6537.             this.CreateMana(null, Vector3.zero, 0, false, 0, 0);
  6538.             this.UpdateManaGui();
  6539.             this.OnPlayerHit(false, false, false);
  6540.             BattleUtility.AddMissionCount(MissionCountType.None, 0);
  6541.             BattleUtility.AddBattleScore(0L);
  6542.             this.GetScoreTurnNum();
  6543.             this.AddTakeDamageTotal(null, null, 0);
  6544.             this.GiveDamageMissionCount(null, null, 0);
  6545.             this.AddRecoveryTotal(null, 0);
  6546.             BattleDamage.HitArg arg = new BattleDamage.HitArg();
  6547.             BattleDamage.OnHit(arg);
  6548.             BattleDamage.ProcElementAbilitySkill(null, null, Vector3.zero);
  6549.             BattleActor battleActor = new BattleActor();
  6550.             bool flag;
  6551.             battleActor.OnHit(out flag, false, false);
  6552.             battleActor.OnDamage(out flag, out flag, out flag, null, null);
  6553.             battleActor.IsActionTargetValidHitFirst(null);
  6554.             int num = 0;
  6555.             battleActor.ProcStatusEffectShield(ref num);
  6556.             battleActor.GetStatusEffectValue(BattleStatusEffect.ProcType.None);
  6557.             battleActor.GetUseCardAbilitySkillNum(DbManager.AbilitySkillType.ABILITYSKILL_TYPE_NONE);
  6558.             battleActor.IsUseCardAbilitySkill(DbManager.AbilitySkillType.ABILITYSKILL_TYPE_NONE);
  6559.             battleActor.IsBreakDamage();
  6560.             string jobAbilityId = battleActor.JobAbilityId;
  6561.             battleActor.ActionFlagBit = battleActor.ActionFlagBit;
  6562.             battleActor.CalcBreakDamage(out num, out num, out num, 0, null, false, false, false);
  6563.             battleActor.UpdateBreakState();
  6564.             battleActor.AddHp(0);
  6565.             battleActor.PlayMotion(string.Empty);
  6566.             battleActor.UpdateCardAbilityManaGui();
  6567.             battleActor.ActionFlagBit = battleActor.ActionFlagBit;
  6568.             battleActor.GetEffectResource(out jobAbilityId, out jobAbilityId, 0, string.Empty, string.Empty, Vector3.zero, null);
  6569.             battleActor.GetSoundResource(out jobAbilityId, out jobAbilityId, 0, string.Empty, string.Empty, Vector3.zero, null);
  6570.             BattleAi battleAi = new BattleAi(string.Empty, null);
  6571.             battleAi.OnBehavior(BattleAiData.Pattern.TimingType.HpBpDamageHit, string.Empty, null, true);
  6572.             C9834a30e5f3368ef11b898eb90b12c5b.Find(string.Empty);
  6573.             IEnumerator<C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c> enumerator = C9834a30e5f3368ef11b898eb90b12c5b.GetRecords().GetEnumerator();
  6574.             if (enumerator.MoveNext())
  6575.             {
  6576.                 C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c = enumerator.Current;
  6577.                 if (c03df96e967d7177ede70d5c100f08e3c != null)
  6578.                 {
  6579.                     c03df96e967d7177ede70d5c100f08e3c.m1467af6649f8c2c42db7965d4a2e590e();
  6580.                     c03df96e967d7177ede70d5c100f08e3c.m99d4196c8ddc2c84aa2a035182a3e754();
  6581.                     c03df96e967d7177ede70d5c100f08e3c.m2a2088e5423c9ed60aaf8024bb799763();
  6582.                     c03df96e967d7177ede70d5c100f08e3c.ma32fcd1fe2598c2edcfa5cdbeb0eb64f();
  6583.                     c03df96e967d7177ede70d5c100f08e3c.med3b109a0c7b9aaffc8f700ad530010f();
  6584.                     c03df96e967d7177ede70d5c100f08e3c.m31a2bc12a6fb70b72bfab3e85b658b3e();
  6585.                     c03df96e967d7177ede70d5c100f08e3c.m0a3adefa2ef034c2e9556ec82f7fa3c6();
  6586.                     c03df96e967d7177ede70d5c100f08e3c.m056cb6b23e1a1553df9a90eb3f5f804b();
  6587.                     c03df96e967d7177ede70d5c100f08e3c.mcdcc634daaa800ae30b0d9aa90d524cc();
  6588.                     c03df96e967d7177ede70d5c100f08e3c.m6374ec9bd9c83aa1592cd25bdd68315e();
  6589.                     c03df96e967d7177ede70d5c100f08e3c.m1ff35aae1a721dffe2c7ec2dfb4c573e();
  6590.                     c03df96e967d7177ede70d5c100f08e3c.m957592ac75221a66cc4d1fa3831c59b8();
  6591.                     c03df96e967d7177ede70d5c100f08e3c.m4a78ffda98410f820411120ffcbc8045();
  6592.                     c03df96e967d7177ede70d5c100f08e3c.m7b9ab26a81a7c308786cde1f6d7a628e();
  6593.                     c03df96e967d7177ede70d5c100f08e3c.md808a0de5cbd11616a88a9cfc181753d();
  6594.                     c03df96e967d7177ede70d5c100f08e3c.m87234b3ed2f74e5f979716260f759e77();
  6595.                     c03df96e967d7177ede70d5c100f08e3c.m5047a0ec8a5d083680dafc9a8766f38d();
  6596.                     c03df96e967d7177ede70d5c100f08e3c.m6a0716d2cc5a8d6f657bf217d26e449b();
  6597.                     c03df96e967d7177ede70d5c100f08e3c.m6e92409504ed0c8c5b06e0a97c95bb63();
  6598.                     c03df96e967d7177ede70d5c100f08e3c.m29e3d40ae989c1d5785b5175bd5d0659();
  6599.                     c03df96e967d7177ede70d5c100f08e3c.m110ab6d4a20f2042ea550a01b97a30dc();
  6600.                     c03df96e967d7177ede70d5c100f08e3c.m8a3ffcd9c8f5af823c8a42a71565561e();
  6601.                     c03df96e967d7177ede70d5c100f08e3c.m263e4f2d1158904e07d8b215e1b035db();
  6602.                     c03df96e967d7177ede70d5c100f08e3c.m0e119ce81d6d2a560389412592ca044c();
  6603.                     c03df96e967d7177ede70d5c100f08e3c.m9de5ae9d57303574e103e01b0c68c64d();
  6604.                     c03df96e967d7177ede70d5c100f08e3c.m5c7889c5b289e0849003f848e3f114c2();
  6605.                     c03df96e967d7177ede70d5c100f08e3c.m300216fe52c281630be5243bc8792ac2();
  6606.                     c03df96e967d7177ede70d5c100f08e3c.m99ff033c8247b70cbf541c4f00743dc9();
  6607.                     c03df96e967d7177ede70d5c100f08e3c.mb7c766a732e8d499ba6266ceaea417b6();
  6608.                     c03df96e967d7177ede70d5c100f08e3c.m86c5afc171f03c9baf7a9139d2c41bce();
  6609.                     c03df96e967d7177ede70d5c100f08e3c.mb4581b0c1c70816dbf7d2f28a87d55ae();
  6610.                     c03df96e967d7177ede70d5c100f08e3c.m811d2e53ea755f3830f5d97c8659fa1a();
  6611.                     c03df96e967d7177ede70d5c100f08e3c.m27948f4a0a5b32c2cf5b9550638a8c0c();
  6612.                     c03df96e967d7177ede70d5c100f08e3c.mfd7dfab5a03d8ac4040c8f598d517f0e();
  6613.                     c03df96e967d7177ede70d5c100f08e3c.me1c89bd544968a60816bc0b8e7b47a80();
  6614.                     c03df96e967d7177ede70d5c100f08e3c.m3a0d719c78ea3fae223cbf90b27ddc4f();
  6615.                     c03df96e967d7177ede70d5c100f08e3c.m1fea426dbc01abe4ac8facc5922a4813();
  6616.                     c03df96e967d7177ede70d5c100f08e3c.m2f3946dc86ba631c2fd16e6a9c6a714d();
  6617.                     c03df96e967d7177ede70d5c100f08e3c.m769a09740a1f46fc210b96ec17661da3();
  6618.                     c03df96e967d7177ede70d5c100f08e3c.m8663cd5d4e1bc28767c331587c5e8c32();
  6619.                     c03df96e967d7177ede70d5c100f08e3c.m759297b117b1f8fd9d42d531f3ef0f57();
  6620.                     c03df96e967d7177ede70d5c100f08e3c.m2c84f4a27d7efcd43161ea09563e314c();
  6621.                     c03df96e967d7177ede70d5c100f08e3c.mb17e5317c2a4fabba931b37a2e132c30();
  6622.                     c03df96e967d7177ede70d5c100f08e3c.m81f2266d072bf1e2634dd52decf119c5();
  6623.                     c03df96e967d7177ede70d5c100f08e3c.m5ad98d8a4cc2ec46c1ce7f385308e190();
  6624.                     c03df96e967d7177ede70d5c100f08e3c.mf426d0370819321cdca2df293f879469();
  6625.                     c03df96e967d7177ede70d5c100f08e3c.m8df6f86ebc5a2bfa5faee3054abfb443();
  6626.                     c03df96e967d7177ede70d5c100f08e3c.m44e96effc875ccd74e5023188a133a3a();
  6627.                     c03df96e967d7177ede70d5c100f08e3c.m47c0bd9f846c206b0b1cfdc278197dc5();
  6628.                     c03df96e967d7177ede70d5c100f08e3c.m886c64f77fafec63eda86595020883b9();
  6629.                     c03df96e967d7177ede70d5c100f08e3c.md9be087c8546e79969b04aa147c95bd6();
  6630.                     c03df96e967d7177ede70d5c100f08e3c.mac71ccd4bca5cfd056283422119c7c87();
  6631.                     c03df96e967d7177ede70d5c100f08e3c.m818cea48064d16af78d875b7f9c08fd0();
  6632.                     c03df96e967d7177ede70d5c100f08e3c.mb000a687470e13e29bbc7b874a8790d4();
  6633.                     c03df96e967d7177ede70d5c100f08e3c.m3a86498917093d62903fbe764a4fb67b();
  6634.                     c03df96e967d7177ede70d5c100f08e3c.m08617b6ba6b9a4e8e3b0e9619c6242f3();
  6635.                     c03df96e967d7177ede70d5c100f08e3c.m7a3b01306f0dde97c1f8713269e2e654();
  6636.                     c03df96e967d7177ede70d5c100f08e3c.m4a993a247ee44db08a2315a9ef58e674();
  6637.                     c03df96e967d7177ede70d5c100f08e3c.me54b3f3916dc0372b1b1954a7b30a347();
  6638.                     c03df96e967d7177ede70d5c100f08e3c.m84b7abab746d84abc1b35ed36b399916();
  6639.                     c03df96e967d7177ede70d5c100f08e3c.mb7e19e5ecacf66b59ef3bcbee973f0a7();
  6640.                     c03df96e967d7177ede70d5c100f08e3c.m71a0a24b533eafcd9951afaa941ddb43();
  6641.                     c03df96e967d7177ede70d5c100f08e3c.mcf041a3ccfd72b02bc7be50cd0b53e59();
  6642.                     c03df96e967d7177ede70d5c100f08e3c.m409e2d1af9fc2038e724dc25fe2d7999();
  6643.                     c03df96e967d7177ede70d5c100f08e3c.mf63eb4bd0711665cfef96eb0479e6a9b();
  6644.                     c03df96e967d7177ede70d5c100f08e3c.m19b8e48aa75c46f41bdd3dcf7cd70c1b();
  6645.                     c03df96e967d7177ede70d5c100f08e3c.m7b132ff2e691551f14040db4fe1c55fd();
  6646.                     c03df96e967d7177ede70d5c100f08e3c.m42059cddf83c1c61e1166efe751c69c7();
  6647.                     c03df96e967d7177ede70d5c100f08e3c.m2a2b1998964a658b4466e0fb5d8d287e();
  6648.                     c03df96e967d7177ede70d5c100f08e3c.meefffad531472590bfabdd34ef2416d5();
  6649.                     c03df96e967d7177ede70d5c100f08e3c.me4d51864a41cc3a3cca5aa95df5f7be1();
  6650.                     c03df96e967d7177ede70d5c100f08e3c.mb2ed0c384b8846ff6ea2540893eb129d();
  6651.                     c03df96e967d7177ede70d5c100f08e3c.m4fe9637c6ceff1377cd197d89cc75ecb();
  6652.                     c03df96e967d7177ede70d5c100f08e3c.m7e3ef2af79ede7a79f5c6b60c6c76b42();
  6653.                     c03df96e967d7177ede70d5c100f08e3c.md1e6aba89f9c5ad20e35aa11ae23fa5b();
  6654.                     c03df96e967d7177ede70d5c100f08e3c.mcb0705fc1591f54a27e304ca1797ff48();
  6655.                     c03df96e967d7177ede70d5c100f08e3c.m86dda0cf32427b50fd3c267b534fe474();
  6656.                     c03df96e967d7177ede70d5c100f08e3c.mb0b61ed8ee0084b324022b1734ae7922();
  6657.                     c03df96e967d7177ede70d5c100f08e3c.m7627e1e10877dff2168f653f6ad85c13();
  6658.                 }
  6659.             }
  6660.             IEnumerator<C24514bd3adc3e26e926bc8e966ad6873.Ccf5a35e5c2bf1875ddd37dc4036aee50> enumerator2 = C24514bd3adc3e26e926bc8e966ad6873.GetRecords().GetEnumerator();
  6661.             if (enumerator2.MoveNext())
  6662.             {
  6663.                 C24514bd3adc3e26e926bc8e966ad6873.Ccf5a35e5c2bf1875ddd37dc4036aee50 ccf5a35e5c2bf1875ddd37dc4036aee = enumerator2.Current;
  6664.                 if (ccf5a35e5c2bf1875ddd37dc4036aee != null)
  6665.                 {
  6666.                     ccf5a35e5c2bf1875ddd37dc4036aee.mdd7654f5eb3dbf6005e3d264c4988d11();
  6667.                     ccf5a35e5c2bf1875ddd37dc4036aee.m8f1a83a29c6d41a8a2932d9b43091924();
  6668.                 }
  6669.             }
  6670.             this.OnTutorialTrigger(BattleTutorialManager.TriggerType.EnemyBroken);
  6671.             Mevius.Db.Api.GetDropElementCountTable();
  6672.             Mevius.Db.Api.GetDropElementTypeTable();
  6673.             Mevius.Gui.Api.SetBattleCardAbilityElementCount(0, 0, 0, 0);
  6674.             this.ChainNum = this.ChainNum;
  6675.         }
  6676.  
  6677.         public Vector3 GetBackStepBaseDir()
  6678.         {
  6679.             Vector3 result;
  6680.             if (!this.ChaosBattle)
  6681.             {
  6682.                 result = Vector3.forward;
  6683.             }
  6684.             else
  6685.             {
  6686.                 result = Vector3.back;
  6687.             }
  6688.             return result;
  6689.         }
  6690.  
  6691.         public int GetEnemyAiCommonCounter(int index)
  6692.         {
  6693.             return (int)this.m_enemyAiCommonCounters[index];
  6694.         }
  6695.  
  6696.         public void SetEnemyAiCommonCounter(int index, int value)
  6697.         {
  6698.             this.m_enemyAiCommonCounters[index] = (short)value;
  6699.         }
  6700.  
  6701.         public byte PlayerJobChangeChargeTurn
  6702.         {
  6703.             get
  6704.             {
  6705.                 return this.m_playerJobChangeChargeTurn;
  6706.             }
  6707.             set
  6708.             {
  6709.                 if (!Mevius.App.Api.IsPartyMode() && this.m_playerJobChangeChargeTurn != value && GuiBattleMenu.Instance != null)
  6710.                 {
  6711.                     GuiBattleMenu.Instance.SetJobChangeChargeTurn((int)value, false);
  6712.                 }
  6713.                 this.m_playerJobChangeChargeTurn = value;
  6714.             }
  6715.         }
  6716.  
  6717.         public byte PlayerJobChangeThroughTurn
  6718.         {
  6719.             get
  6720.             {
  6721.                 return this.m_playerJobChangeThroughTurn;
  6722.             }
  6723.             set
  6724.             {
  6725.                 this.m_playerJobChangeThroughTurn = value;
  6726.             }
  6727.         }
  6728.  
  6729.         public void ProcChangeJob(bool loadData = false, bool summonEnd = false)
  6730.         {
  6731.             if (!loadData)
  6732.             {
  6733.                 Mevius.Db.Api.SetParameter(DbManager.ParameterType.Current_Job, (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) == 0) ? 1 : 0);
  6734.             }
  6735.             BattleActor battleActor;
  6736.             BattleActor battleActor2;
  6737.             if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  6738.             {
  6739.                 battleActor = this.FindActor(BattleManager.GetBattlePlayerName());
  6740.                 battleActor2 = this.FindActor(BattleManager.GetBattlePlayerSubName());
  6741.             }
  6742.             else
  6743.             {
  6744.                 battleActor = this.FindActor(BattleManager.GetBattlePlayerSubName());
  6745.                 battleActor2 = this.FindActor(BattleManager.GetBattlePlayerName());
  6746.             }
  6747.             if (!summonEnd)
  6748.             {
  6749.                 battleActor.chara.OnSetActive(false, true);
  6750.                 battleActor.chara.gameObject.SetActive(false);
  6751.                 battleActor2.chara.PhysicsResetPose();
  6752.                 battleActor2.chara.gameObject.SetActive(true);
  6753.                 battleActor2.chara.OnSetActive(true, true);
  6754.             }
  6755.             bool flag = this.IsPartyChange();
  6756.             if (!loadData)
  6757.             {
  6758.                 ElementAttributeType[] jobUseAttributeArray = BattleUtility.GetJobUseAttributeArray(battleActor2.Deck, true);
  6759.                 int[,] statusEffectEntries = battleActor.GetStatusEffectEntries();
  6760.                 int[][] array = new int[statusEffectEntries.GetLength(0)][];
  6761.                 int i = 0;
  6762.                 while (i < array.GetLength(0))
  6763.                 {
  6764.                     C02688ac2fa3465c4dc969e664556169f.Cdb83ac7b1b94f482a747dd16b359c48f cdb83ac7b1b94f482a747dd16b359c48f = C02688ac2fa3465c4dc969e664556169f.Find(statusEffectEntries[i, 0].ToString());
  6765.                     if (cdb83ac7b1b94f482a747dd16b359c48f == null)
  6766.                     {
  6767.                         goto IL_24B;
  6768.                     }
  6769.                     BattleStatusEffect.ProcType[] array2 = new BattleStatusEffect.ProcType[]
  6770.                     {
  6771.                         (BattleStatusEffect.ProcType)cdb83ac7b1b94f482a747dd16b359c48f.m337a17f130ee70b7376c74e7685ff24d(),
  6772.                         (BattleStatusEffect.ProcType)cdb83ac7b1b94f482a747dd16b359c48f.m722c29f56d15d8cd013e7822bdaa0eca(),
  6773.                         (BattleStatusEffect.ProcType)cdb83ac7b1b94f482a747dd16b359c48f.m57d64ec3f60c3c0db44ef991bd39ae67()
  6774.                     };
  6775.                     bool[] array3 = new bool[]
  6776.                     {
  6777.                         BattleUtility.IsStatusEffectProcForce(array2[0]) || BattleUtility.IsStatusEffectProcDeforce(array2[0]),
  6778.                         BattleUtility.IsStatusEffectProcForce(array2[1]) || BattleUtility.IsStatusEffectProcDeforce(array2[1]),
  6779.                         BattleUtility.IsStatusEffectProcForce(array2[2]) || BattleUtility.IsStatusEffectProcDeforce(array2[2])
  6780.                     };
  6781.                     if (!array3[0] && !array3[1] && !array3[2])
  6782.                     {
  6783.                         goto IL_24B;
  6784.                     }
  6785.                     bool flag2 = false;
  6786.                     for (int j = 0; j < array2.Length; j++)
  6787.                     {
  6788.                         if (array3[j])
  6789.                         {
  6790.                             BattleStatusEffect.ProcType procType = array2[j];
  6791.                             ElementAttributeType elementAttributeType = ElementAttributeType.None;
  6792.                             if (BattleStatusEffect.ProcType.ElementalGaugeMaxFire <= procType && procType <= BattleStatusEffect.ProcType.ElementalGaugeMaxDark)
  6793.                             {
  6794.                                 elementAttributeType = (ElementAttributeType)(procType - 110);
  6795.                             }
  6796.                             else if (BattleStatusEffect.ProcType.ElementalGaugeZeroFire <= procType && procType <= BattleStatusEffect.ProcType.ElementalGaugeZeroDark && jobUseAttributeArray.Length > 1)
  6797.                             {
  6798.                                 elementAttributeType = (ElementAttributeType)(procType - 120);
  6799.                             }
  6800.                             for (int k = 0; k < jobUseAttributeArray.Length; k++)
  6801.                             {
  6802.                                 if (jobUseAttributeArray[k] == elementAttributeType)
  6803.                                 {
  6804.                                     flag2 = true;
  6805.                                     break;
  6806.                                 }
  6807.                             }
  6808.                         }
  6809.                     }
  6810.                     if (flag2)
  6811.                     {
  6812.                         goto IL_24B;
  6813.                     }
  6814.                     IL_29A:
  6815.                     i++;
  6816.                     continue;
  6817.                     IL_24B:
  6818.                     array[i] = new int[4];
  6819.                     array[i][0] = statusEffectEntries[i, 0];
  6820.                     array[i][1] = statusEffectEntries[i, 1];
  6821.                     array[i][2] = statusEffectEntries[i, 2];
  6822.                     array[i][3] = statusEffectEntries[i, 3];
  6823.                     goto IL_29A;
  6824.                 }
  6825.                 bool manToMan = battleActor.ManToMan;
  6826.                 int hpMax = battleActor.HpMax;
  6827.                 battleActor.ClearStatusEffectEntries();
  6828.                 battleActor.ManToMan = false;
  6829.                 float num = (float)battleActor.HpMax / (float)hpMax;
  6830.                 battleActor.SetHp((int)((float)battleActor.Hp * num + 0.5f), false, false);
  6831.                 int hpMax2 = battleActor2.HpMax;
  6832.                 battleActor2.SetStatusEffectEntries(array);
  6833.                 battleActor2.ManToMan = manToMan;
  6834.                 float num2 = (float)battleActor2.HpMax / (float)hpMax2;
  6835.                 battleActor2.SetHp((int)((float)battleActor2.Hp * num2 + 0.5f), false, false);
  6836.                 battleActor.TransferMana(battleActor2);
  6837.                 int deck;
  6838.                 int deck2;
  6839.                 if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  6840.                 {
  6841.                     deck = Mevius.Db.Api.GetCurrentCardDeck();
  6842.                     deck2 = Mevius.Db.Api.GetCurrentCardDeck() + 12;
  6843.                 }
  6844.                 else
  6845.                 {
  6846.                     deck = Mevius.Db.Api.GetCurrentCardDeck() + 12;
  6847.                     deck2 = Mevius.Db.Api.GetCurrentCardDeck();
  6848.                 }
  6849.                 ElementAttributeType[] jobUseAttributeArray2 = BattleUtility.GetJobUseAttributeArray(deck, battleActor.IsSummon());
  6850.                 ElementAttributeType[] jobUseAttributeArray3 = BattleUtility.GetJobUseAttributeArray(deck2, battleActor2.IsSummon());
  6851.                 List<ElementAttributeType> list = new List<ElementAttributeType>();
  6852.                 foreach (ElementAttributeType elementAttributeType2 in jobUseAttributeArray2)
  6853.                 {
  6854.                     bool flag3 = false;
  6855.                     foreach (ElementAttributeType elementAttributeType3 in jobUseAttributeArray3)
  6856.                     {
  6857.                         if (elementAttributeType2 == elementAttributeType3)
  6858.                         {
  6859.                             flag3 = true;
  6860.                             break;
  6861.                         }
  6862.                     }
  6863.                     if (!flag3)
  6864.                     {
  6865.                         list.Add(elementAttributeType2);
  6866.                     }
  6867.                 }
  6868.                 if (list.Count > 0)
  6869.                 {
  6870.                     for (int n = 0; n <= 5; n++)
  6871.                     {
  6872.                         if (battleActor2.IsAutoAbility(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1400 + n))
  6873.                         {
  6874.                             battleActor2.ConvertManaElement((ElementAttributeType)n, list);
  6875.                             if (!summonEnd)
  6876.                             {
  6877.                                 this.UpdateManaGui();
  6878.                             }
  6879.                             break;
  6880.                         }
  6881.                     }
  6882.                 }
  6883.                 battleActor2.ActionNum = battleActor.ActionNum;
  6884.                 battleActor2.SuccessiveActionNum = battleActor.SuccessiveActionNum;
  6885.                 battleActor2.ActionNumDecrementFlag = battleActor.ActionNumDecrementFlag;
  6886.                 battleActor2.AbilityCombo = battleActor.AbilityCombo;
  6887.                 battleActor2.AbilityUseSuportCount = battleActor.AbilityUseSuportCount;
  6888.                 battleActor.ManaAttributeUseNum.CopyTo(battleActor2.ManaAttributeUseNum, 0);
  6889.                 if (battleActor.IsSummon())
  6890.                 {
  6891.                     Vector3 basePosition = this._basePosition;
  6892.                     float playerAreaRandomDistance = this.GetPlayerAreaRandomDistance();
  6893.                     if (this.m_chaosBattle)
  6894.                     {
  6895.                         basePosition.z -= playerAreaRandomDistance;
  6896.                     }
  6897.                     else
  6898.                     {
  6899.                         basePosition.z += playerAreaRandomDistance;
  6900.                     }
  6901.                     Vector3 vector = -basePosition.normalized;
  6902.                     float num3 = (!(battleActor2.chara.GetCharacterControllerComponent() != null)) ? 2f : battleActor2.chara.GetCharacterControllerComponent().height;
  6903.                     RaycastHit raycastHit;
  6904.                     if (Physics.Raycast(basePosition + Vector3.up * num3 * 0.5f, Vector3.down, out raycastHit, num3, 1 << LayerMask.NameToLayer("Phy Bg")))
  6905.                     {
  6906.                         basePosition.y = raycastHit.point.y;
  6907.                     }
  6908.                     battleActor2.chara.transform.position = basePosition;
  6909.                     battleActor2.chara.transform.rotation = battleActor.chara.transform.rotation;
  6910.                     battleActor2.chara.OnSetRotDirection(battleActor.chara.GetRotDirection());
  6911.                     if (this.m_fairyActor != null)
  6912.                     {
  6913.                         this.m_fairyActor.Chara.ShowHideModel(true, true);
  6914.                     }
  6915.                 }
  6916.                 else
  6917.                 {
  6918.                     battleActor2.chara.transform.position = battleActor.chara.transform.position;
  6919.                     if (battleActor2.IsSummon())
  6920.                     {
  6921.                         battleActor2.chara.transform.rotation = Quaternion.LookRotation(-this.GetBackStepBaseDir());
  6922.                         battleActor2.chara.OnSetRotDirection(Vector3.zero);
  6923.                         if (this.m_fairyActor != null)
  6924.                         {
  6925.                             this.m_fairyActor.Chara.ShowHideModel(false, true);
  6926.                         }
  6927.                     }
  6928.                     else
  6929.                     {
  6930.                         battleActor2.chara.transform.rotation = battleActor.chara.transform.rotation;
  6931.                         battleActor2.chara.OnSetRotDirection(battleActor.chara.GetRotDirection());
  6932.                     }
  6933.                 }
  6934.                 if (!flag)
  6935.                 {
  6936.                     float hpRate = battleActor.GetHpRate();
  6937.                     if ((int)(hpRate * 100f) != (int)(battleActor2.GetHpRate() * 100f))
  6938.                     {
  6939.                         int num4 = (int)((float)battleActor2.HpMax * hpRate + 0.5f);
  6940.                         if (num4 < 1)
  6941.                         {
  6942.                             num4 = 1;
  6943.                         }
  6944.                         battleActor2.SetHp(num4, false, true);
  6945.                     }
  6946.                     else
  6947.                     {
  6948.                         battleActor2.SetHp(battleActor2.Hp, false, true);
  6949.                     }
  6950.                 }
  6951.                 else
  6952.                 {
  6953.                     battleActor2.UpdatePinchAutoAbility();
  6954.                 }
  6955.                 battleActor2.TargetActor = battleActor.TargetActor;
  6956.                 float num5 = (float)battleActor.ManaUseNum / (float)battleActor.JobAbilityUseManaUseNum;
  6957.                 float num6 = (float)battleActor2.ManaUseNum / (float)battleActor2.JobAbilityUseManaUseNum;
  6958.                 if ((int)(num5 * 100f) != (int)(num6 * 100f))
  6959.                 {
  6960.                     battleActor2.ManaUseNum = (int)((float)battleActor2.JobAbilityUseManaUseNum * num5 + 0.5f);
  6961.                     if (num5 < 1f && battleActor2.ManaUseNum == battleActor2.JobAbilityUseManaUseNum)
  6962.                     {
  6963.                         battleActor2.ManaUseNum--;
  6964.                     }
  6965.                 }
  6966.                 battleActor2.PrevUseCardAbilityAttribute = battleActor.PrevUseCardAbilityAttribute;
  6967.                 battleActor2.CardAbilityInfos[4].chargeTurn = battleActor.CardAbilityInfos[4].chargeTurn;
  6968.                 battleActor2.CardAbilityInfos[4].useCount = battleActor.CardAbilityInfos[4].useCount;
  6969.                 battleActor2.CardAbilityInfos[4].turnUseCount = battleActor.CardAbilityInfos[4].turnUseCount;
  6970.             }
  6971.             battleActor2.State = battleActor.State;
  6972.             if (this.IsCountTimeBattle())
  6973.             {
  6974.                 battleActor2.CopyActionTimeList(battleActor.ActionTimeList);
  6975.             }
  6976.             battleActor.SetWeaponEffectLoopOff();
  6977.             battleActor.LoopOffSeraResidentEffect();
  6978.             battleActor2.SetEnchantWeaponEffect();
  6979.             battleActor2.SetSeraResidentEffect();
  6980.             if (!summonEnd)
  6981.             {
  6982.                 this.m_cameraManager.OnJobChange(battleActor, battleActor2);
  6983.             }
  6984.             this.m_playerActor = battleActor2;
  6985.             this.m_playerActorSub = battleActor;
  6986.             if (!loadData)
  6987.             {
  6988.                 if (Mevius.Db.Api.IsSummonMode() && Mevius.DataSheet.Api.GetResidentInteger("ff10UseSummonRecast", 1) != 0)
  6989.                 {
  6990.                     BattleActor battleActor3;
  6991.                     if (this.m_playerActor.IsSummon())
  6992.                     {
  6993.                         battleActor3 = this.m_playerActor;
  6994.                     }
  6995.                     else
  6996.                     {
  6997.                         battleActor3 = this.m_playerActorSub;
  6998.                     }
  6999.                     int num7;
  7000.                     int residentInteger;
  7001.                     if (this.m_playerActor == battleActor3)
  7002.                     {
  7003.                         num7 = Mevius.DataSheet.Api.GetResidentInteger("ff10DefaultSummonBackRecast", 0);
  7004.                         int num8;
  7005.                         if (battleActor3.GetAutoAbilityParam(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1835, out num8))
  7006.                         {
  7007.                             num7 += num8;
  7008.                         }
  7009.                         residentInteger = Mevius.DataSheet.Api.GetResidentInteger("ff10MinSummonBackRecast", 0);
  7010.                     }
  7011.                     else
  7012.                     {
  7013.                         num7 = Mevius.DataSheet.Api.GetResidentInteger("ff10DefaultSummonRecast", 2);
  7014.                         int num9;
  7015.                         if (battleActor3.GetAutoAbilityParam(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1834, out num9))
  7016.                         {
  7017.                             num7 += num9;
  7018.                         }
  7019.                         residentInteger = Mevius.DataSheet.Api.GetResidentInteger("ff10MinSummonRecast", 0);
  7020.                     }
  7021.                     if (num7 < residentInteger)
  7022.                     {
  7023.                         num7 = residentInteger;
  7024.                     }
  7025.                     this.PlayerJobChangeChargeTurn = (byte)num7;
  7026.                 }
  7027.                 else
  7028.                 {
  7029.                     int num10;
  7030.                     this.m_playerActor.GetAutoAbilityParam(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1410, out num10);
  7031.                     this.PlayerJobChangeChargeTurn = (byte)num10;
  7032.                 }
  7033.                 if (this.m_playerActor.ActionNum == 0)
  7034.                 {
  7035.                     BattleManager._i.OnEnemyNoActionPlayerActionContinue();
  7036.                 }
  7037.                 if (!summonEnd)
  7038.                 {
  7039.                     this.m_playerActor.JobChangeIn(flag);
  7040.                 }
  7041.             }
  7042.             for (int num11 = 0; num11 < this.m_actorList.Count; num11++)
  7043.             {
  7044.                 BattleActor battleActor4 = this.m_actorList[num11];
  7045.                 if (battleActor4 != null && battleActor4.IsEnemy() && battleActor4.IsActive())
  7046.                 {
  7047.                     battleActor4.TargetActor = this.m_playerActor;
  7048.                 }
  7049.             }
  7050.             if (!loadData && !summonEnd)
  7051.             {
  7052.                 Mevius.Gui.Api.ShowBattleMenu(this.m_playerActor.JobType, this.m_playerActor.GetAbilityButtonInfo(), string.Empty, BattleUtility.GetJobUseAttributeArray(this.m_playerActor.Deck, this.m_playerActor.IsSummon()), this.m_playerActor.Hp, this.m_playerActor.HpMax, this.m_playerActor.ManaUseNum, this.m_playerActor.JobAbilityUseManaUseNum, true);
  7053.                 string name;
  7054.                 string linkageName;
  7055.                 this.GetJobAbilityName(out name, out linkageName);
  7056.                 Mevius.Gui.Api.SetBattleJobAbilityName(name, linkageName);
  7057.                 this.m_playerActor.UpdateCardAbilityTurnCountGui();
  7058.                 this.m_playerActor.UpdateStatusEffectGui(false);
  7059.                 this.UpdateManaGui();
  7060.                 this.m_playerActor.ElementalGauge.Reset();
  7061.                 this.m_playerActor.UpdateElementalGaugeGui();
  7062.                 Mevius.Gui.Api.SetBattlePlayerActionName(string.Empty);
  7063.                 C8f07bc7aaef5445b9988a9d210e42418.Ca060fd76133aa5c704d976700ed7cdd9 equipmentDatasheetElem = Mevius.Db.Api.GetEquipmentDatasheetElem(Mevius.Db.Api.EQUIPMENT_TYPE.EQUIPMENT_TYPE_JOB, Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0, false);
  7064.                 if (equipmentDatasheetElem != null)
  7065.                 {
  7066.                     ElementAttributeType type = ElementAttributeType.None;
  7067.                     for (int num12 = 0; num12 <= 5; num12++)
  7068.                     {
  7069.                         if (battleActor2.IsAutoAbility(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1400 + num12))
  7070.                         {
  7071.                             type = (ElementAttributeType)num12;
  7072.                             break;
  7073.                         }
  7074.                     }
  7075.                     if (flag)
  7076.                     {
  7077.                         Mevius.Gui.Api.ShowBattlePartyChange(equipmentDatasheetElem.ma34fa63dee4ab185df72b3bbf2f2c471(), type);
  7078.                     }
  7079.                     else
  7080.                     {
  7081.                         Mevius.Gui.Api.ShowBattleJobChange(equipmentDatasheetElem.ma34fa63dee4ab185df72b3bbf2f2c471(), type);
  7082.                     }
  7083.                 }
  7084.             }
  7085.             if (!summonEnd)
  7086.             {
  7087.                 this.UpdateSubJobElementRing();
  7088.             }
  7089.             if (!loadData && !summonEnd)
  7090.             {
  7091.                 if (!flag)
  7092.                 {
  7093.                     Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  7094.                     {
  7095.                         m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  7096.                         m_strSubResource = "change_001",
  7097.                         m_BindActor = this.m_playerActor.chara.gameObject
  7098.                     });
  7099.                 }
  7100.                 Mevius.Sound.Api.StopSound(this.m_jobChangeSoundHandle, 100);
  7101.                 this.m_jobChangeSoundHandle = this.m_playerActor.PlayStateSound(StateSound.StateSoundType.JobChange);
  7102.                 GameObject gameObject = this.m_playerActor.chara.gameObject;
  7103.                 if (gameObject)
  7104.                 {
  7105.                     FacialController component = gameObject.GetComponent<FacialController>();
  7106.                     if (component != null)
  7107.                     {
  7108.                         int playTime = Mevius.Sound.Api.GetPlayTime(this.m_jobChangeSoundHandle);
  7109.                         if (playTime > 0)
  7110.                         {
  7111.                             PreciseTime preciseTime = new PreciseTime((float)playTime / 1000f * 0.9f);
  7112.                             component.EnableLipsync = true;
  7113.                             component.StartLipsync(preciseTime.GetSecond());
  7114.                         }
  7115.                     }
  7116.                 }
  7117.                 string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  7118.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field_3D, soundResourceName, "system_se_jobchange", 1f, 0, 0, this.m_playerActor.chara.transform.position, null, false, -1, 0, 1f);
  7119.                 if (this.m_isJobBgm)
  7120.                 {
  7121.                     int num13 = Mevius.Db.Api.GetCurrentCardDeck();
  7122.                     if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  7123.                     {
  7124.                         num13 += 12;
  7125.                     }
  7126.                     string bgmName = BattleUtility.GetBgmName(num13, this.m_bgmRandValue);
  7127.                     Mevius.Sound.Api.PlayBgm(BgmManager.BgmLayer.Bgm_Battle, bgmName, 0, 1f);
  7128.                 }
  7129.                 if (flag)
  7130.                 {
  7131.                     BattleUtility.AddMissionCount(MissionCountType.MemberChangeCount, 1);
  7132.                 }
  7133.                 else
  7134.                 {
  7135.                     BattleUtility.AddMissionCount(MissionCountType.JobChangeCount, 1);
  7136.                 }
  7137.             }
  7138.             if (this.IsCountTimeBattle() && !loadData)
  7139.             {
  7140.                 this.m_jobChangeActionGauge = this.GetJobChangeActionGauge();
  7141.                 GuiBattleMenu.Instance.TimeLine.JobChangeActionGaugeAmount = this.m_jobChangeActionGauge;
  7142.                 C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  7143.                 if (ca4d3b5367a73030692d322e3f08669b != null)
  7144.                 {
  7145.                     GuiBattleMenu.Instance.TimeLine.SubStrikeActionGaugeAmount = (int)ca4d3b5367a73030692d322e3f08669b.m8ffedb5dbe5912c2b2eb70f721a7dfac();
  7146.                 }
  7147.                 this.m_activeActionOrderActor = this.m_playerActor;
  7148.                 this.CreateActionOrderList();
  7149.             }
  7150.             this.SetFairyFollowPlayer(true);
  7151.         }
  7152.  
  7153.         public void AddStatusEffectEnemy(BattleActor owner, int statusEffectId, int prob, int turn)
  7154.         {
  7155.             for (int i = 0; i < this.m_actorList.Count; i++)
  7156.             {
  7157.                 BattleActor battleActor = this.m_actorList[i];
  7158.                 if (battleActor != null && battleActor.IsEnemy() && battleActor.IsActive() && (long)prob > (long)((ulong)(Mevius.Battle.Api.GetRandomUnsignedInteger() % 100u)))
  7159.                 {
  7160.                     Mevius.Gui.Constants.PopupStatusKind kind;
  7161.                     Mevius.Gui.Constants.PopupStatusEffect effect;
  7162.                     string value;
  7163.                     BattleUtility.AddStatusEffect(out kind, out effect, out value, owner, battleActor, statusEffectId, turn, BattleStatusEffect.StateType.Normal, 0, true, true);
  7164.                     if (!string.IsNullOrEmpty(value))
  7165.                     {
  7166.                         Transform transform = battleActor.chara.GetElementIdTransform(ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.MAGIC_GUARD));
  7167.                         if (!transform)
  7168.                         {
  7169.                             transform = battleActor.chara.transform;
  7170.                         }
  7171.                         Vector2 bindOffset = new Vector2(Mevius.Common.Random.GetInstance().GetSingleFloat() * 100f - 50f, Mevius.Common.Random.GetInstance().GetSingleFloat() * 100f - 50f);
  7172.                         Mevius.Gui.Api.AddStatusPopup(kind, effect, value, transform, bindOffset, true);
  7173.                         Mevius.Gui.Api.ShowPopup();
  7174.                     }
  7175.                     battleActor.UpdateStatusEffectGui(false);
  7176.                 }
  7177.             }
  7178.         }
  7179.  
  7180.         public void CreateBreakEffect()
  7181.         {
  7182.             Mevius.Effect.Api.DestroyEffect(this.m_breakEffectHandle);
  7183.             this.m_breakEffectHandle = Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  7184.             {
  7185.                 m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  7186.                 m_strSubResource = "break_fil_001"
  7187.             });
  7188.         }
  7189.  
  7190.         private void LoadPlayerCardResources()
  7191.         {
  7192.             BattleActor battleActor = this.FindActor(BattleManager.GetBattlePlayerName());
  7193.             this.LoadCardResource(battleActor);
  7194.             if (Mevius.App.Api.IsPartyMode())
  7195.             {
  7196.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  7197.                 {
  7198.                     if (this.m_multiBattleActorList[i] != null && this.m_multiBattleActorList[i].C648971f118c7e1100318b6fb7ac13b59Card != null)
  7199.                     {
  7200.                         GuiManager.Instance.cardManager.LoadRequest(int.Parse(this.m_multiBattleActorList[i].C648971f118c7e1100318b6fb7ac13b59Card.m293ab5c86c3157596fd9889d9de244b1().Substring(3)));
  7201.                     }
  7202.                 }
  7203.             }
  7204.             else
  7205.             {
  7206.                 GuiManager.Instance.cardManager.LoadRequest(int.Parse(battleActor.C648971f118c7e1100318b6fb7ac13b59Card.m293ab5c86c3157596fd9889d9de244b1().Substring(3)));
  7207.                 BattleActor battleActor2 = this.FindActor(BattleManager.GetBattlePlayerSubName());
  7208.                 if (battleActor2 != null)
  7209.                 {
  7210.                     this.LoadCardResource(battleActor2);
  7211.                     GuiManager.Instance.cardManager.LoadRequest(int.Parse(battleActor2.C648971f118c7e1100318b6fb7ac13b59Card.m293ab5c86c3157596fd9889d9de244b1().Substring(3)));
  7212.                 }
  7213.             }
  7214.         }
  7215.  
  7216.         private void LoadCardResource(BattleActor actor)
  7217.         {
  7218.             if (actor != null)
  7219.             {
  7220.                 for (int i = 0; i < actor.CardAbilityInfos.Length; i++)
  7221.                 {
  7222.                     if (!string.IsNullOrEmpty(actor.CardAbilityInfos[i].cardIconName))
  7223.                     {
  7224.                         GuiManager.Instance.cardManager.LoadRequest(int.Parse(actor.CardAbilityInfos[i].cardIconName.Substring(3)));
  7225.                     }
  7226.                 }
  7227.             }
  7228.         }
  7229.  
  7230.         private void UpdateSubJobElementRing()
  7231.         {
  7232.             if (GuiBattleMenu.Instance == null)
  7233.             {
  7234.                 return;
  7235.             }
  7236.             ElementAttributeType[] jobUseAttributeArray;
  7237.             if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  7238.             {
  7239.                 jobUseAttributeArray = BattleUtility.GetJobUseAttributeArray(Mevius.Db.Api.GetCurrentCardDeck(), false);
  7240.             }
  7241.             else
  7242.             {
  7243.                 jobUseAttributeArray = BattleUtility.GetJobUseAttributeArray(Mevius.Db.Api.GetCurrentCardDeck() + 12, false);
  7244.             }
  7245.             GuiBattleMenu.Instance.SetSubJobElementalGauge(jobUseAttributeArray);
  7246.         }
  7247.  
  7248.         public BattleActor GetEnemyTargetActor(BattleActor actor)
  7249.         {
  7250.             BattleActor result;
  7251.             if (Mevius.App.Api.IsPartyMode())
  7252.             {
  7253.                 int statusEffectProvokeParam = actor.GetStatusEffectProvokeParam();
  7254.                 if (statusEffectProvokeParam != -1)
  7255.                 {
  7256.                     result = this.m_multiBattleActorList[statusEffectProvokeParam];
  7257.                 }
  7258.                 else
  7259.                 {
  7260.                     List<BattleActor> list = new List<BattleActor>();
  7261.                     List<BattleActor> list2 = new List<BattleActor>();
  7262.                     for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  7263.                     {
  7264.                         if (this.m_multiBattleActorList[i].IsActive())
  7265.                         {
  7266.                             if ((1 << this.m_multiBattleActorList[i].PartySlot & actor.EnemyTargetIndexBit) == 0)
  7267.                             {
  7268.                                 list.Add(this.m_multiBattleActorList[i]);
  7269.                             }
  7270.                             list2.Add(this.m_multiBattleActorList[i]);
  7271.                         }
  7272.                     }
  7273.                     if (list.Count == 0)
  7274.                     {
  7275.                         actor.EnemyTargetIndexBit = 0;
  7276.                         list = list2;
  7277.                     }
  7278.                     if (0 < list.Count)
  7279.                     {
  7280.                         int index = (int)((ulong)this.GetRandomUnsignedInteger() % (ulong)((long)list.Count));
  7281.                         result = list[index];
  7282.                     }
  7283.                     else
  7284.                     {
  7285.                         result = BattleManager._i.GetPlayerActor();
  7286.                     }
  7287.                 }
  7288.             }
  7289.             else
  7290.             {
  7291.                 result = BattleManager._i.GetPlayerActor();
  7292.             }
  7293.             return result;
  7294.         }
  7295.  
  7296.         public BattleActor GetEnemyTargetActorAttackAll()
  7297.         {
  7298.             BattleActor result = null;
  7299.             if (Mevius.App.Api.IsPartyMode() && 2 < this.m_multiBattleActorList.Count)
  7300.             {
  7301.                 List<BattleActor> list = new List<BattleActor>();
  7302.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  7303.                 {
  7304.                     if (this.m_multiBattleActorList[i].IsActive())
  7305.                     {
  7306.                         list.Add(this.m_multiBattleActorList[i]);
  7307.                     }
  7308.                 }
  7309.                 if (2 < list.Count)
  7310.                 {
  7311.                     float[,] array = new float[list.Count, 2];
  7312.                     Vector3[] array2 = new Vector3[list.Count];
  7313.                     for (int j = 0; j < list.Count; j++)
  7314.                     {
  7315.                         array[j, 0] = float.MaxValue;
  7316.                         array[j, 1] = float.MaxValue;
  7317.                         array2[j] = this.m_multiBattleActorList[j].chara.transform.position;
  7318.                         array2[j].y = 0f;
  7319.                     }
  7320.                     for (int k = 0; k < list.Count - 1; k++)
  7321.                     {
  7322.                         for (int l = k + 1; l < list.Count; l++)
  7323.                         {
  7324.                             float num = Vector3.Distance(array2[k], array2[l]);
  7325.                             int[] array3 = new int[]
  7326.                             {
  7327.                                 k,
  7328.                                 l
  7329.                             };
  7330.                             for (int m = 0; m < array3.Length; m++)
  7331.                             {
  7332.                                 for (int n = 0; n < 2; n++)
  7333.                                 {
  7334.                                     int num2 = array3[m];
  7335.                                     if (num < array[num2, n])
  7336.                                     {
  7337.                                         if (n == 0)
  7338.                                         {
  7339.                                             array[num2, n + 1] = array[num2, n];
  7340.                                         }
  7341.                                         array[num2, n] = num;
  7342.                                         break;
  7343.                                     }
  7344.                                 }
  7345.                             }
  7346.                         }
  7347.                     }
  7348.                     float num3 = float.MaxValue;
  7349.                     for (int num4 = 0; num4 < list.Count; num4++)
  7350.                     {
  7351.                         float num5 = array[num4, 0] + array[num4, 1];
  7352.                         if (num5 < num3)
  7353.                         {
  7354.                             num3 = num5;
  7355.                             result = list[num4];
  7356.                         }
  7357.                     }
  7358.                 }
  7359.             }
  7360.             return result;
  7361.         }
  7362.  
  7363.         public List<BattleActor> GetMultiBattleActorList()
  7364.         {
  7365.             return this.m_multiBattleActorList;
  7366.         }
  7367.  
  7368.         public BattleActor GetMultiBattleActorByIndex(int index)
  7369.         {
  7370.             if (index >= 0 && index < this.m_multiBattleActorList.Count)
  7371.             {
  7372.                 return this.m_multiBattleActorList[index];
  7373.             }
  7374.             return null;
  7375.         }
  7376.  
  7377.         public int GetMultiBattleCurrentOrder()
  7378.         {
  7379.             return this.m_multiBattleCurrentOrder;
  7380.         }
  7381.  
  7382.         public BattleActor GetSelfActor()
  7383.         {
  7384.             if (Mevius.App.Api.IsPartyMode())
  7385.             {
  7386.                 return this.m_selfActor;
  7387.             }
  7388.             return this.GetPlayerActor();
  7389.         }
  7390.  
  7391.         public void SetPlayerActionPass()
  7392.         {
  7393.             if (this.m_selfActor == this.m_playerActor && !this.m_selfActor.CommandInputEnd)
  7394.             {
  7395.                 if (Mevius.Party.Api.HasCommandStock())
  7396.                 {
  7397.                     Mevius.Gui.Api.OnEndInput(Mevius.Gui.Api.EndInputType.ActionFinished);
  7398.                 }
  7399.                 else
  7400.                 {
  7401.                     Mevius.Gui.Api.OnEndInput(Mevius.Gui.Api.EndInputType.Pass);
  7402.                 }
  7403.                 this.m_selfActor.UseActionPass(false, false);
  7404.                 this.EndSlow();
  7405.             }
  7406.         }
  7407.  
  7408.         private void UpdateMultiBattleCmd()
  7409.         {
  7410.             if (!Mevius.App.Api.IsPartyMode())
  7411.             {
  7412.                 return;
  7413.             }
  7414.             if (Mevius.App.Api.IsPartyMode() && Mevius.Party.Api.IsExitPlayer())
  7415.             {
  7416.                 this.Step = BattleManager.BattleStep.Escape;
  7417.                 return;
  7418.             }
  7419.             if (Mevius.Party.Api.IsExistForceSnap())
  7420.             {
  7421.                 Mevius.Party.Api.ClearCommandStock();
  7422.                 int[] array = new int[8];
  7423.                 for (int i = 0; i < this._entryBattleCharaSpecList.Count; i++)
  7424.                 {
  7425.                     string enemyActorName = BattleManager.GetEnemyActorName(i);
  7426.                     BattleActor battleActor = this.FindActor(enemyActorName);
  7427.                     if (battleActor != null)
  7428.                     {
  7429.                         array[i] = battleActor.Hp;
  7430.                     }
  7431.                 }
  7432.                 Mevius.Party.Api.SetUpSnap(true, true, this.m_selfActor.Hp, this.m_selfActor.ManaElements, array);
  7433.                 this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  7434.                 this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SnapSyncWait;
  7435.                 return;
  7436.             }
  7437.             if (this.m_snapType == Mevius.Party.Api.SnapStepType.SnapStepType_NONE)
  7438.             {
  7439.                 this.m_snapType = Mevius.Party.Api.GetSnapStepType();
  7440.             }
  7441.             switch (this.m_multiBattleCmdStep)
  7442.             {
  7443.             case BattleManager.MultiBattleCmdStep.SendSnap:
  7444.                 if (!Mevius.Party.Api.IsWaitSendSnap())
  7445.                 {
  7446.                     Mevius.Party.Api.SendSnap();
  7447.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SnapSync;
  7448.                 }
  7449.                 break;
  7450.             case BattleManager.MultiBattleCmdStep.SnapSync:
  7451.                 if (Mevius.Party.Api.IsExistNextSnap())
  7452.                 {
  7453.                     int[] array2 = new int[8];
  7454.                     for (int j = 0; j < this._entryBattleCharaSpecList.Count; j++)
  7455.                     {
  7456.                         string enemyActorName2 = BattleManager.GetEnemyActorName(j);
  7457.                         BattleActor battleActor2 = this.FindActor(enemyActorName2);
  7458.                         if (battleActor2 != null)
  7459.                         {
  7460.                             array2[j] = battleActor2.Hp;
  7461.                         }
  7462.                     }
  7463.                     Mevius.Party.Api.SetUpSnap(true, true, this.m_selfActor.Hp, this.m_selfActor.ManaElements, array2);
  7464.                     this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  7465.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SnapSyncWait;
  7466.                 }
  7467.                 else if (Mevius.Party.Api.IsNeedSendSnap(true))
  7468.                 {
  7469.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SendSnap;
  7470.                 }
  7471.                 break;
  7472.             case BattleManager.MultiBattleCmdStep.SnapSyncWait:
  7473.                 if (!Mevius.Party.Api.WaitPartySnap(true))
  7474.                 {
  7475.                     Mevius.Party.Api.SetUpSnapHp();
  7476.                     this.RestoreMultiData(false);
  7477.                     this.m_snapType = Mevius.Party.Api.GetSnapStepType();
  7478.                     switch (this.m_snapType)
  7479.                     {
  7480.                     case Mevius.Party.Api.SnapStepType.SnapStepType_INIT:
  7481.                         this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  7482.                         break;
  7483.                     case Mevius.Party.Api.SnapStepType.SnapStepType_INPUT:
  7484.                         this.SetCurrentTarget(this.m_selfActor.TargetActor);
  7485.                         this.m_partyMemberTurn = false;
  7486.                         this.HideBattleEnemyActionName();
  7487.                         this._step = BattleManager.BattleStep.MultiBattleInputStart;
  7488.                         break;
  7489.                     case Mevius.Party.Api.SnapStepType.SnapStepType_PARTY:
  7490.                     {
  7491.                         this.m_randCount = 0;
  7492.                         this.m_damageRandCount = 0;
  7493.                         this.m_movementRandCount = 0;
  7494.                         this.m_multiBattleSlotList.Clear();
  7495.                         int[] partyType = Mevius.Party.Api.GetPartyType();
  7496.                         for (int k = 0; k < partyType.Length; k++)
  7497.                         {
  7498.                             if (partyType[k] != 4)
  7499.                             {
  7500.                                 int num = k;
  7501.                                 ulong partyCommandTime = Mevius.Party.Api.GetPartyCommandTime(num);
  7502.                                 if (partyCommandTime != 0UL)
  7503.                                 {
  7504.                                     int[,] commandStock = Mevius.Party.Api.GetCommandStock(num, true);
  7505.                                     bool flag = true;
  7506.                                     for (int l = 0; l < commandStock.GetLength(0); l++)
  7507.                                     {
  7508.                                         if (commandStock[l, 0] >= 1 && commandStock[l, 0] <= 4)
  7509.                                         {
  7510.                                             flag = false;
  7511.                                             break;
  7512.                                         }
  7513.                                     }
  7514.                                     if (flag)
  7515.                                     {
  7516.                                         for (int m = 0; m < this.m_multiBattleActorList.Count; m++)
  7517.                                         {
  7518.                                             BattleActor battleActor3 = this.m_multiBattleActorList[m];
  7519.                                             if (battleActor3.PartySlot == num && battleActor3.IsPlayer() && battleActor3.IsActive())
  7520.                                             {
  7521.                                                 battleActor3.UseActionPass(flag, false);
  7522.                                                 break;
  7523.                                             }
  7524.                                         }
  7525.                                     }
  7526.                                     else
  7527.                                     {
  7528.                                         int index = 0;
  7529.                                         bool flag2 = false;
  7530.                                         for (int n = 0; n < this.m_multiBattleSlotList.Count; n++)
  7531.                                         {
  7532.                                             if (partyCommandTime < Mevius.Party.Api.GetPartyCommandTime(this.m_multiBattleSlotList[n]))
  7533.                                             {
  7534.                                                 flag2 = true;
  7535.                                                 index = n;
  7536.                                                 break;
  7537.                                             }
  7538.                                         }
  7539.                                         if (flag2)
  7540.                                         {
  7541.                                             this.m_multiBattleSlotList.Insert(index, num);
  7542.                                         }
  7543.                                         else
  7544.                                         {
  7545.                                             this.m_multiBattleSlotList.Add(num);
  7546.                                         }
  7547.                                     }
  7548.                                 }
  7549.                             }
  7550.                         }
  7551.                         Mevius.Gui.Api.OnFinishCommand();
  7552.                         this.HideBattleEnemyActionName();
  7553.                         this._step = BattleManager.BattleStep.PlayerTurnStart;
  7554.                         break;
  7555.                     }
  7556.                     case Mevius.Party.Api.SnapStepType.SnapStepType_ENEMY:
  7557.                         this.m_randCount = 0;
  7558.                         this.m_damageRandCount = 0;
  7559.                         this.m_movementRandCount = 0;
  7560.                         this.SetCurrentTarget(this.m_selfActor.TargetActor);
  7561.                         this.HideBattleEnemyActionName();
  7562.                         this._step = BattleManager.BattleStep.EnemyTurnStart;
  7563.                         break;
  7564.                     case Mevius.Party.Api.SnapStepType.SnapStepType_UNINIT:
  7565.                         if (this.m_lastBattle && !this.m_lastBgmVolumeChanged)
  7566.                         {
  7567.                             this.m_lastBgmVolumeChanged = true;
  7568.                             BgmManager._i.ChangeCurrentBgmVolume(Mevius.DataSheet.Api.GetResidentFloat("bgmBattleVolumeOnWinning", 1f), 500);
  7569.                         }
  7570.                         Mevius.Party.Api.ClearCommandStock();
  7571.                         this.SetBattleWinImmediate(true);
  7572.                         break;
  7573.                     }
  7574.                     this.m_multiBattleTurnStartTime = Mevius.Party.Api.GetBeginLimitTime();
  7575.                     this.m_multiBattleTurnLimitTime = (ulong)Mevius.Party.Api.GetBaseLimitTime();
  7576.                     this.m_multiBattleStartTime = Mevius.Party.Api.GetBeginBattleTime();
  7577.                 }
  7578.                 else if (Mevius.Party.Api.IsExistNextSnap())
  7579.                 {
  7580.                     int[] array3 = new int[8];
  7581.                     for (int num2 = 0; num2 < this._entryBattleCharaSpecList.Count; num2++)
  7582.                     {
  7583.                         string enemyActorName3 = BattleManager.GetEnemyActorName(num2);
  7584.                         BattleActor battleActor4 = this.FindActor(enemyActorName3);
  7585.                         if (battleActor4 != null)
  7586.                         {
  7587.                             array3[num2] = battleActor4.Hp;
  7588.                         }
  7589.                     }
  7590.                     Mevius.Party.Api.SetUpSnap(true, true, this.m_selfActor.Hp, this.m_selfActor.ManaElements, array3);
  7591.                     this._step = BattleManager.BattleStep.CheckMultiBattleCmd;
  7592.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SnapSyncWait;
  7593.                 }
  7594.                 break;
  7595.             case BattleManager.MultiBattleCmdStep.MultiInputWait:
  7596.                 if (Mevius.Party.Api.IsNeedRevivalStep())
  7597.                 {
  7598.                     for (int num3 = 0; num3 < this.m_multiBattleActorList.Count; num3++)
  7599.                     {
  7600.                         if (Mevius.Party.Api.ExecRevivalSlot(this.m_multiBattleActorList[num3].PartySlot) != Mevius.Party.Api.ExecRevival.ExecRevival_NONE && this.m_multiBattleActorList[num3].IsDead())
  7601.                         {
  7602.                             this.m_multiBattleActorList[num3].OnRevive();
  7603.                             this.m_multiBattleActorList[num3].OnTurnBegin();
  7604.                             if (this.m_multiBattleActorList[num3].ReadyAction())
  7605.                             {
  7606.                             }
  7607.                             if (this.m_multiBattleActorList[num3].PartyMemberType == Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  7608.                             {
  7609.                                 Mevius.Gui.Api.HidePlayerDeadTimer();
  7610.                             }
  7611.                         }
  7612.                     }
  7613.                     this.m_multiBattleTurnStartTime = Mevius.Party.Api.GetBeginLimitTime();
  7614.                     this.m_multiBattleTurnLimitTime = (ulong)Mevius.Party.Api.GetBaseLimitTime();
  7615.                     this.m_multiBattleStartTime = Mevius.Party.Api.GetBeginBattleTime();
  7616.                 }
  7617.                 if (Mevius.Party.Api.IsNeedSendSnap(true))
  7618.                 {
  7619.                     for (int num4 = 0; num4 < this.m_multiBattleActorList.Count; num4++)
  7620.                     {
  7621.                         BattleActor battleActor5 = this.m_multiBattleActorList[num4];
  7622.                         if (battleActor5.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY && battleActor5.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  7623.                         {
  7624.                             if (!battleActor5.IsDead())
  7625.                             {
  7626.                                 if (Mevius.Party.Api.IsAutoAiStatus(battleActor5.PartySlot) && !battleActor5.CommandInputEnd)
  7627.                                 {
  7628.                                     battleActor5.AutoAbilityAttackMulti();
  7629.                                 }
  7630.                             }
  7631.                         }
  7632.                     }
  7633.                 }
  7634.                 if (Mevius.Party.Api.IsFinishCommand())
  7635.                 {
  7636.                     for (int num5 = 0; num5 < this.m_multiBattleActorList.Count; num5++)
  7637.                     {
  7638.                         BattleActor battleActor6 = this.m_multiBattleActorList[num5];
  7639.                         if (battleActor6.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_EMPTY && battleActor6.PartyMemberType != Mevius.Party.Api.PARTY_MEMBER_TYPE.PARTY_MEMBER_TYPE_ME)
  7640.                         {
  7641.                             battleActor6.EndMultiBattleInput();
  7642.                         }
  7643.                     }
  7644.                     for (int num6 = 0; num6 < this.m_multiBattleActorList.Count; num6++)
  7645.                     {
  7646.                         PartyCommonSaveData.PartyCommandType commandDecideIndex = Mevius.Party.Api.GetCommandDecideIndex(this.m_multiBattleActorList[num6].PartySlot);
  7647.                         if (PartyCommonSaveData.PartyCommandType.DECIDE1 <= commandDecideIndex && commandDecideIndex <= PartyCommonSaveData.PartyCommandType.DECIDE4)
  7648.                         {
  7649.                             this.m_multiBattleActorList[num6].ActionOrder = (byte)(commandDecideIndex - PartyCommonSaveData.PartyCommandType.DECIDE1 + 1);
  7650.                         }
  7651.                         else
  7652.                         {
  7653.                             this.m_multiBattleActorList[num6].ActionOrder = 0;
  7654.                         }
  7655.                     }
  7656.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.CurrentPlayer;
  7657.                 }
  7658.                 break;
  7659.             case BattleManager.MultiBattleCmdStep.CurrentPlayer:
  7660.                 if (Mevius.Party.Api.IsNeedSendSnap(true))
  7661.                 {
  7662.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SendSnap;
  7663.                 }
  7664.                 else
  7665.                 {
  7666.                     this.m_multiBattleCmdStep = BattleManager.MultiBattleCmdStep.SnapSync;
  7667.                 }
  7668.                 this.SaveMultiData();
  7669.                 break;
  7670.             }
  7671.         }
  7672.  
  7673.         public BattleManaObjectManager BattleManaObjectManager
  7674.         {
  7675.             get
  7676.             {
  7677.                 return this.m_manaObjectManager;
  7678.             }
  7679.         }
  7680.  
  7681.         public void SaveMultiData()
  7682.         {
  7683.             DbManager.MultiBattleData multiBattleData = Mevius.Db.Api.GetMultiBattleData();
  7684.             if (multiBattleData == null)
  7685.             {
  7686.                 return;
  7687.             }
  7688.             this.SetRandomSeed(false);
  7689.             multiBattleData.version = BattleManager.MultiSaveDataVersion;
  7690.             multiBattleData.step = (int)this._step;
  7691.             multiBattleData.turnNum = this.m_turnNum;
  7692.             multiBattleData.chainNum = this.m_chainNum;
  7693.             multiBattleData.breakNum = this.m_breakNum;
  7694.             multiBattleData.deadNum = this.m_deadNum;
  7695.             Array.Clear(multiBattleData.statusEffectIds, 0, multiBattleData.statusEffectIds.Length);
  7696.             Array.Clear(multiBattleData.statusEffectTurns, 0, multiBattleData.statusEffectTurns.Length);
  7697.             Array.Clear(multiBattleData.statusEffectStates, 0, multiBattleData.statusEffectStates.Length);
  7698.             Array.Clear(multiBattleData.statusEffectParams, 0, multiBattleData.statusEffectParams.Length);
  7699.             for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  7700.             {
  7701.                 BattleActor battleActor = this.m_multiBattleActorList[i];
  7702.                 int partySlot = battleActor.PartySlot;
  7703.                 multiBattleData.playerHp[partySlot] = battleActor.Hp;
  7704.                 multiBattleData.playerActionNum[partySlot] = (byte)battleActor.ActionNum;
  7705.                 multiBattleData.playerNormalAttackNum[partySlot] = (byte)battleActor.NormalAttackNum;
  7706.                 if (battleActor.PrevUseCardAbilityAttribute != ElementAttributeType.None)
  7707.                 {
  7708.                     multiBattleData.prevUseCardAbilityAttributeBit[partySlot] = (ushort)(1 << (int)battleActor.PrevUseCardAbilityAttribute);
  7709.                 }
  7710.                 else
  7711.                 {
  7712.                     multiBattleData.prevUseCardAbilityAttributeBit[partySlot] = 0;
  7713.                 }
  7714.                 multiBattleData.playerActionOrder[partySlot] = battleActor.ActionOrder;
  7715.                 for (int j = 0; j < battleActor.PinchAutoAbilityFlags.Length; j++)
  7716.                 {
  7717.                     multiBattleData.autoAbilityPinchFlags[partySlot, j] = battleActor.PinchAutoAbilityFlags[j];
  7718.                 }
  7719.                 int[,] statusEffectEntries = battleActor.GetStatusEffectEntries();
  7720.                 for (int k = 0; k < statusEffectEntries.GetLength(0); k++)
  7721.                 {
  7722.                     multiBattleData.statusEffectIds[partySlot, k] = (ushort)statusEffectEntries[k, 0];
  7723.                     multiBattleData.statusEffectTurns[partySlot, k] = (sbyte)statusEffectEntries[k, 1];
  7724.                     multiBattleData.statusEffectStates[partySlot, k] = (byte)statusEffectEntries[k, 2];
  7725.                     multiBattleData.statusEffectParams[partySlot, k] = statusEffectEntries[k, 3];
  7726.                 }
  7727.                 BattleActor.CardAbilityInfo[] cardAbilityInfos = battleActor.CardAbilityInfos;
  7728.                 for (int l = 0; l < cardAbilityInfos.Length; l++)
  7729.                 {
  7730.                     multiBattleData.cardAbilityChargeTurns[partySlot, l] = (sbyte)cardAbilityInfos[l].chargeTurn;
  7731.                     multiBattleData.cardAbilityUseCounts[partySlot, l] = (ushort)cardAbilityInfos[l].useCount;
  7732.                 }
  7733.                 multiBattleData.unRecoveryNum[partySlot] = (byte)battleActor.GetManaUnRecoveryNum();
  7734.                 ElementAttributeType[] manaElements = battleActor.ManaElements;
  7735.                 for (int m = 0; m < multiBattleData.manaElements.GetLength(1); m++)
  7736.                 {
  7737.                     if (m < manaElements.Length)
  7738.                     {
  7739.                         multiBattleData.manaElements[partySlot, m] = (int)manaElements[m];
  7740.                     }
  7741.                     else
  7742.                     {
  7743.                         multiBattleData.manaElements[partySlot, m] = -1;
  7744.                     }
  7745.                 }
  7746.                 int[] originalValues = battleActor.ElementalGauge.GetOriginalValues();
  7747.                 for (int n = 0; n < originalValues.Length; n++)
  7748.                 {
  7749.                     multiBattleData.elementalGauge[partySlot, n] = (ushort)originalValues[n];
  7750.                 }
  7751.                 multiBattleData.manaUseNum[partySlot] = battleActor.ManaUseNum;
  7752.                 for (int num = 0; num < battleActor.RevengeDamages.Length; num++)
  7753.                 {
  7754.                     multiBattleData.playerRevengeDamages[partySlot, num] = battleActor.RevengeDamages[num];
  7755.                 }
  7756.                 multiBattleData.abilityUseSuportCounts[partySlot] = battleActor.AbilityUseSuportCount;
  7757.             }
  7758.             multiBattleData.playerActionType[0] = (byte)this.m_randCount;
  7759.             multiBattleData.playerActionType[1] = (byte)this.m_damageRandCount;
  7760.             multiBattleData.playerActionType[2] = (byte)this.m_movementRandCount;
  7761.             Array.Clear(multiBattleData.enemyStatusEffectIds, 0, multiBattleData.enemyStatusEffectIds.Length);
  7762.             Array.Clear(multiBattleData.enemyStatusEffectTurns, 0, multiBattleData.enemyStatusEffectIds.Length);
  7763.             Array.Clear(multiBattleData.enemyStatusEffectStates, 0, multiBattleData.enemyStatusEffectIds.Length);
  7764.             Array.Clear(multiBattleData.enemyStatusEffectParams, 0, multiBattleData.enemyStatusEffectIds.Length);
  7765.             for (int num2 = 0; num2 < this._entryBattleCharaSpecList.Count; num2++)
  7766.             {
  7767.                 string enemyActorName = BattleManager.GetEnemyActorName(num2);
  7768.                 BattleActor battleActor2 = this.FindActor(enemyActorName);
  7769.                 if (battleActor2 != null)
  7770.                 {
  7771.                     multiBattleData.enemyHps[num2] = battleActor2.Hp;
  7772.                     multiBattleData.enemyBps[num2] = battleActor2.Bp;
  7773.                     multiBattleData.enemyBpArmorDamages[num2] = battleActor2.BpArmorDamage;
  7774.                     multiBattleData.enemyBreakCounts[num2] = (byte)battleActor2.BreakCount;
  7775.                     if (battleActor2.Ai != null)
  7776.                     {
  7777.                         for (int num3 = 0; num3 < 16; num3++)
  7778.                         {
  7779.                             multiBattleData.enemyAiCounters[num2, num3] = battleActor2.Ai.Counters[num3];
  7780.                         }
  7781.                         multiBattleData.enemyAiFlags[num2] = battleActor2.Ai.Flag;
  7782.                         multiBattleData.enemyAiSpCounters[num2] = battleActor2.Ai.SpCounter;
  7783.                         multiBattleData.enemyAiTakeDamageBit[num2] = battleActor2.Ai.TakeDamageBit;
  7784.                         multiBattleData.enemyAiTakeDamageAttributeBit[num2] = battleActor2.Ai.TakeDamageAttributeBit;
  7785.                     }
  7786.                     multiBattleData.enemyAttributeBit[num2] = battleActor2.ElementAttributeBit;
  7787.                     multiBattleData.enemyUnknownAttribute[num2] = battleActor2.UnknownAttribute;
  7788.                     multiBattleData.enemyAbsorbAttributeBit[num2] = battleActor2.AbsorbAttributeBit;
  7789.                     multiBattleData.enemyChangeBtCharaSpecId[num2] = battleActor2.ChangeBtCharaSpecId;
  7790.                     int[,] statusEffectEntries2 = battleActor2.GetStatusEffectEntries();
  7791.                     int num4 = Math.Min(statusEffectEntries2.GetLength(0), multiBattleData.enemyStatusEffectIds.GetLength(1));
  7792.                     for (int num5 = 0; num5 < num4; num5++)
  7793.                     {
  7794.                         multiBattleData.enemyStatusEffectIds[num2, num5] = (ushort)statusEffectEntries2[num5, 0];
  7795.                         multiBattleData.enemyStatusEffectTurns[num2, num5] = (sbyte)statusEffectEntries2[num5, 1];
  7796.                         multiBattleData.enemyStatusEffectStates[num2, num5] = (byte)statusEffectEntries2[num5, 2];
  7797.                         multiBattleData.enemyStatusEffectParams[num2, num5] = statusEffectEntries2[num5, 3];
  7798.                     }
  7799.                     byte[] debuffInvalidCounts = battleActor2.DebuffInvalidCounts;
  7800.                     for (int num6 = 0; num6 < debuffInvalidCounts.Length; num6++)
  7801.                     {
  7802.                         multiBattleData.enemyDebuffInvalidCounts[num2, num6] = debuffInvalidCounts[num6];
  7803.                     }
  7804.                     multiBattleData.enemyBoss[num2] = ((!battleActor2.IsNeedNotKill()) ? 1 : 0);
  7805.                     multiBattleData.enemyHpLimitIndexs[num2] = battleActor2.HpLimitIndex;
  7806.                     multiBattleData.enemySaveFlagBits[num2] = (uint)battleActor2.SaveFlagBits;
  7807.                     multiBattleData.enemyDamagedActorIndexBits[num2] = battleActor2.EnemyDamagedActorIndexBit;
  7808.                     multiBattleData.enemyHpGaugeFixRates[num2] = battleActor2.EnemyHpGaugeFixRate;
  7809.                 }
  7810.             }
  7811.             this.m_enemyAiCommonCounters.CopyTo(multiBattleData.enemyAiCommonCounters, 0);
  7812.             multiBattleData.enemyActionEndFlag = this.m_enemyActionEndFlag;
  7813.         }
  7814.  
  7815.         public void RestoreMultiData(bool bInit = false)
  7816.         {
  7817.             DbManager.MultiBattleData multiBattleData = Mevius.Db.Api.GetMultiBattleData();
  7818.             if (multiBattleData == null)
  7819.             {
  7820.                 return;
  7821.             }
  7822.             bool flag = false;
  7823.             if (DebugOutput.Instance != null)
  7824.             {
  7825.                 flag = true;
  7826.             }
  7827.             bool restart = !Mevius.Party.Api.IsFirstSnap() && bInit;
  7828.             uint randSeed = multiBattleData.randSeed;
  7829.             this._step = (BattleManager.BattleStep)multiBattleData.step;
  7830.             this.m_rand.SetSeed(randSeed);
  7831.             this.m_playerDamageRand.SetSeed(randSeed);
  7832.             this.m_playerMovementRand.SetSeed(randSeed);
  7833.             this.m_turnNum = multiBattleData.turnNum;
  7834.             this.m_chainNum = multiBattleData.chainNum;
  7835.             this.m_breakNum = multiBattleData.breakNum;
  7836.             this.m_deadNum = multiBattleData.deadNum;
  7837.             for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  7838.             {
  7839.                 BattleActor battleActor = this.m_multiBattleActorList[i];
  7840.                 int partySlot = battleActor.PartySlot;
  7841.                 int hp = battleActor.Hp;
  7842.                 battleActor.SetHp(multiBattleData.playerHp[partySlot], true, true);
  7843.                 if (hp <= 0 && multiBattleData.playerHp[partySlot] > 0)
  7844.                 {
  7845.                     battleActor.OnRestore(this._step, false, true, restart);
  7846.                 }
  7847.                 else if (hp > 0 && multiBattleData.playerHp[partySlot] <= 0)
  7848.                 {
  7849.                     battleActor.OnRestore(this._step, false, true, restart);
  7850.                 }
  7851.                 else if (bInit)
  7852.                 {
  7853.                     battleActor.OnRestore(this._step, false, true, restart);
  7854.                 }
  7855.                 if (flag && hp != multiBattleData.playerHp[partySlot])
  7856.                 {
  7857.                     string item = string.Format("Hp [{0}] -> [{1}] : Slot[{2}]", hp, multiBattleData.playerHp[partySlot], partySlot);
  7858.                     DebugOutput.Instance.ErrorLogList.Add(item);
  7859.                 }
  7860.                 if (flag && battleActor.ActionNum != (int)multiBattleData.playerActionNum[partySlot])
  7861.                 {
  7862.                     string item2 = string.Format("ActionNum [{0}] -> [{1}] : Slot[{2}]", battleActor.ActionNum, multiBattleData.playerActionNum[partySlot], partySlot);
  7863.                     DebugOutput.Instance.ErrorLogList.Add(item2);
  7864.                 }
  7865.                 battleActor.ActionNum = (int)multiBattleData.playerActionNum[partySlot];
  7866.                 battleActor.NormalAttackNum = (int)multiBattleData.playerNormalAttackNum[partySlot];
  7867.                 for (int j = 0; j < 7; j++)
  7868.                 {
  7869.                     if (((int)multiBattleData.prevUseCardAbilityAttributeBit[partySlot] & 1 << j) != 0)
  7870.                     {
  7871.                         battleActor.PrevUseCardAbilityAttribute = (ElementAttributeType)j;
  7872.                     }
  7873.                 }
  7874.                 battleActor.ActionOrder = multiBattleData.playerActionOrder[partySlot];
  7875.                 bool[] array = new bool[multiBattleData.autoAbilityPinchFlags.GetLength(1)];
  7876.                 for (int k = 0; k < array.Length; k++)
  7877.                 {
  7878.                     array[k] = multiBattleData.autoAbilityPinchFlags[partySlot, k];
  7879.                 }
  7880.                 battleActor.SetPinchAutoAbilityFlags(array);
  7881.                 int length = multiBattleData.statusEffectIds.GetLength(1);
  7882.                 int[][] array2 = new int[length][];
  7883.                 for (int l = 0; l < length; l++)
  7884.                 {
  7885.                     if (multiBattleData.statusEffectIds[partySlot, l] != 0)
  7886.                     {
  7887.                         array2[l] = new int[4];
  7888.                         array2[l][0] = (int)multiBattleData.statusEffectIds[partySlot, l];
  7889.                         array2[l][1] = (int)multiBattleData.statusEffectTurns[partySlot, l];
  7890.                         array2[l][2] = (int)multiBattleData.statusEffectStates[partySlot, l];
  7891.                         array2[l][3] = multiBattleData.statusEffectParams[partySlot, l];
  7892.                     }
  7893.                 }
  7894.                 battleActor.SetStatusEffectEntries(array2);
  7895.                 BattleActor.CardAbilityInfo[] cardAbilityInfos = battleActor.CardAbilityInfos;
  7896.                 for (int m = 0; m < cardAbilityInfos.Length; m++)
  7897.                 {
  7898.                     cardAbilityInfos[m].chargeTurn = (int)multiBattleData.cardAbilityChargeTurns[partySlot, m];
  7899.                     cardAbilityInfos[m].useCount = (int)multiBattleData.cardAbilityUseCounts[partySlot, m];
  7900.                 }
  7901.                 battleActor.SetManaUnRecoveryNum((int)multiBattleData.unRecoveryNum[partySlot]);
  7902.                 int[] array3 = new int[multiBattleData.manaElements.GetLength(1)];
  7903.                 for (int n = 0; n < array3.Length; n++)
  7904.                 {
  7905.                     array3[n] = multiBattleData.manaElements[partySlot, n];
  7906.                 }
  7907.                 if (flag)
  7908.                 {
  7909.                     bool flag2 = false;
  7910.                     ElementAttributeType[] manaElements = battleActor.GetManaElements();
  7911.                     for (int num = 0; num < manaElements.Length; num++)
  7912.                     {
  7913.                         if (manaElements[num] != (ElementAttributeType)array3[num])
  7914.                         {
  7915.                             flag2 = true;
  7916.                             break;
  7917.                         }
  7918.                     }
  7919.                     if (flag2)
  7920.                     {
  7921.                         long num2 = 0L;
  7922.                         for (int num3 = 0; num3 < 16; num3++)
  7923.                         {
  7924.                             long num4 = (num3 >= manaElements.Length) ? 0L : ((long)manaElements[num3] + 1L);
  7925.                             num2 = num2 * 10L + num4;
  7926.                         }
  7927.                         long num5 = 0L;
  7928.                         for (int num6 = 0; num6 < 16; num6++)
  7929.                         {
  7930.                             long num7 = (num6 >= array3.Length) ? 0L : ((long)array3[num6] + 1L);
  7931.                             num5 = num5 * 10L + num7;
  7932.                         }
  7933.                         string item3 = string.Format("Element [{0}] -> [{1}] : Slot[{2}]", num2, num5, partySlot);
  7934.                         DebugOutput.Instance.ErrorLogList.Add(item3);
  7935.                     }
  7936.                 }
  7937.                 battleActor.SetManaElement(array3);
  7938.                 int[] array4 = new int[multiBattleData.elementalGauge.GetLength(1)];
  7939.                 for (int num8 = 0; num8 < array4.Length; num8++)
  7940.                 {
  7941.                     array4[num8] = (int)multiBattleData.elementalGauge[partySlot, num8];
  7942.                 }
  7943.                 battleActor.ElementalGauge.Init(array4);
  7944.                 battleActor.ManaUseNum = multiBattleData.manaUseNum[partySlot];
  7945.                 for (int num9 = 0; num9 < battleActor.RevengeDamages.Length; num9++)
  7946.                 {
  7947.                     battleActor.RevengeDamages[num9] = multiBattleData.playerRevengeDamages[partySlot, num9];
  7948.                 }
  7949.                 battleActor.AbilityUseSuportCount = multiBattleData.abilityUseSuportCounts[partySlot];
  7950.             }
  7951.             int num10 = (int)multiBattleData.playerActionType[0];
  7952.             int num11 = (int)multiBattleData.playerActionType[1];
  7953.             int num12 = (int)multiBattleData.playerActionType[2];
  7954.             if (flag)
  7955.             {
  7956.                 if (num10 != this.m_randCount)
  7957.                 {
  7958.                     string item4 = string.Format("RandCount [{0}] -> [{1}]", this.m_randCount, num10);
  7959.                     DebugOutput.Instance.ErrorLogList.Add(item4);
  7960.                 }
  7961.                 if (num11 != this.m_damageRandCount)
  7962.                 {
  7963.                     string item5 = string.Format("damageRandCount [{0}] -> [{1}]", this.m_damageRandCount, num11);
  7964.                     DebugOutput.Instance.ErrorLogList.Add(item5);
  7965.                 }
  7966.                 if (num12 != this.m_movementRandCount)
  7967.                 {
  7968.                     string item6 = string.Format("movementRandCount [{0}] -> [{1}]", this.m_movementRandCount, num12);
  7969.                     DebugOutput.Instance.ErrorLogList.Add(item6);
  7970.                 }
  7971.             }
  7972.             this.UpdateManaGui();
  7973.             this.UpdateJobAbilityGauge();
  7974.             this.m_selfActor.UpdateCardAbilityTurnCountGui();
  7975.             this.m_selfActor.UpdateStatusEffectGui(false);
  7976.             for (int num13 = 0; num13 < this._entryBattleCharaSpecList.Count; num13++)
  7977.             {
  7978.                 string enemyActorName = BattleManager.GetEnemyActorName(num13);
  7979.                 BattleActor battleActor2 = this.FindActor(enemyActorName);
  7980.                 if (battleActor2 != null)
  7981.                 {
  7982.                     int hp2 = battleActor2.Hp;
  7983.                     battleActor2.SetHp(multiBattleData.enemyHps[num13], false, false);
  7984.                     int bp = battleActor2.Bp;
  7985.                     battleActor2.Bp = multiBattleData.enemyBps[num13];
  7986.                     uint saveFlagBits = (uint)battleActor2.SaveFlagBits;
  7987.                     battleActor2.SaveFlagBits = (BattleActor.SaveFlagBitType)multiBattleData.enemySaveFlagBits[num13];
  7988.                     if (hp2 <= 0 && multiBattleData.enemyHps[num13] > 0)
  7989.                     {
  7990.                         battleActor2.chara.gameObject.SetActive(true);
  7991.                         battleActor2.chara.SetupBind();
  7992.                         battleActor2.SetStateIdle(true, -1, 0);
  7993.                         battleActor2.OnRestore(this._step, false, true, restart);
  7994.                         battleActor2.CreateEnemyHpGauge();
  7995.                     }
  7996.                     else if (hp2 > 0 && multiBattleData.enemyHps[num13] <= 0)
  7997.                     {
  7998.                         battleActor2.OnRestore(this._step, false, true, restart);
  7999.                     }
  8000.                     else if (bp != multiBattleData.enemyBps[num13])
  8001.                     {
  8002.                         battleActor2.OnRestore(this._step, false, true, restart);
  8003.                     }
  8004.                     else if (bInit)
  8005.                     {
  8006.                         battleActor2.OnRestore(this._step, false, true, restart);
  8007.                     }
  8008.                     else if (saveFlagBits != (uint)battleActor2.SaveFlagBits)
  8009.                     {
  8010.                         battleActor2.OnRestore(this._step, false, true, restart);
  8011.                         if (battleActor2.IsActiveTarget())
  8012.                         {
  8013.                             battleActor2.CreateEnemyHpGauge();
  8014.                         }
  8015.                     }
  8016.                     if (flag)
  8017.                     {
  8018.                         if (hp2 != multiBattleData.enemyHps[num13])
  8019.                         {
  8020.                             string item7 = string.Format("Hp [{0}] -> [{1}] : Enemy[{2}]", hp2, multiBattleData.enemyHps[num13], num13);
  8021.                             DebugOutput.Instance.ErrorLogList.Add(item7);
  8022.                         }
  8023.                         if (bp != multiBattleData.enemyBps[num13])
  8024.                         {
  8025.                             string item8 = string.Format("Bp [{0}] -> [{1}] : Enemy[{2}]", bp, multiBattleData.enemyBps[num13], num13);
  8026.                             DebugOutput.Instance.ErrorLogList.Add(item8);
  8027.                         }
  8028.                     }
  8029.                     battleActor2.BreakCount = (int)multiBattleData.enemyBreakCounts[num13];
  8030.                     battleActor2.BpArmorDamage = multiBattleData.enemyBpArmorDamages[num13];
  8031.                     if (battleActor2.Ai != null)
  8032.                     {
  8033.                         for (int num14 = 0; num14 < 16; num14++)
  8034.                         {
  8035.                             battleActor2.Ai.Counters[num14] = multiBattleData.enemyAiCounters[num13, num14];
  8036.                         }
  8037.                         battleActor2.Ai.Flag = multiBattleData.enemyAiFlags[num13];
  8038.                         battleActor2.Ai.SpCounter = multiBattleData.enemyAiSpCounters[num13];
  8039.                         battleActor2.Ai.TakeDamageBit = multiBattleData.enemyAiTakeDamageBit[num13];
  8040.                         battleActor2.Ai.TakeDamageAttributeBit = multiBattleData.enemyAiTakeDamageAttributeBit[num13];
  8041.                     }
  8042.                     battleActor2.ElementAttributeBit = multiBattleData.enemyAttributeBit[num13];
  8043.                     if (multiBattleData.enemyAbsorbAttributeBit[num13] != 0)
  8044.                     {
  8045.                         battleActor2.AbsorbAttributeBit = multiBattleData.enemyAbsorbAttributeBit[num13];
  8046.                     }
  8047.                     battleActor2.UnknownAttribute = multiBattleData.enemyUnknownAttribute[num13];
  8048.                     battleActor2.SetChangeBtCharaSpecId(multiBattleData.enemyChangeBtCharaSpecId[num13], true);
  8049.                     List<int[]> list = new List<int[]>();
  8050.                     for (int num15 = 0; num15 < multiBattleData.enemyStatusEffectIds.GetLength(1); num15++)
  8051.                     {
  8052.                         if (multiBattleData.enemyStatusEffectIds[num13, num15] != 0)
  8053.                         {
  8054.                             list.Add(new int[]
  8055.                             {
  8056.                                 (int)multiBattleData.enemyStatusEffectIds[num13, num15],
  8057.                                 (int)multiBattleData.enemyStatusEffectTurns[num13, num15],
  8058.                                 (int)multiBattleData.enemyStatusEffectStates[num13, num15],
  8059.                                 multiBattleData.enemyStatusEffectParams[num13, num15]
  8060.                             });
  8061.                         }
  8062.                     }
  8063.                     battleActor2.SetStatusEffectEntries(list.ToArray());
  8064.                     for (int num16 = 0; num16 < multiBattleData.enemyDebuffInvalidCounts.GetLength(1); num16++)
  8065.                     {
  8066.                         battleActor2.SetDebuffInvalidCount(num16, multiBattleData.enemyDebuffInvalidCounts[num13, num16]);
  8067.                     }
  8068.                     battleActor2.HpLimitIndex = multiBattleData.enemyHpLimitIndexs[num13];
  8069.                     battleActor2.EnemyDamagedActorIndexBit = multiBattleData.enemyDamagedActorIndexBits[num13];
  8070.                     battleActor2.EnemyHpGaugeFixRate = multiBattleData.enemyHpGaugeFixRates[num13];
  8071.                     battleActor2.UpdateHpGaugeFixRate();
  8072.                     if (battleActor2.Ai != null)
  8073.                     {
  8074.                         battleActor2.Ai.OnBehavior(BattleAiData.Pattern.TimingType.BattleRestart, string.Empty, null, true);
  8075.                     }
  8076.                 }
  8077.             }
  8078.             multiBattleData.enemyAiCommonCounters.CopyTo(this.m_enemyAiCommonCounters, 0);
  8079.             this.m_enemyActionEndFlag = multiBattleData.enemyActionEndFlag;
  8080.             this.m_rand.SetSeed(randSeed);
  8081.             this.m_playerDamageRand.SetSeed(randSeed);
  8082.             this.m_playerMovementRand.SetSeed(randSeed);
  8083.             this.ProcManToMan();
  8084.         }
  8085.  
  8086.         public int MultiBattleTimeLeftOfTurn
  8087.         {
  8088.             get
  8089.             {
  8090.                 ulong realtimeFromServer = Mevius.Db.Api.GetRealtimeFromServer();
  8091.                 if (realtimeFromServer >= this.m_multiBattleTurnStartTime)
  8092.                 {
  8093.                     ulong num = realtimeFromServer - this.m_multiBattleTurnStartTime;
  8094.                     ulong num2 = (num > this.m_multiBattleTurnLimitTime) ? 0UL : (this.m_multiBattleTurnLimitTime - num);
  8095.                     return (int)num2;
  8096.                 }
  8097.                 return (int)this.m_multiBattleTurnLimitTime;
  8098.             }
  8099.         }
  8100.  
  8101.         public int MultiBattleTimeLeft
  8102.         {
  8103.             get
  8104.             {
  8105.                 ulong realtimeFromServer = Mevius.Db.Api.GetRealtimeFromServer();
  8106.                 if (realtimeFromServer >= this.m_multiBattleStartTime)
  8107.                 {
  8108.                     ulong num = realtimeFromServer - this.m_multiBattleStartTime;
  8109.                     ulong num2 = (num > (ulong)Mevius.Party.Api.GetBaseBattleTime()) ? 0UL : ((ulong)Mevius.Party.Api.GetBaseBattleTime() - num);
  8110.                     return (int)num2;
  8111.                 }
  8112.                 return (int)Mevius.Party.Api.GetBaseBattleTime();
  8113.             }
  8114.         }
  8115.  
  8116.         public string GetPlayerCommandStr()
  8117.         {
  8118.             return this.GetSelfActor().CommandStr;
  8119.         }
  8120.  
  8121.         public void CancelMultiBattleCommand()
  8122.         {
  8123.             if (this.m_selfActor != null)
  8124.             {
  8125.                 this.m_selfActor.CancelMultiBattleCommand();
  8126.             }
  8127.         }
  8128.  
  8129.         public int GetTargetGlobalIndex(BattleActor actor)
  8130.         {
  8131.             if (this.m_actorList.Contains(actor))
  8132.             {
  8133.                 return this.m_actorList.IndexOf(actor);
  8134.             }
  8135.             return -1;
  8136.         }
  8137.  
  8138.         public BattleActor GetTargetByGlobalIndex(int globalIndex)
  8139.         {
  8140.             if (globalIndex < 0 || globalIndex >= this.m_actorList.Count)
  8141.             {
  8142.                 return null;
  8143.             }
  8144.             return this.m_actorList[globalIndex];
  8145.         }
  8146.  
  8147.         public void OnDead(BattleActor actor)
  8148.         {
  8149.             if (Mevius.App.Api.IsPartyMode() && this.GetEnemyNum(true) == 0 && !actor.IsNeedNotKill())
  8150.             {
  8151.                 this.m_cameraManager.SetInterpolation(0f, CameraSequence.BlendType.Curve, true);
  8152.                 this.m_cameraManager.InitAction("a_samon_Death1", actor, false, true);
  8153.                 this.m_cameraManager.ChangeCamera(BattleCameraManager.CameraType.Action);
  8154.                 this.m_isMultiFinishCamera = true;
  8155.                 string residentString = Mevius.DataSheet.Api.GetResidentString("multi_battleWinSe", string.Empty);
  8156.                 string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  8157.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field, soundResourceName, residentString, 1f, 0, 0, false, -1, 1f);
  8158.             }
  8159.             if (this.IsCountTimeBattle())
  8160.             {
  8161.                 this.CreateActionOrderList();
  8162.             }
  8163.             for (int i = 0; i < this.m_actorList.Count; i++)
  8164.             {
  8165.                 if (this.m_actorList[i].IsActive() && !this.m_actorList[i].IsParty(actor))
  8166.                 {
  8167.                     this.m_actorList[i].RemoveStatusEffectProvoke(actor.GetActorIndex());
  8168.                 }
  8169.             }
  8170.             this.ProcManToMan();
  8171.         }
  8172.  
  8173.         public bool IsMultiFinishCamera()
  8174.         {
  8175.             return this.m_isMultiFinishCamera;
  8176.         }
  8177.  
  8178.         public BattleActor GetMultiRangeAttackEnemyActor(BattleActor baseActor)
  8179.         {
  8180.             BattleActor result = null;
  8181.             for (int i = 0; i < this.m_actorList.Count; i++)
  8182.             {
  8183.                 BattleActor battleActor = this.m_actorList[i];
  8184.                 if (battleActor != null && battleActor.IsActiveTarget() && battleActor.IsParty(baseActor) && battleActor != baseActor)
  8185.                 {
  8186.                     result = battleActor;
  8187.                     break;
  8188.                 }
  8189.             }
  8190.             return result;
  8191.         }
  8192.  
  8193.         public bool IsActionOrder(BattleActor actor, int order)
  8194.         {
  8195.             bool result = false;
  8196.             if (actor.IsPlayer())
  8197.             {
  8198.                 int num = 0;
  8199.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  8200.                 {
  8201.                     if (this.m_multiBattleActorList[i].IsActive() && num < (int)this.m_multiBattleActorList[i].ActionOrder)
  8202.                     {
  8203.                         num = (int)this.m_multiBattleActorList[i].ActionOrder;
  8204.                     }
  8205.                 }
  8206.                 if (order > num)
  8207.                 {
  8208.                     order = num;
  8209.                 }
  8210.                 if ((int)actor.ActionOrder == order)
  8211.                 {
  8212.                     result = true;
  8213.                 }
  8214.             }
  8215.             return result;
  8216.         }
  8217.  
  8218.         private void ProcStepBattleStatusEffect()
  8219.         {
  8220.             if (Mevius.App.Api.IsPartyMode())
  8221.             {
  8222.                 Ca9c714c662dfae389ad7332e5dd00832.C8336e7718a740dd523525fa2b510e66d c8336e7718a740dd523525fa2b510e66d = Ca9c714c662dfae389ad7332e5dd00832.Find(Mevius.Party.Api.GetExecPartyQuestId());
  8223.                 if (c8336e7718a740dd523525fa2b510e66d != null)
  8224.                 {
  8225.                     for (int i = 0; i < c8336e7718a740dd523525fa2b510e66d.countm7d751ca6c95f2ed72a6a44b64c7f6a3a(); i++)
  8226.                     {
  8227.                         int num = (int)c8336e7718a740dd523525fa2b510e66d.mc3bf00c1484f7500bd390511556ece1c(i);
  8228.                         if (num != 0)
  8229.                         {
  8230.                             for (int j = 0; j < this.m_actorList.Count; j++)
  8231.                             {
  8232.                                 BattleActor battleActor = this.m_actorList[j];
  8233.                                 bool flag = false;
  8234.                                 switch (c8336e7718a740dd523525fa2b510e66d.mda0e8565dc6726aedc8e2d10263b779c(i))
  8235.                                 {
  8236.                                 case 0:
  8237.                                     flag = battleActor.IsPlayer();
  8238.                                     break;
  8239.                                 case 1:
  8240.                                     flag = battleActor.IsEnemy();
  8241.                                     break;
  8242.                                 case 2:
  8243.                                     flag = true;
  8244.                                     break;
  8245.                                 }
  8246.                                 if (flag)
  8247.                                 {
  8248.                                     C02688ac2fa3465c4dc969e664556169f.Cdb83ac7b1b94f482a747dd16b359c48f cdb83ac7b1b94f482a747dd16b359c48f = C02688ac2fa3465c4dc969e664556169f.Find(num.ToString());
  8249.                                     if (cdb83ac7b1b94f482a747dd16b359c48f != null)
  8250.                                     {
  8251.                                         int num2 = 0;
  8252.                                         if (cdb83ac7b1b94f482a747dd16b359c48f.m192357c760b657018e12cbbc41dc3f10() == 1)
  8253.                                         {
  8254.                                             num2 = battleActor.GetStatusEffectValue(BattleStatusEffect.ProcType.DebuffResist);
  8255.                                             if (battleActor.IsPlayer())
  8256.                                             {
  8257.                                                 BattleStatusEffect.GroupType group = (BattleStatusEffect.GroupType)cdb83ac7b1b94f482a747dd16b359c48f.mdde7487838082c3392fafe3e5e31ccbf();
  8258.                                                 num2 += battleActor.GetAutoAbilityResistParam(group);
  8259.                                             }
  8260.                                         }
  8261.                                         if (num2 < 100 || c8336e7718a740dd523525fa2b510e66d.m2ae80ea97d128cc60c3f2610338ed920(j) == 3)
  8262.                                         {
  8263.                                             battleActor.AddStatusEffect(num, (int)c8336e7718a740dd523525fa2b510e66d.mf4e6b242ee507cd08c3707b60299ec90(i), (BattleStatusEffect.StateType)c8336e7718a740dd523525fa2b510e66d.m2ae80ea97d128cc60c3f2610338ed920(i), 0, true, true);
  8264.                                         }
  8265.                                     }
  8266.                                 }
  8267.                             }
  8268.                         }
  8269.                     }
  8270.                     if (!string.IsNullOrEmpty(c8336e7718a740dd523525fa2b510e66d.mf119062052a4666233881e867cab2601()))
  8271.                     {
  8272.                         Mevius.Gui.Api.ShowBattleEnemyActionName(c8336e7718a740dd523525fa2b510e66d.mf119062052a4666233881e867cab2601(), ElementAttributeBitType.None);
  8273.                     }
  8274.                     this.m_actionStepWait = c8336e7718a740dd523525fa2b510e66d.m0c6eaf36fbfa3402bd62c34dfb395f84();
  8275.                 }
  8276.             }
  8277.             else
  8278.             {
  8279.                 Caa051806b3598cc4aa2892b0900bdadb.C7515a628c1d13daf08c8a160fb5c564e targetStepBattle = Mevius.Field.Api.BattleApi.GetTargetStepBattle(Mevius.Field.Api.GadgetRouteApi.GetTargetGadgetName(), Mevius.App.Api.GetMainJobTypeCurrentDeck());
  8280.                 if (targetStepBattle != null)
  8281.                 {
  8282.                     for (int k = 0; k < this.m_actorList.Count; k++)
  8283.                     {
  8284.                         BattleActor battleActor2 = this.m_actorList[k];
  8285.                         int num3 = targetStepBattle.countmb57e26cd0e324c1a15a0a5ac67c8bcb8();
  8286.                         for (int l = 0; l < num3; l++)
  8287.                         {
  8288.                             bool flag2 = false;
  8289.                             switch (targetStepBattle.mcda129cdb90d44290bfd861ec0e267ed(l))
  8290.                             {
  8291.                             case 0:
  8292.                                 flag2 = battleActor2.IsPlayer();
  8293.                                 break;
  8294.                             case 1:
  8295.                                 flag2 = battleActor2.IsEnemy();
  8296.                                 break;
  8297.                             case 2:
  8298.                                 flag2 = true;
  8299.                                 break;
  8300.                             }
  8301.                             if (flag2)
  8302.                             {
  8303.                                 int num4 = targetStepBattle.mcb8f7a8bc0418595a425e2e33e0ae58b(l);
  8304.                                 if (num4 != 0)
  8305.                                 {
  8306.                                     C02688ac2fa3465c4dc969e664556169f.Cdb83ac7b1b94f482a747dd16b359c48f cdb83ac7b1b94f482a747dd16b359c48f2 = C02688ac2fa3465c4dc969e664556169f.Find(num4.ToString());
  8307.                                     if (cdb83ac7b1b94f482a747dd16b359c48f2 != null)
  8308.                                     {
  8309.                                         int num5 = 0;
  8310.                                         if (cdb83ac7b1b94f482a747dd16b359c48f2.m192357c760b657018e12cbbc41dc3f10() == 1)
  8311.                                         {
  8312.                                             num5 = battleActor2.GetStatusEffectValue(BattleStatusEffect.ProcType.DebuffResist);
  8313.                                             if (battleActor2.IsPlayer())
  8314.                                             {
  8315.                                                 BattleStatusEffect.GroupType group2 = (BattleStatusEffect.GroupType)cdb83ac7b1b94f482a747dd16b359c48f2.mdde7487838082c3392fafe3e5e31ccbf();
  8316.                                                 num5 += battleActor2.GetAutoAbilityResistParam(group2);
  8317.                                             }
  8318.                                         }
  8319.                                         if (num5 < 100 || targetStepBattle.m3a95f7864c6b38c040f47215e96999ff(l) == 3)
  8320.                                         {
  8321.                                             battleActor2.AddStatusEffect(num4, targetStepBattle.m89a634dfa79f4f4cb1d29743824831f1(l), (BattleStatusEffect.StateType)targetStepBattle.m3a95f7864c6b38c040f47215e96999ff(l), 0, true, true);
  8322.                                         }
  8323.                                     }
  8324.                                 }
  8325.                             }
  8326.                         }
  8327.                     }
  8328.                     if (!string.IsNullOrEmpty(targetStepBattle.m45e96b96d732ec81ba48ae2c57532fde()))
  8329.                     {
  8330.                         Mevius.Gui.Api.ShowBattleEnemyActionName(targetStepBattle.m45e96b96d732ec81ba48ae2c57532fde(), ElementAttributeBitType.None);
  8331.                     }
  8332.                     this.m_actionStepWait = targetStepBattle.m0c339662fb6db5a8bd740b17ffbc47ae();
  8333.                 }
  8334.             }
  8335.         }
  8336.  
  8337.         private void ProcStepBattleStatusEffectEnd()
  8338.         {
  8339.             if (!Mevius.App.Api.IsPartyMode() && this.m_playerActor != null)
  8340.             {
  8341.                 for (int i = 0; i <= 3; i++)
  8342.                 {
  8343.                     if (this.m_playerActor.IsAutoAbility(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1077 + i))
  8344.                     {
  8345.                         for (int j = 0; j < this.m_actorList.Count; j++)
  8346.                         {
  8347.                             BattleActor battleActor = this.m_actorList[j];
  8348.                             battleActor.RemoveStatusEffect(BattleStatusEffect.GroupType.AttributeEnhanceCapter8Fire + i, BattleStatusEffect.StateType.SuperStrong);
  8349.                         }
  8350.                     }
  8351.                 }
  8352.             }
  8353.         }
  8354.  
  8355.         private void InitElementInfluence()
  8356.         {
  8357.             if (this.m_turnNum != 1 || !this.IsFirstBattle())
  8358.             {
  8359.                 return;
  8360.             }
  8361.             int elementInfluenceType = BattleUtility.GetElementInfluenceType();
  8362.             if (elementInfluenceType != 0)
  8363.             {
  8364.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  8365.                 battleData.elementInfluenceTurn = (sbyte)this.CalcElementInfluenceTurn(elementInfluenceType);
  8366.                 battleData.elementInfluenceTurnNext = (sbyte)this.CalcElementInfluenceTurn(elementInfluenceType);
  8367.                 List<ElementAttributeType> elementInfluenceAttributeList = this.GetElementInfluenceAttributeList(elementInfluenceType);
  8368.                 if (elementInfluenceAttributeList.Count > 0)
  8369.                 {
  8370.                     battleData.elementInfluenceAttribute = (sbyte)elementInfluenceAttributeList[(int)((ulong)this.GetRandomUnsignedInteger() % (ulong)((long)elementInfluenceAttributeList.Count))];
  8371.                     elementInfluenceAttributeList.Remove((ElementAttributeType)battleData.elementInfluenceAttribute);
  8372.                     battleData.elementInfluenceAttributeNext = (sbyte)elementInfluenceAttributeList[(int)((ulong)this.GetRandomUnsignedInteger() % (ulong)((long)elementInfluenceAttributeList.Count))];
  8373.                 }
  8374.                 else
  8375.                 {
  8376.                     battleData.elementInfluenceAttribute = -1;
  8377.                     battleData.elementInfluenceAttributeNext = -1;
  8378.                 }
  8379.                 battleData.elementInfluenceRate = this.CalcElementInfluenceRate(elementInfluenceType);
  8380.                 battleData.elementInfluenceRateNext = this.CalcElementInfluenceRate(elementInfluenceType);
  8381.             }
  8382.         }
  8383.  
  8384.         private void UpdateElementInfluence()
  8385.         {
  8386.             if (this.m_turnNum == 1 && this.IsFirstBattle())
  8387.             {
  8388.                 return;
  8389.             }
  8390.             int elementInfluenceType = BattleUtility.GetElementInfluenceType();
  8391.             if (elementInfluenceType != 0)
  8392.             {
  8393.                 DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  8394.                 DbManager.BattleData battleData2 = battleData;
  8395.                 battleData2.elementInfluenceTurn -= 1;
  8396.                 if ((int)battleData.elementInfluenceTurn <= 0)
  8397.                 {
  8398.                     battleData.elementInfluenceTurn = battleData.elementInfluenceTurnNext;
  8399.                     battleData.elementInfluenceAttribute = battleData.elementInfluenceAttributeNext;
  8400.                     battleData.elementInfluenceRate = battleData.elementInfluenceRateNext;
  8401.                     battleData.elementInfluenceTurnNext = (sbyte)this.CalcElementInfluenceTurn(elementInfluenceType);
  8402.                     List<ElementAttributeType> elementInfluenceAttributeList = this.GetElementInfluenceAttributeList(elementInfluenceType);
  8403.                     elementInfluenceAttributeList.Remove((ElementAttributeType)battleData.elementInfluenceAttribute);
  8404.                     int count = elementInfluenceAttributeList.Count;
  8405.                     if (count > 0)
  8406.                     {
  8407.                         battleData.elementInfluenceAttributeNext = (sbyte)elementInfluenceAttributeList[(int)((ulong)this.GetRandomUnsignedInteger() % (ulong)((long)count))];
  8408.                     }
  8409.                     else
  8410.                     {
  8411.                         battleData.elementInfluenceAttributeNext = -1;
  8412.                     }
  8413.                     battleData.elementInfluenceRateNext = this.CalcElementInfluenceRate(elementInfluenceType);
  8414.                     this.ShowElementInfluence();
  8415.                 }
  8416.                 else if (this.m_turnNum == 1)
  8417.                 {
  8418.                     this.ShowElementInfluence();
  8419.                 }
  8420.                 else
  8421.                 {
  8422.                     Mevius.Gui.Api.ShowElementInfluenceTurn(0, (int)battleData.elementInfluenceTurn);
  8423.                 }
  8424.             }
  8425.         }
  8426.  
  8427.         public void ShowElementInfluence()
  8428.         {
  8429.             DbManager.BattleData battleData = Mevius.Db.Api.GetBattleData();
  8430.             Mevius.Gui.Api.ShowElementInfluenceRate(0, (ElementAttributeType)battleData.elementInfluenceAttribute, battleData.elementInfluenceRate);
  8431.             Mevius.Gui.Api.ShowElementInfluenceTurn(0, (int)battleData.elementInfluenceTurn);
  8432.             Mevius.Gui.Api.ShowElementInfluenceRate(1, (ElementAttributeType)battleData.elementInfluenceAttributeNext, battleData.elementInfluenceRateNext);
  8433.             Mevius.Gui.Api.ShowElementInfluenceTurn(1, (int)battleData.elementInfluenceTurnNext);
  8434.         }
  8435.  
  8436.         private int CalcElementInfluenceTurn(int type)
  8437.         {
  8438.             int residentInteger;
  8439.             int residentInteger2;
  8440.             if (type == 1)
  8441.             {
  8442.                 residentInteger = Mevius.DataSheet.Api.GetResidentInteger("elementInfluenceTurnMin", 2);
  8443.                 residentInteger2 = Mevius.DataSheet.Api.GetResidentInteger("elementInfluenceTurnMax", 2);
  8444.             }
  8445.             else
  8446.             {
  8447.                 residentInteger = Mevius.DataSheet.Api.GetResidentInteger("elementInfluence2TurnMin", 2);
  8448.                 residentInteger2 = Mevius.DataSheet.Api.GetResidentInteger("elementInfluence2TurnMax", 2);
  8449.             }
  8450.             int num = residentInteger2 - residentInteger;
  8451.             if (num != 0)
  8452.             {
  8453.                 return residentInteger + (int)((ulong)this.GetRandomUnsignedInteger() % (ulong)((long)(num + 1)));
  8454.             }
  8455.             return residentInteger;
  8456.         }
  8457.  
  8458.         private float CalcElementInfluenceRate(int type)
  8459.         {
  8460.             float residentFloat;
  8461.             float residentFloat2;
  8462.             if (type == 1)
  8463.             {
  8464.                 if ((this.GetRandomUnsignedInteger() & 1u) == 0u)
  8465.                 {
  8466.                     residentFloat = Mevius.DataSheet.Api.GetResidentFloat("elementInfluenceRateLowMin", 0.1f);
  8467.                     residentFloat2 = Mevius.DataSheet.Api.GetResidentFloat("elementInfluenceRateLowMax", 0.5f);
  8468.                 }
  8469.                 else
  8470.                 {
  8471.                     residentFloat = Mevius.DataSheet.Api.GetResidentFloat("elementInfluenceRateHighMin", 1.5f);
  8472.                     residentFloat2 = Mevius.DataSheet.Api.GetResidentFloat("elementInfluenceRateHighMax", 2f);
  8473.                 }
  8474.             }
  8475.             else
  8476.             {
  8477.                 residentFloat = Mevius.DataSheet.Api.GetResidentFloat("elementInfluence2RateHighMin", 1.5f);
  8478.                 residentFloat2 = Mevius.DataSheet.Api.GetResidentFloat("elementInfluence2RateHighMax", 2f);
  8479.             }
  8480.             return residentFloat + (residentFloat2 - residentFloat) * this.GetRandomSingleFloat();
  8481.         }
  8482.  
  8483.         private List<ElementAttributeType> GetElementInfluenceAttributeList(int type)
  8484.         {
  8485.             ElementAttributeType[] jobUseAttributeArray = BattleUtility.GetJobUseAttributeArray(this.m_playerActor.Deck, true);
  8486.             List<ElementAttributeType> list = new List<ElementAttributeType>(jobUseAttributeArray);
  8487.             if (type == 1)
  8488.             {
  8489.                 for (int i = 0; i < this.m_actorList.Count; i++)
  8490.                 {
  8491.                     if (this.m_actorList[i].IsActiveTarget() && this.m_actorList[i].IsEnemy() && !this.m_actorList[i].UnknownAttribute)
  8492.                     {
  8493.                         ElementAttributeType attributeTypeFromBit = BattleUtility.GetAttributeTypeFromBit((int)this.m_actorList[i].GetElementAttributeBit());
  8494.                         if (attributeTypeFromBit != ElementAttributeType.None && !list.Contains(attributeTypeFromBit))
  8495.                         {
  8496.                             list.Add(attributeTypeFromBit);
  8497.                         }
  8498.                     }
  8499.                 }
  8500.             }
  8501.             return list;
  8502.         }
  8503.  
  8504.         public int[] MissionCounts
  8505.         {
  8506.             get
  8507.             {
  8508.                 return this.m_missionCounts;
  8509.             }
  8510.         }
  8511.  
  8512.         public int[] BossMissionCounts
  8513.         {
  8514.             get
  8515.             {
  8516.                 return this.m_bossMissionCounts;
  8517.             }
  8518.         }
  8519.  
  8520.         public long[] SaveLongValues
  8521.         {
  8522.             get
  8523.             {
  8524.                 return this.m_saveLongValues;
  8525.             }
  8526.         }
  8527.  
  8528.         public long[] BossSaveLongValues
  8529.         {
  8530.             get
  8531.             {
  8532.                 return this.m_bossSaveLongValues;
  8533.             }
  8534.         }
  8535.  
  8536.         public void ShowHidePlayer(bool show, bool setMotionController = true)
  8537.         {
  8538.             if (Mevius.App.Api.IsPartyMode())
  8539.             {
  8540.                 for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  8541.                 {
  8542.                     BattleActor battleActor = this.m_multiBattleActorList[i];
  8543.                     battleActor.chara.ShowHideModel(show, setMotionController);
  8544.                     battleActor.ShowHideWeaponEffect(show);
  8545.                 }
  8546.             }
  8547.             else
  8548.             {
  8549.                 if (this.m_playerActor != null)
  8550.                 {
  8551.                     this.m_playerActor.chara.ShowHideModel(show, setMotionController);
  8552.                     this.m_playerActor.ShowHideWeaponEffect(show);
  8553.                 }
  8554.                 if (this.m_fairyActor != null)
  8555.                 {
  8556.                     this.m_fairyActor.Chara.ShowHideModel(show, setMotionController);
  8557.                 }
  8558.             }
  8559.         }
  8560.  
  8561.         public void InitSameCharaIndex()
  8562.         {
  8563.             if (!BattleUtility.IsDQGimmick())
  8564.             {
  8565.                 return;
  8566.             }
  8567.             this.m_dqSameNameDictionary = new Dictionary<string, sbyte>(this._entryBattleCharaSpecList.Count >> 1);
  8568.             Dictionary<string, int> dictionary = new Dictionary<string, int>(this._entryBattleCharaSpecList.Count);
  8569.             for (int i = 0; i < this._entryBattleCharaSpecList.Count; i++)
  8570.             {
  8571.                 string enemyActorName = BattleManager.GetEnemyActorName(i);
  8572.                 BattleActor battleActor = this.FindActor(enemyActorName);
  8573.                 if (battleActor != null && !battleActor.IsStandBy())
  8574.                 {
  8575.                     C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b = C4d4f3a800432e94568175cb31ad3c78d.Find(this._entryBattleCharaSpecList[i]);
  8576.                     if (c51747b7e0e19ad065084a2c5a6d8421b != null)
  8577.                     {
  8578.                         string text = c51747b7e0e19ad065084a2c5a6d8421b.mf1c02fa779f434db21d5e8bf97e8f0b9();
  8579.                         sbyte b;
  8580.                         if ((int)battleActor.SameCharaIndex == -1)
  8581.                         {
  8582.                             if (dictionary.ContainsKey(text))
  8583.                             {
  8584.                                 Dictionary<string, int> dictionary3;
  8585.                                 Dictionary<string, int> dictionary2 = dictionary3 = dictionary;
  8586.                                 string key2;
  8587.                                 string key = key2 = text;
  8588.                                 int num = dictionary3[key2];
  8589.                                 dictionary2[key] = num + 1;
  8590.                             }
  8591.                             else
  8592.                             {
  8593.                                 dictionary[text] = 1;
  8594.                             }
  8595.                         }
  8596.                         else if (this.m_dqSameNameDictionary.TryGetValue(text, out b))
  8597.                         {
  8598.                             if ((int)b < (int)battleActor.SameCharaIndex)
  8599.                             {
  8600.                                 this.m_dqSameNameDictionary[text] = battleActor.SameCharaIndex;
  8601.                             }
  8602.                         }
  8603.                         else
  8604.                         {
  8605.                             this.m_dqSameNameDictionary[text] = battleActor.SameCharaIndex;
  8606.                         }
  8607.                     }
  8608.                 }
  8609.             }
  8610.             foreach (KeyValuePair<string, int> keyValuePair in dictionary)
  8611.             {
  8612.                 if (1 < keyValuePair.Value)
  8613.                 {
  8614.                     sbyte b2 = 0;
  8615.                     for (int j = 0; j < this._entryBattleCharaSpecList.Count; j++)
  8616.                     {
  8617.                         string enemyActorName2 = BattleManager.GetEnemyActorName(j);
  8618.                         BattleActor battleActor2 = this.FindActor(enemyActorName2);
  8619.                         if (battleActor2 != null && !battleActor2.IsStandBy() && (int)battleActor2.SameCharaIndex == -1)
  8620.                         {
  8621.                             C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b2 = C4d4f3a800432e94568175cb31ad3c78d.Find(this._entryBattleCharaSpecList[j]);
  8622.                             if (c51747b7e0e19ad065084a2c5a6d8421b2 != null && c51747b7e0e19ad065084a2c5a6d8421b2.mf1c02fa779f434db21d5e8bf97e8f0b9() == keyValuePair.Key)
  8623.                             {
  8624.                                 battleActor2.SameCharaIndex = b2;
  8625.                                 this.m_dqSameNameDictionary[keyValuePair.Key] = b2;
  8626.                                 b2 += 1;
  8627.                             }
  8628.                         }
  8629.                     }
  8630.                 }
  8631.             }
  8632.         }
  8633.  
  8634.         public void UpdateSameNameIndex(BattleActor targetActor)
  8635.         {
  8636.             if (!BattleUtility.IsDQGimmick())
  8637.             {
  8638.                 return;
  8639.             }
  8640.             C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b = C4d4f3a800432e94568175cb31ad3c78d.Find(targetActor.BattleCharaSpec);
  8641.             if (c51747b7e0e19ad065084a2c5a6d8421b != null)
  8642.             {
  8643.                 string text = c51747b7e0e19ad065084a2c5a6d8421b.mf1c02fa779f434db21d5e8bf97e8f0b9();
  8644.                 List<sbyte> list = new List<sbyte>(this._entryBattleCharaSpecList.Count);
  8645.                 for (int i = 0; i < this._entryBattleCharaSpecList.Count; i++)
  8646.                 {
  8647.                     string enemyActorName = BattleManager.GetEnemyActorName(i);
  8648.                     BattleActor battleActor = this.FindActor(enemyActorName);
  8649.                     if (battleActor != null && battleActor.IsActive() && battleActor != targetActor)
  8650.                     {
  8651.                         C4d4f3a800432e94568175cb31ad3c78d.C51747b7e0e19ad065084a2c5a6d8421b c51747b7e0e19ad065084a2c5a6d8421b2 = C4d4f3a800432e94568175cb31ad3c78d.Find(this._entryBattleCharaSpecList[i]);
  8652.                         if (c51747b7e0e19ad065084a2c5a6d8421b2 != null && text == c51747b7e0e19ad065084a2c5a6d8421b2.mf1c02fa779f434db21d5e8bf97e8f0b9())
  8653.                         {
  8654.                             if ((int)battleActor.SameCharaIndex == -1)
  8655.                             {
  8656.                                 battleActor.SameCharaIndex = 0;
  8657.                             }
  8658.                             list.Add(battleActor.SameCharaIndex);
  8659.                         }
  8660.                     }
  8661.                 }
  8662.                 sbyte b = -1;
  8663.                 if (list.Count != 0 && this.m_dqSameNameDictionary.TryGetValue(text, out b))
  8664.                 {
  8665.                     int num = 0;
  8666.                     do
  8667.                     {
  8668.                         b += 1;
  8669.                         if (26 <= (int)b)
  8670.                         {
  8671.                             b = 0;
  8672.                         }
  8673.                         if (!list.Contains(b))
  8674.                         {
  8675.                             break;
  8676.                         }
  8677.                     }
  8678.                     while (++num <= 26);
  8679.                     this.m_dqSameNameDictionary[text] = b;
  8680.                 }
  8681.                 else
  8682.                 {
  8683.                     this.m_dqSameNameDictionary.Add(text, 0);
  8684.                 }
  8685.                 targetActor.SameCharaIndex = b;
  8686.             }
  8687.         }
  8688.  
  8689.         public bool IsPartyChange()
  8690.         {
  8691.             return this.m_playerActor != null && this.m_playerActorSub != null && this.m_playerActor.GetJobCardPlayerType() != this.m_playerActorSub.GetJobCardPlayerType();
  8692.         }
  8693.  
  8694.         public byte PlayerFinishCount
  8695.         {
  8696.             get
  8697.             {
  8698.                 return this.m_playerFinishCount;
  8699.             }
  8700.             set
  8701.             {
  8702.                 this.m_playerFinishCount = value;
  8703.             }
  8704.         }
  8705.  
  8706.         public void RecoverPlayerSubHp(int value)
  8707.         {
  8708.             if (!this.IsPartyChange())
  8709.             {
  8710.                 return;
  8711.             }
  8712.             if (this.m_playerActorSub.IsSummon())
  8713.             {
  8714.                 return;
  8715.             }
  8716.             this.m_playerActorSub.AddHp(value);
  8717.             this.AddRecoveryTotal(this.m_playerActorSub, value);
  8718.         }
  8719.  
  8720.         public void RecoverPlayerSubHpMaxRate(float rate)
  8721.         {
  8722.             if (!this.IsPartyChange())
  8723.             {
  8724.                 return;
  8725.             }
  8726.             if (this.m_playerActorSub.IsSummon())
  8727.             {
  8728.                 return;
  8729.             }
  8730.             int value = (int)((float)this.m_playerActorSub.HpMax * rate + 0.5f);
  8731.             this.m_playerActorSub.AddHp(value);
  8732.             this.AddRecoveryTotal(this.m_playerActorSub, value);
  8733.         }
  8734.  
  8735.         public void RecoverPlayerSub(BattleDamage.DamageInfo damageInfo)
  8736.         {
  8737.             if (!this.IsPartyChange())
  8738.             {
  8739.                 return;
  8740.             }
  8741.             if (this.m_playerActorSub.IsSummon())
  8742.             {
  8743.                 return;
  8744.             }
  8745.             if (!this.m_playerActor.IsStatusEffectEntry(BattleStatusEffect.ProcType.HPRecoverDisable))
  8746.             {
  8747.                 if (damageInfo.powerType == DamageSourcePowerType.OwnerHpMaxRate || damageInfo.powerType == DamageSourcePowerType.TargetHpMaxRate || damageInfo.powerType == DamageSourcePowerType.TargetFixHpMaxRate)
  8748.                 {
  8749.                     this.m_playerActorSub.AddHp((int)((float)this.m_playerActorSub.HpMax / 100f * (float)damageInfo.power + 0.5f));
  8750.                 }
  8751.                 else if (damageInfo.powerType == DamageSourcePowerType.OwnerHpRate || damageInfo.powerType == DamageSourcePowerType.TargetHpRate || damageInfo.powerType == DamageSourcePowerType.TargetFixHpRate)
  8752.                 {
  8753.                     this.m_playerActorSub.AddHp((int)((float)this.m_playerActorSub.Hp / 100f * (float)damageInfo.power + 0.5f));
  8754.                 }
  8755.                 else
  8756.                 {
  8757.                     this.m_playerActorSub.AddHp(-damageInfo.damage);
  8758.                 }
  8759.             }
  8760.         }
  8761.  
  8762.         public void PartyAIOnBehavior(BattleAiData.Pattern.TimingType timing, BattleActor actor, string argStr = "", BattleDamage.DamageInfo damageInfo = null)
  8763.         {
  8764.             for (int i = 0; i < this.m_actorList.Count; i++)
  8765.             {
  8766.                 BattleActor battleActor = this.m_actorList[i];
  8767.                 if (battleActor != actor && battleActor.IsActive() && battleActor.Ai != null && battleActor.IsParty(actor))
  8768.                 {
  8769.                     battleActor.Ai.OnBehavior(timing, argStr, damageInfo, true);
  8770.                 }
  8771.             }
  8772.         }
  8773.  
  8774.         public void CalcScreenOrderEnemyList()
  8775.         {
  8776.             this.m_screenOrderEnemyActorList.Clear();
  8777.             this.m_screenOrderEnemyPosList.Clear();
  8778.             Mevius.Renderer.CameraManager instance = Mevius.Renderer.CameraManager.GetInstance();
  8779.             if (instance == null)
  8780.             {
  8781.                 return;
  8782.             }
  8783.             GameObject viewCameraGameObject = instance.GetViewCameraGameObject();
  8784.             if (viewCameraGameObject == null)
  8785.             {
  8786.                 return;
  8787.             }
  8788.             Camera component = viewCameraGameObject.GetComponent<Camera>();
  8789.             if (component == null)
  8790.             {
  8791.                 return;
  8792.             }
  8793.             string name = ExtensionElementIdDefinition.GetName(ExtensionElementIdDefinition.Index.BODY_CENTER);
  8794.             for (int i = 0; i < this.m_actorList.Count; i++)
  8795.             {
  8796.                 BattleActor battleActor = this.m_actorList[i];
  8797.                 if (battleActor.IsEnemy() && battleActor.IsActiveTarget())
  8798.                 {
  8799.                     Transform elementIdTransform = battleActor.chara.GetElementIdTransform(name);
  8800.                     if (elementIdTransform)
  8801.                     {
  8802.                         Vector3 item = component.WorldToViewportPoint(elementIdTransform.position);
  8803.                         if (item.z > 0f)
  8804.                         {
  8805.                             bool flag = false;
  8806.                             for (int j = 0; j < this.m_screenOrderEnemyActorList.Count; j++)
  8807.                             {
  8808.                                 Vector3 vector = this.m_screenOrderEnemyPosList[j];
  8809.                                 if (item.x < vector.x)
  8810.                                 {
  8811.                                     flag = true;
  8812.                                     this.m_screenOrderEnemyActorList.Insert(j, battleActor);
  8813.                                     this.m_screenOrderEnemyPosList.Insert(j, item);
  8814.                                     break;
  8815.                                 }
  8816.                             }
  8817.                             if (!flag)
  8818.                             {
  8819.                                 this.m_screenOrderEnemyActorList.Add(battleActor);
  8820.                                 this.m_screenOrderEnemyPosList.Add(item);
  8821.                             }
  8822.                         }
  8823.                     }
  8824.                 }
  8825.             }
  8826.         }
  8827.  
  8828.         public void InitDQAbility()
  8829.         {
  8830.             if (BattleUtility.IsDQGimmick())
  8831.             {
  8832.                 Mevius.Db.Api.JOB_TYPE parameter = (Mevius.Db.Api.JOB_TYPE)Mevius.Db.Api.GetParameter(DbManager.ParameterType.JobAttribute);
  8833.                 Mevius.Db.Api.JOB_TYPE parameter2 = (Mevius.Db.Api.JOB_TYPE)Mevius.Db.Api.GetParameter(DbManager.ParameterType.JobAttribute_Sub);
  8834.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_FORCE || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_FORCE)
  8835.                 {
  8836.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityWarrior();
  8837.                     for (int i = 0; i < array.Length; i++)
  8838.                     {
  8839.                         Mevius.Loader.Api.LoadAbility(array[i].id);
  8840.                     }
  8841.                 }
  8842.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_TECHNIQUE || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_TECHNIQUE)
  8843.                 {
  8844.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityRanger();
  8845.                     for (int j = 0; j < array.Length; j++)
  8846.                     {
  8847.                         Mevius.Loader.Api.LoadAbility(array[j].id);
  8848.                     }
  8849.                 }
  8850.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_INTELLECT || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_INTELLECT)
  8851.                 {
  8852.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityMage();
  8853.                     for (int k = 0; k < array.Length; k++)
  8854.                     {
  8855.                         Mevius.Loader.Api.LoadAbility(array[k].id);
  8856.                     }
  8857.                 }
  8858.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_MARTIAL || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_MARTIAL)
  8859.                 {
  8860.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityMartialArtist();
  8861.                     for (int l = 0; l < array.Length; l++)
  8862.                     {
  8863.                         Mevius.Loader.Api.LoadAbility(array[l].id);
  8864.                     }
  8865.                 }
  8866.             }
  8867.         }
  8868.  
  8869.         public void EndDQAbility()
  8870.         {
  8871.             if (BattleUtility.IsDQGimmick())
  8872.             {
  8873.                 Mevius.Db.Api.JOB_TYPE parameter = (Mevius.Db.Api.JOB_TYPE)Mevius.Db.Api.GetParameter(DbManager.ParameterType.JobAttribute);
  8874.                 Mevius.Db.Api.JOB_TYPE parameter2 = (Mevius.Db.Api.JOB_TYPE)Mevius.Db.Api.GetParameter(DbManager.ParameterType.JobAttribute_Sub);
  8875.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_FORCE || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_FORCE)
  8876.                 {
  8877.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityWarrior();
  8878.                     for (int i = 0; i < array.Length; i++)
  8879.                     {
  8880.                         Mevius.Loader.Api.UnLoadAbility(array[i].id);
  8881.                     }
  8882.                 }
  8883.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_TECHNIQUE || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_TECHNIQUE)
  8884.                 {
  8885.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityRanger();
  8886.                     for (int j = 0; j < array.Length; j++)
  8887.                     {
  8888.                         Mevius.Loader.Api.UnLoadAbility(array[j].id);
  8889.                     }
  8890.                 }
  8891.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_INTELLECT || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_INTELLECT)
  8892.                 {
  8893.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityMage();
  8894.                     for (int k = 0; k < array.Length; k++)
  8895.                     {
  8896.                         Mevius.Loader.Api.UnLoadAbility(array[k].id);
  8897.                     }
  8898.                 }
  8899.                 if (parameter == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_MARTIAL || parameter2 == Mevius.Db.Api.JOB_TYPE.JOB_TYPE_MARTIAL)
  8900.                 {
  8901.                     DbManager.DQAbility[] array = Mevius.Db.Api.GetDQAbilityMartialArtist();
  8902.                     for (int l = 0; l < array.Length; l++)
  8903.                     {
  8904.                         Mevius.Loader.Api.UnLoadAbility(array[l].id);
  8905.                     }
  8906.                 }
  8907.             }
  8908.         }
  8909.  
  8910.         public void InitFF7Ability()
  8911.         {
  8912.             if (!BattleUtility.IsFF7Gimmick())
  8913.             {
  8914.                 return;
  8915.             }
  8916.             FF7MateriaSheet ff7CurrentMateriaSet = Mevius.Db.Api.GetFF7CurrentMateriaSet();
  8917.             if (ff7CurrentMateriaSet == null)
  8918.             {
  8919.                 return;
  8920.             }
  8921.             C1a80abc65223cbedf4c65f351d473ca0.C68ded254e0859e604ece0328b8447fa0 dsElement = ff7CurrentMateriaSet.DsElement;
  8922.             if (dsElement != null)
  8923.             {
  8924.                 List<Ceaf68fb2356fb8b84facc86d2fe79f0e.Cca912973d2eb55c3b74a5c95a6475670> list = new List<Ceaf68fb2356fb8b84facc86d2fe79f0e.Cca912973d2eb55c3b74a5c95a6475670>();
  8925.                 List<C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c> list2 = new List<C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c>();
  8926.                 string displayText = Mevius.Gui.Util.GetGuiText("$edit_mate_004").GetDisplayText();
  8927.                 for (int i = 0; i < 3; i++)
  8928.                 {
  8929.                     MateriaSlotInfo materiaSlotInfo = ff7CurrentMateriaSet.GetMateriaSlotInfo(i);
  8930.                     if (materiaSlotInfo != null)
  8931.                     {
  8932.                         int materiaSlotLevel = ff7CurrentMateriaSet.GetMateriaSlotLevel(i);
  8933.                         string str = "ff7_" + i.ToString();
  8934.                         int num = 0;
  8935.                         int count = materiaSlotInfo.abilityInfos.Count;
  8936.                         for (int j = 0; j < count; j++)
  8937.                         {
  8938.                             string text = str + "_" + num.ToString();
  8939.                             num++;
  8940.                             Ceaf68fb2356fb8b84facc86d2fe79f0e.Cca912973d2eb55c3b74a5c95a6475670 cca912973d2eb55c3b74a5c95a = new Ceaf68fb2356fb8b84facc86d2fe79f0e.Cca912973d2eb55c3b74a5c95a6475670();
  8941.                             cca912973d2eb55c3b74a5c95a.setmea95f268a19fafbae355590c72e0af82(text);
  8942.                             if (materiaSlotInfo.abilityInfos[j].attributes.Count != 0)
  8943.                             {
  8944.                                 string baseAbilityId = Mevius.Collaboration.FF7.Api.GetBaseAbilityId(materiaSlotInfo.abilityInfos[j]);
  8945.                                 Ceaf68fb2356fb8b84facc86d2fe79f0e.Cca912973d2eb55c3b74a5c95a6475670 cca912973d2eb55c3b74a5c95a2 = Ceaf68fb2356fb8b84facc86d2fe79f0e.Find(baseAbilityId);
  8946.                                 if (cca912973d2eb55c3b74a5c95a2 != null)
  8947.                                 {
  8948.                                     BattleUtility.CopyBattleAbility(cca912973d2eb55c3b74a5c95a2, cca912973d2eb55c3b74a5c95a);
  8949.                                     list.Add(cca912973d2eb55c3b74a5c95a);
  8950.                                     cca912973d2eb55c3b74a5c95a.me37bd2195ab85215257357867bf1f31f = displayText + (i + 1).ToString();
  8951.                                     cca912973d2eb55c3b74a5c95a.mba50449bb16149be0cb9107b3332af55 = text + "_0";
  8952.                                     if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic2 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic4)
  8953.                                     {
  8954.                                         cca912973d2eb55c3b74a5c95a.m943a4f44a5b790adf5f199abcd9f8eda[0] = "b_ab_magic3";
  8955.                                         Array.Clear(cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301, 0, cca912973d2eb55c3b74a5c95a.m943a4f44a5b790adf5f199abcd9f8eda.Length);
  8956.                                         cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301[0] = Mevius.DataSheet.Api.GetResidentString("ff7MateriaCameraMagicSequence", "none");
  8957.                                         Array.Clear(cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301, 1, cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301.Length - 1);
  8958.                                     }
  8959.                                     else if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics2 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics4)
  8960.                                     {
  8961.                                         cca912973d2eb55c3b74a5c95a.m943a4f44a5b790adf5f199abcd9f8eda[0] = "b_ab_attack3";
  8962.                                     }
  8963.                                     else if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.None)
  8964.                                     {
  8965.                                         cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301[0] = Mevius.DataSheet.Api.GetResidentString("ff7MateriaCameraMagic", "none");
  8966.                                         Array.Clear(cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301, 1, cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301.Length - 1);
  8967.                                     }
  8968.                                     int num2 = 0;
  8969.                                     C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c = C9834a30e5f3368ef11b898eb90b12c5b.Find(baseAbilityId.ToString());
  8970.                                     if (c03df96e967d7177ede70d5c100f08e3c != null)
  8971.                                     {
  8972.                                         bool flag = false;
  8973.                                         float maf2cbc7dd405e1877acc7668fe3a8f1c = 0f;
  8974.                                         if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic2 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic4)
  8975.                                         {
  8976.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c2 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  8977.                                             list2.Add(c03df96e967d7177ede70d5c100f08e3c2);
  8978.                                             c03df96e967d7177ede70d5c100f08e3c2.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_" + num2.ToString());
  8979.                                             num2++;
  8980.                                             c03df96e967d7177ede70d5c100f08e3c2.m232ee576923851b2f6b50a1e96174ebf = 2f;
  8981.                                             c03df96e967d7177ede70d5c100f08e3c2.m231ee77ce8c939b2457cb3ca8ab78f93 = 1;
  8982.                                             int num3 = 0;
  8983.                                             if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic2)
  8984.                                             {
  8985.                                                 num3 = 1;
  8986.                                             }
  8987.                                             else if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic4)
  8988.                                             {
  8989.                                                 num3 = 3;
  8990.                                             }
  8991.                                             c03df96e967d7177ede70d5c100f08e3c2.m882baa1c0fb70bc90216be0d2aa79ddd = 1;
  8992.                                             c03df96e967d7177ede70d5c100f08e3c2.m86cd0ccc62cd5f3f8eb9461852b6cd85 = (float)num3;
  8993.                                             c03df96e967d7177ede70d5c100f08e3c2.mfa094e7f6620ef2b4d68b4544c65408f = 0.25f;
  8994.                                             c03df96e967d7177ede70d5c100f08e3c2.m2c8f11c2c6c9758a89a28fa2469923c3[0] = text + "_" + num2.ToString();
  8995.                                             c03df96e967d7177ede70d5c100f08e3c2.m8deb8b75848d2f5f6b14a04e263f6e9b = text + "_" + (num2 + 1).ToString();
  8996.                                             flag = true;
  8997.                                             maf2cbc7dd405e1877acc7668fe3a8f1c = (float)num3 * 0.25f;
  8998.                                         }
  8999.                                         C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c3 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9000.                                         list2.Add(c03df96e967d7177ede70d5c100f08e3c3);
  9001.                                         BattleUtility.CopyBattleDamageSource(c03df96e967d7177ede70d5c100f08e3c, c03df96e967d7177ede70d5c100f08e3c3);
  9002.                                         c03df96e967d7177ede70d5c100f08e3c3.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_" + num2.ToString());
  9003.                                         num2++;
  9004.                                         bool flag2 = !string.IsNullOrEmpty(c03df96e967d7177ede70d5c100f08e3c3.m141fbc6685aa36c47b8b7c97eeff932b);
  9005.                                         string m141fbc6685aa36c47b8b7c97eeff932b = c03df96e967d7177ede70d5c100f08e3c3.m141fbc6685aa36c47b8b7c97eeff932b;
  9006.                                         float num4;
  9007.                                         float num5;
  9008.                                         Mevius.Collaboration.FF7.Api.GetAbilityPowerCoef(out num4, out num5, materiaSlotInfo.abilityInfos[j]);
  9009.                                         short num6 = (short)((float)Mevius.DataSheet.Api.GetResidentInteger("ff7MateriaAttackPower", 600) + (float)materiaSlotLevel * Mevius.DataSheet.Api.GetResidentFloat("ff7MateriaAttackPowerLvCoef", 1f) + 0.5f);
  9010.                                         bool flag3 = materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics1 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics2 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics4 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.PhysicsAll || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics1All;
  9011.                                         if (c03df96e967d7177ede70d5c100f08e3c3.m7e024ed285de34a9f7483eb072477c80 != 0)
  9012.                                         {
  9013.                                             if (flag3)
  9014.                                             {
  9015.                                                 c03df96e967d7177ede70d5c100f08e3c3.md11d39aa00a1b29455aa77cfc8557a01 = 1;
  9016.                                                 c03df96e967d7177ede70d5c100f08e3c3.m1d0fa7d9f03c7e86ed69e0ee8a565ee0 = 1;
  9017.                                             }
  9018.                                             c03df96e967d7177ede70d5c100f08e3c3.m7e024ed285de34a9f7483eb072477c80 = (int)((float)num6 * num4 + 0.5f);
  9019.                                             c03df96e967d7177ede70d5c100f08e3c3.m8bafa3580a38581118515f64dbe08697 = (short)((float)num6 * num5 + 0.5f);
  9020.                                             Mevius.Collaboration.FF7.Api.SetDamageSourceAttribute(c03df96e967d7177ede70d5c100f08e3c3, materiaSlotInfo.abilityInfos[j]);
  9021.                                             if (!flag2)
  9022.                                             {
  9023.                                                 Mevius.Collaboration.FF7.Api.SetDamageSourceDebuff(c03df96e967d7177ede70d5c100f08e3c3, materiaSlotInfo.abilityInfos[j]);
  9024.                                             }
  9025.                                         }
  9026.                                         if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics2 || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics4)
  9027.                                         {
  9028.                                             c03df96e967d7177ede70d5c100f08e3c3.m882baa1c0fb70bc90216be0d2aa79ddd = 1;
  9029.                                             int num7 = 0;
  9030.                                             if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics2)
  9031.                                             {
  9032.                                                 num7 = 1;
  9033.                                             }
  9034.                                             else if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics4)
  9035.                                             {
  9036.                                                 num7 = 3;
  9037.                                             }
  9038.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c4 = c03df96e967d7177ede70d5c100f08e3c3;
  9039.                                             for (int k = 0; k < num7; k++)
  9040.                                             {
  9041.                                                 C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c5 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9042.                                                 list2.Add(c03df96e967d7177ede70d5c100f08e3c5);
  9043.                                                 BattleUtility.CopyBattleDamageSource(c03df96e967d7177ede70d5c100f08e3c3, c03df96e967d7177ede70d5c100f08e3c5);
  9044.                                                 c03df96e967d7177ede70d5c100f08e3c5.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_" + num2.ToString());
  9045.                                                 c03df96e967d7177ede70d5c100f08e3c5.m141fbc6685aa36c47b8b7c97eeff932b = string.Empty;
  9046.                                                 c03df96e967d7177ede70d5c100f08e3c5.maf2cbc7dd405e1877acc7668fe3a8f1c = 0.125f;
  9047.                                                 if (k == num7 - 1)
  9048.                                                 {
  9049.                                                     c03df96e967d7177ede70d5c100f08e3c5.m882baa1c0fb70bc90216be0d2aa79ddd = 0;
  9050.                                                 }
  9051.                                                 c03df96e967d7177ede70d5c100f08e3c4.m141fbc6685aa36c47b8b7c97eeff932b = text + "_" + num2.ToString();
  9052.                                                 num2++;
  9053.                                                 c03df96e967d7177ede70d5c100f08e3c4 = c03df96e967d7177ede70d5c100f08e3c5;
  9054.                                             }
  9055.                                         }
  9056.                                         if (flag2)
  9057.                                         {
  9058.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c6 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9059.                                             list2.Add(c03df96e967d7177ede70d5c100f08e3c6);
  9060.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c7 = C9834a30e5f3368ef11b898eb90b12c5b.Find(m141fbc6685aa36c47b8b7c97eeff932b);
  9061.                                             if (c03df96e967d7177ede70d5c100f08e3c7 != null)
  9062.                                             {
  9063.                                                 BattleUtility.CopyBattleDamageSource(c03df96e967d7177ede70d5c100f08e3c7, c03df96e967d7177ede70d5c100f08e3c6);
  9064.                                             }
  9065.                                             c03df96e967d7177ede70d5c100f08e3c6.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_" + num2.ToString());
  9066.                                             c03df96e967d7177ede70d5c100f08e3c3.m141fbc6685aa36c47b8b7c97eeff932b = c03df96e967d7177ede70d5c100f08e3c6.m1467af6649f8c2c42db7965d4a2e590e();
  9067.                                             num2++;
  9068.                                             if (flag3)
  9069.                                             {
  9070.                                                 c03df96e967d7177ede70d5c100f08e3c6.md11d39aa00a1b29455aa77cfc8557a01 = 1;
  9071.                                                 c03df96e967d7177ede70d5c100f08e3c6.m1d0fa7d9f03c7e86ed69e0ee8a565ee0 = 1;
  9072.                                             }
  9073.                                             float num8 = 1f;
  9074.                                             if (materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Magic1All || materiaSlotInfo.abilityInfos[j].changeTarget == ChangeAbility.Physics1All)
  9075.                                             {
  9076.                                                 num8 = Mevius.DataSheet.Api.GetResidentFloat("ff7MateriaAttackPowerAreaFocusCoef", 0.5f);
  9077.                                             }
  9078.                                             c03df96e967d7177ede70d5c100f08e3c6.m7e024ed285de34a9f7483eb072477c80 = (int)((float)num6 * num4 * num8 + 0.5f);
  9079.                                             c03df96e967d7177ede70d5c100f08e3c6.m8bafa3580a38581118515f64dbe08697 = (short)((float)num6 * num5 * num8 + 0.5f);
  9080.                                             Mevius.Collaboration.FF7.Api.SetDamageSourceAttribute(c03df96e967d7177ede70d5c100f08e3c6, materiaSlotInfo.abilityInfos[j]);
  9081.                                             Mevius.Collaboration.FF7.Api.SetDamageSourceDebuff(c03df96e967d7177ede70d5c100f08e3c6, materiaSlotInfo.abilityInfos[j]);
  9082.                                         }
  9083.                                         if (flag)
  9084.                                         {
  9085.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c8 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9086.                                             list2.Add(c03df96e967d7177ede70d5c100f08e3c8);
  9087.                                             BattleUtility.CopyBattleDamageSource(c03df96e967d7177ede70d5c100f08e3c3, c03df96e967d7177ede70d5c100f08e3c8);
  9088.                                             c03df96e967d7177ede70d5c100f08e3c8.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_" + num2.ToString());
  9089.                                             num2++;
  9090.                                             c03df96e967d7177ede70d5c100f08e3c8.maf2cbc7dd405e1877acc7668fe3a8f1c = maf2cbc7dd405e1877acc7668fe3a8f1c;
  9091.                                             c03df96e967d7177ede70d5c100f08e3c3.m882baa1c0fb70bc90216be0d2aa79ddd = 1;
  9092.                                         }
  9093.                                         if (materiaSlotInfo.abilityInfos[j].buffs.Count > 0)
  9094.                                         {
  9095.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c9 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9096.                                             list2.Add(c03df96e967d7177ede70d5c100f08e3c9);
  9097.                                             c03df96e967d7177ede70d5c100f08e3c9.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_ae");
  9098.                                             c03df96e967d7177ede70d5c100f08e3c9.meaeea622f2586f161d1b5d11201c0a69 = 1;
  9099.                                             c03df96e967d7177ede70d5c100f08e3c9.mda5f5a0a10736238394cfb52a181ed8d = 3;
  9100.                                             c03df96e967d7177ede70d5c100f08e3c9.mda5c5330c6e22693cd8160b7b6526591 = 1;
  9101.                                             Mevius.Collaboration.FF7.Api.SetDamageSourceBuff(c03df96e967d7177ede70d5c100f08e3c9, materiaSlotInfo.abilityInfos[j]);
  9102.                                         }
  9103.                                     }
  9104.                                 }
  9105.                             }
  9106.                             else
  9107.                             {
  9108.                                 string noAttributeBaseAbilityId = Mevius.Collaboration.FF7.Api.GetNoAttributeBaseAbilityId(materiaSlotInfo.abilityInfos[j]);
  9109.                                 Ceaf68fb2356fb8b84facc86d2fe79f0e.Cca912973d2eb55c3b74a5c95a6475670 cca912973d2eb55c3b74a5c95a3 = Ceaf68fb2356fb8b84facc86d2fe79f0e.Find(noAttributeBaseAbilityId);
  9110.                                 if (cca912973d2eb55c3b74a5c95a3 != null)
  9111.                                 {
  9112.                                     BattleUtility.CopyBattleAbility(cca912973d2eb55c3b74a5c95a3, cca912973d2eb55c3b74a5c95a);
  9113.                                     list.Add(cca912973d2eb55c3b74a5c95a);
  9114.                                     cca912973d2eb55c3b74a5c95a.me37bd2195ab85215257357867bf1f31f = displayText + (i + 1).ToString();
  9115.                                     cca912973d2eb55c3b74a5c95a.mba50449bb16149be0cb9107b3332af55 = text + "_0";
  9116.                                     if (j < count - 1)
  9117.                                     {
  9118.                                         cca912973d2eb55c3b74a5c95a.mfcd8fc0409c28788a0e376aad388f005 = str + "_" + num.ToString();
  9119.                                         cca912973d2eb55c3b74a5c95a.m26d85265ed945179cb5be06cc1527a30 = -1;
  9120.                                     }
  9121.                                     if (materiaSlotInfo.abilityInfos[j].debuffs.Count > 0)
  9122.                                     {
  9123.                                         cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301[0] = Mevius.DataSheet.Api.GetResidentString("ff7MateriaCameraDebuff", "none");
  9124.                                         Array.Clear(cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301, 1, cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301.Length - 1);
  9125.                                     }
  9126.                                     else
  9127.                                     {
  9128.                                         cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301[0] = Mevius.DataSheet.Api.GetResidentString("ff7MateriaCameraBuff", "none");
  9129.                                         Array.Clear(cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301, 1, cca912973d2eb55c3b74a5c95a.m8f4006d551650d0f2bbc0cccda58f301.Length - 1);
  9130.                                     }
  9131.                                     C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c10 = C9834a30e5f3368ef11b898eb90b12c5b.Find(noAttributeBaseAbilityId);
  9132.                                     if (c03df96e967d7177ede70d5c100f08e3c10 != null)
  9133.                                     {
  9134.                                         C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c11 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9135.                                         list2.Add(c03df96e967d7177ede70d5c100f08e3c11);
  9136.                                         c03df96e967d7177ede70d5c100f08e3c11.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_0");
  9137.                                         BattleUtility.CopyBattleDamageSource(c03df96e967d7177ede70d5c100f08e3c10, c03df96e967d7177ede70d5c100f08e3c11);
  9138.                                         c03df96e967d7177ede70d5c100f08e3c11.m7e024ed285de34a9f7483eb072477c80 = 0;
  9139.                                         c03df96e967d7177ede70d5c100f08e3c11.m8bafa3580a38581118515f64dbe08697 = 0;
  9140.                                         c03df96e967d7177ede70d5c100f08e3c11.mbd10f0aef2b7c61687371c0f7de385d7 = 0;
  9141.                                         c03df96e967d7177ede70d5c100f08e3c11.m36dde0bc3246e78f0bd51c3450d9bc69 = 0;
  9142.                                         c03df96e967d7177ede70d5c100f08e3c11.m994d4e1ad0d9eda07321fcfbe6e87287 = 0;
  9143.                                         c03df96e967d7177ede70d5c100f08e3c11.mf72ce828fb91fc639faaf341de2096f5 = 0;
  9144.                                         c03df96e967d7177ede70d5c100f08e3c11.m072c238da24e5125a477c2c5b84ee8d8 = 0;
  9145.                                         c03df96e967d7177ede70d5c100f08e3c11.mdc5b205500ea1ed16341d9a4d9bee4a9 = 0;
  9146.                                         c03df96e967d7177ede70d5c100f08e3c11.mf72b3b01d0de212265226b9dfba2c5ea = 0;
  9147.                                         c03df96e967d7177ede70d5c100f08e3c11.m5d4c3b300c28febb20f7abbf7beaad79 = 0;
  9148.                                         c03df96e967d7177ede70d5c100f08e3c11.m05ced7e20b8e7ecfe1d5eec04f8a8958 = 0;
  9149.                                         c03df96e967d7177ede70d5c100f08e3c11.m70a7e54f6c07644bf87e004421d927b1 = 0;
  9150.                                         c03df96e967d7177ede70d5c100f08e3c11.m5e403dbef69e407e4b9a5b563c445fde = 0;
  9151.                                         c03df96e967d7177ede70d5c100f08e3c11.mb79886ee572ee2f554c46f5145cf8416 = 0;
  9152.                                         if (materiaSlotInfo.abilityInfos[j].debuffs.Count != 0)
  9153.                                         {
  9154.                                             Mevius.Collaboration.FF7.Api.SetDamageSourceDebuff(c03df96e967d7177ede70d5c100f08e3c11, materiaSlotInfo.abilityInfos[j]);
  9155.                                             c03df96e967d7177ede70d5c100f08e3c11.m141fbc6685aa36c47b8b7c97eeff932b = text + "_1";
  9156.                                             C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c12 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9157.                                             list2.Add(c03df96e967d7177ede70d5c100f08e3c12);
  9158.                                             c03df96e967d7177ede70d5c100f08e3c12.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_1");
  9159.                                             c03df96e967d7177ede70d5c100f08e3c12.mda5c5330c6e22693cd8160b7b6526591 = 2;
  9160.                                             c03df96e967d7177ede70d5c100f08e3c12.mc0e85657175b2f596f858b8e10884392 = 1;
  9161.                                             if (materiaSlotInfo.abilityInfos[j].buffs.Count > 0)
  9162.                                             {
  9163.                                                 C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c c03df96e967d7177ede70d5c100f08e3c13 = new C9834a30e5f3368ef11b898eb90b12c5b.C03df96e967d7177ede70d5c100f08e3c();
  9164.                                                 list2.Add(c03df96e967d7177ede70d5c100f08e3c13);
  9165.                                                 c03df96e967d7177ede70d5c100f08e3c13.setm2fdc5dfffb1b3d841ac3f8230f882c53(text + "_ae");
  9166.                                                 c03df96e967d7177ede70d5c100f08e3c13.meaeea622f2586f161d1b5d11201c0a69 = 1;
  9167.                                                 c03df96e967d7177ede70d5c100f08e3c13.mda5f5a0a10736238394cfb52a181ed8d = 3;
  9168.                                                 c03df96e967d7177ede70d5c100f08e3c13.mda5c5330c6e22693cd8160b7b6526591 = 1;
  9169.                                                 Mevius.Collaboration.FF7.Api.SetDamageSourceBuff(c03df96e967d7177ede70d5c100f08e3c13, materiaSlotInfo.abilityInfos[j]);
  9170.                                             }
  9171.                                         }
  9172.                                         else if (materiaSlotInfo.abilityInfos[j].buffs.Count != 0)
  9173.                                         {
  9174.                                             Mevius.Collaboration.FF7.Api.SetDamageSourceBuff(c03df96e967d7177ede70d5c100f08e3c11, materiaSlotInfo.abilityInfos[j]);
  9175.                                         }
  9176.                                     }
  9177.                                 }
  9178.                             }
  9179.                         }
  9180.                     }
  9181.                 }
  9182.                 this.m_ff7Ability = ScriptableObject.CreateInstance<Ceaf68fb2356fb8b84facc86d2fe79f0e>();
  9183.                 this.m_ff7Ability.dataLines = list.ToArray();
  9184.                 this.m_ff7Ability.Register();
  9185.                 for (int l = 0; l < this.m_ff7Ability.dataLines.Length; l++)
  9186.                 {
  9187.                     Mevius.Loader.Api.LoadAbility(this.m_ff7Ability.dataLines[l].m03efb1c6d38a191c6a0ae0c5f55ec129());
  9188.                 }
  9189.                 this.m_ff7DamageSource = ScriptableObject.CreateInstance<C9834a30e5f3368ef11b898eb90b12c5b>();
  9190.                 this.m_ff7DamageSource.dataLines = list2.ToArray();
  9191.                 this.m_ff7DamageSource.Register();
  9192.             }
  9193.         }
  9194.  
  9195.         public void EndFF7Ability()
  9196.         {
  9197.             if (!BattleUtility.IsFF7Gimmick())
  9198.             {
  9199.                 return;
  9200.             }
  9201.             if (this.m_ff7Ability != null)
  9202.             {
  9203.                 for (int i = 0; i < this.m_ff7Ability.dataLines.Length; i++)
  9204.                 {
  9205.                     Mevius.Loader.Api.UnLoadAbility(this.m_ff7Ability.dataLines[i].m03efb1c6d38a191c6a0ae0c5f55ec129());
  9206.                 }
  9207.                 this.m_ff7Ability.Unregister();
  9208.                 UnityEngine.Object.DestroyImmediate(this.m_ff7Ability);
  9209.                 this.m_ff7Ability = null;
  9210.             }
  9211.             if (this.m_ff7DamageSource != null)
  9212.             {
  9213.                 this.m_ff7DamageSource.Unregister();
  9214.                 UnityEngine.Object.DestroyImmediate(this.m_ff7DamageSource);
  9215.                 this.m_ff7DamageSource = null;
  9216.             }
  9217.         }
  9218.  
  9219.         public void InitFF8Ability()
  9220.         {
  9221.             if (!BattleUtility.IsFF8Gimmick())
  9222.             {
  9223.                 return;
  9224.             }
  9225.             for (int i = 0; i < this.ff8DrawAbility.Length; i++)
  9226.             {
  9227.                 if (this.ff8DrawAbility[i] == null)
  9228.                 {
  9229.                     this.ff8DrawAbility[i] = new BattleManager.DrawAbility();
  9230.                 }
  9231.             }
  9232.         }
  9233.  
  9234.         public void EndFF8Ability()
  9235.         {
  9236.             if (!BattleUtility.IsFF8Gimmick())
  9237.             {
  9238.                 return;
  9239.             }
  9240.             for (int i = 0; i < this.ff8DrawAbility.Length; i++)
  9241.             {
  9242.                 if (this.ff8DrawAbility[i] != null)
  9243.                 {
  9244.                     this.ff8DrawAbility[i].Clear();
  9245.                 }
  9246.             }
  9247.         }
  9248.  
  9249.         public bool IsFreeAbility()
  9250.         {
  9251.             return false;
  9252.         }
  9253.  
  9254.         public void RevivePlayer()
  9255.         {
  9256.             this.m_playerActor.OnRevive();
  9257.             if (this.m_playerActorSub != null && this.m_playerActorSub.IsSummon())
  9258.             {
  9259.                 this.m_playerActorSub.OnReviveSummon();
  9260.             }
  9261.             if (BattleUtility.IsOptima())
  9262.             {
  9263.                 this.m_optimaUseCounts[0] = (byte)Mevius.Db.Api.GetOptimaLevelAttacker();
  9264.                 this.m_optimaUseCounts[1] = (byte)Mevius.Db.Api.GetOptimaLevelBlaster();
  9265.                 this.m_optimaUseCounts[2] = (byte)Mevius.Db.Api.GetOptimaLevelDefender();
  9266.             }
  9267.             if (BattleUtility.IsFF7Gimmick())
  9268.             {
  9269.                 FF7MateriaSheet ff7CurrentMateriaSet = Mevius.Db.Api.GetFF7CurrentMateriaSet();
  9270.                 if (ff7CurrentMateriaSet != null)
  9271.                 {
  9272.                     C1a80abc65223cbedf4c65f351d473ca0.C68ded254e0859e604ece0328b8447fa0 dsElement = ff7CurrentMateriaSet.DsElement;
  9273.                     if (dsElement != null)
  9274.                     {
  9275.                         byte b = dsElement.m47f624eef22687da96fbcbb211db2c8e();
  9276.                         for (int i = 0; i < this.m_ff7AbilityUseCounts.Length; i++)
  9277.                         {
  9278.                             this.m_ff7AbilityUseCounts[i] = b;
  9279.                         }
  9280.                     }
  9281.                 }
  9282.             }
  9283.             if (this.IsCountTimeBattle())
  9284.             {
  9285.                 float num = 1f;
  9286.                 Caa051806b3598cc4aa2892b0900bdadb.C7515a628c1d13daf08c8a160fb5c564e targetStepBattle = Mevius.Field.Api.BattleApi.GetTargetStepBattle(Mevius.Field.Api.GadgetRouteApi.GetTargetGadgetName(), Mevius.App.Api.GetMainJobTypeCurrentDeck());
  9287.                 if (targetStepBattle != null && BattleTest._i == null)
  9288.                 {
  9289.                     num += (float)targetStepBattle.m5b49e9c72574a286a4b602ef72eff9f1() / 100f;
  9290.                 }
  9291.                 if (num != 0f && this.m_playerActor != null && this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59 != null)
  9292.                 {
  9293.                     C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9294.                     if (ca4d3b5367a73030692d322e3f08669b != null)
  9295.                     {
  9296.                         this.m_actionPower = (float)ca4d3b5367a73030692d322e3f08669b.mb340f1c79854e240a4cb690d3cacca53();
  9297.                         GuiBattleMenu.Instance.TimeLine.ActionPower = this.m_actionPower;
  9298.                     }
  9299.                 }
  9300.             }
  9301.             this.ProcManToMan();
  9302.         }
  9303.  
  9304.         public void HideBattleEnemyActionName()
  9305.         {
  9306.             this.m_abilityMessageTime = new PreciseTime(0f);
  9307.             Mevius.Gui.Api.HideBattleEnemyActionName();
  9308.         }
  9309.  
  9310.         public void UpdateAbilityMessage()
  9311.         {
  9312.             if (this.m_abilityMessageTime.GetSecond() > 0f)
  9313.             {
  9314.                 this.m_abilityMessageTime -= Mevius.App.Api.GetPreciseTimeForBattle();
  9315.                 if (this.m_abilityMessageTime.GetSecond() <= 0f)
  9316.                 {
  9317.                     Mevius.Gui.Api.HideBattleEnemyActionName();
  9318.                 }
  9319.             }
  9320.         }
  9321.  
  9322.         public bool IsShowAbilityMessage()
  9323.         {
  9324.             return this.m_abilityMessageTime.GetSecond() > 0f;
  9325.         }
  9326.  
  9327.         public void ShowAbilityMessage(string name, ElementAttributeBitType attributeBit, float sec)
  9328.         {
  9329.             if (0f < sec)
  9330.             {
  9331.                 Mevius.Gui.Api.ShowBattleEnemyActionName(name, attributeBit);
  9332.                 this.m_abilityMessageTime = new PreciseTime(sec);
  9333.             }
  9334.         }
  9335.  
  9336.         public void HideAbilityMessage()
  9337.         {
  9338.             if (this.IsShowAbilityMessage())
  9339.             {
  9340.                 this.m_abilityMessageTime = new PreciseTime(0f);
  9341.                 Mevius.Gui.Api.HideBattleEnemyActionName();
  9342.             }
  9343.         }
  9344.  
  9345.         public int GetMultiRoleTypeCount(int type, bool isActive)
  9346.         {
  9347.             int num = 0;
  9348.             for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  9349.             {
  9350.                 if (this.m_multiBattleActorList[i] != null && (int)this.m_multiBattleActorList[i].C648971f118c7e1100318b6fb7ac13b59.m3466576105ab362c4a8efc294dbbdd80() == type && (!isActive || this.m_multiBattleActorList[i].IsActive()))
  9351.                 {
  9352.                     num++;
  9353.                 }
  9354.             }
  9355.             return num;
  9356.         }
  9357.  
  9358.         public void ProcManToMan()
  9359.         {
  9360.             int enemyNum = this.GetEnemyNum(false);
  9361.             if (Mevius.App.Api.IsPartyMode())
  9362.             {
  9363.                 int num = -1;
  9364.                 if (enemyNum == 1)
  9365.                 {
  9366.                     for (int i = 0; i < this.m_multiBattleActorList.Count; i++)
  9367.                     {
  9368.                         if (!this.m_multiBattleActorList[i].IsDead())
  9369.                         {
  9370.                             if (num != -1)
  9371.                             {
  9372.                                 num = -1;
  9373.                                 break;
  9374.                             }
  9375.                             num = i;
  9376.                         }
  9377.                     }
  9378.                 }
  9379.                 for (int j = 0; j < this.m_multiBattleActorList.Count; j++)
  9380.                 {
  9381.                     this.m_multiBattleActorList[j].SetManToMan(j == num);
  9382.                 }
  9383.             }
  9384.             else if (enemyNum == 1 && !this.m_playerActor.IsDead())
  9385.             {
  9386.                 this.m_playerActor.SetManToMan(true);
  9387.             }
  9388.             else
  9389.             {
  9390.                 this.m_playerActor.SetManToMan(false);
  9391.             }
  9392.         }
  9393.  
  9394.         public bool IsCountTimeBattle()
  9395.         {
  9396.             return this.SecondPartBattleTest || Mevius.Db.Api.IsSelectedStory(1);
  9397.         }
  9398.  
  9399.         public void CreateActionOrderList()
  9400.         {
  9401.             if (this.m_turnNum == 0)
  9402.             {
  9403.                 return;
  9404.             }
  9405.             this.m_actionOrderList.Clear();
  9406.             List<BattleActor> list = new List<BattleActor>(this.m_actorList.Count);
  9407.             for (int i = 0; i < this.m_actorList.Count; i++)
  9408.             {
  9409.                 BattleActor battleActor = this.m_actorList[i];
  9410.                 if (battleActor != null && battleActor.IsEnemy() && battleActor.IsActive())
  9411.                 {
  9412.                     bool flag = false;
  9413.                     for (int j = 0; j < list.Count; j++)
  9414.                     {
  9415.                         if (battleActor.ActionPriority > list[j].ActionPriority)
  9416.                         {
  9417.                             list.Insert(j, battleActor);
  9418.                             flag = true;
  9419.                             break;
  9420.                         }
  9421.                     }
  9422.                     if (!flag)
  9423.                     {
  9424.                         list.Add(battleActor);
  9425.                     }
  9426.                 }
  9427.             }
  9428.             list.Insert(0, this.m_playerActor);
  9429.             if (this.IsZone())
  9430.             {
  9431.                 int zoneActionNum = this.GetZoneActionNum();
  9432.                 for (int k = 0; k < zoneActionNum; k++)
  9433.                 {
  9434.                     this.m_actionOrderList.Add(new BattleManager.ActionOrderInfo(this.m_playerActor, 0f, true));
  9435.                 }
  9436.             }
  9437.             for (int l = 0; l < list.Count; l++)
  9438.             {
  9439.                 List<float> actionTimeList = list[l].ActionTimeList;
  9440.                 int count = actionTimeList.Count;
  9441.                 for (int m = 0; m < count; m++)
  9442.                 {
  9443.                     bool flag2 = false;
  9444.                     int count2 = this.m_actionOrderList.Count;
  9445.                     for (int n = 0; n < count2; n++)
  9446.                     {
  9447.                         if (actionTimeList[m] < this.m_actionOrderList[n].Time)
  9448.                         {
  9449.                             this.m_actionOrderList.Insert(n, new BattleManager.ActionOrderInfo(list[l], actionTimeList[m], false));
  9450.                             flag2 = true;
  9451.                             break;
  9452.                         }
  9453.                     }
  9454.                     if (!flag2)
  9455.                     {
  9456.                         this.m_actionOrderList.Add(new BattleManager.ActionOrderInfo(list[l], actionTimeList[m], false));
  9457.                     }
  9458.                 }
  9459.             }
  9460.             GuiBattleMenu.Instance.TimeLine.SyncIcons(this.m_actionOrderList);
  9461.             if (this.m_activeActionOrderActor != null && (!this.m_activeActionOrderActor.IsTimeLineActionStart() || this.m_activeActionOrderActor.IsActionAbilitySkill5402()))
  9462.             {
  9463.                 for (int num = 0; num < this.m_actionOrderList.Count; num++)
  9464.                 {
  9465.                     if (this.m_actionOrderList[num].Actor == this.m_activeActionOrderActor)
  9466.                     {
  9467.                         this.m_actionOrderList.RemoveAt(num);
  9468.                         break;
  9469.                     }
  9470.                 }
  9471.             }
  9472.         }
  9473.  
  9474.         public int GetZoneActionNum()
  9475.         {
  9476.             if (this.IsZone())
  9477.             {
  9478.                 return this.m_actionGauge / 100;
  9479.             }
  9480.             return 0;
  9481.         }
  9482.  
  9483.         public BattleActor StealActionOrderActor
  9484.         {
  9485.             get
  9486.             {
  9487.                 return this.m_stealActionOrderActor;
  9488.             }
  9489.         }
  9490.  
  9491.         public bool IsPlayerTurn()
  9492.         {
  9493.             if (this.IsCountTimeBattle())
  9494.             {
  9495.                 return this._step == BattleManager.BattleStep.CTB && this.m_activeActionOrderActor != null && this.m_activeActionOrderActor.IsPlayer();
  9496.             }
  9497.             return this._step == BattleManager.BattleStep.PlayerTurn;
  9498.         }
  9499.  
  9500.         public bool IsEnemyTurn()
  9501.         {
  9502.             if (this.IsCountTimeBattle())
  9503.             {
  9504.                 return this._step == BattleManager.BattleStep.CTB && this.m_activeActionOrderActor != null && this.m_activeActionOrderActor.IsEnemy();
  9505.             }
  9506.             return this._step == BattleManager.BattleStep.EnemyTurnStart || this._step == BattleManager.BattleStep.EnemyTurn;
  9507.         }
  9508.  
  9509.         public float ActiveActionOrderTime
  9510.         {
  9511.             get
  9512.             {
  9513.                 return this.m_activeActionOrderTime;
  9514.             }
  9515.         }
  9516.  
  9517.         public void RequestCreateActionOrderList()
  9518.         {
  9519.             this.m_actionOrderListCreateFlag = true;
  9520.         }
  9521.  
  9522.         public void ChangeActionValue(BattleManager.ChangeActionValueType type, bool updateGui = true)
  9523.         {
  9524.             if (!this.IsCountTimeBattle())
  9525.             {
  9526.                 return;
  9527.             }
  9528.             if (this.IsZone())
  9529.             {
  9530.                 return;
  9531.             }
  9532.             if (this.m_playerActor != null && this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59 != null)
  9533.             {
  9534.                 C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9535.                 if (ca4d3b5367a73030692d322e3f08669b != null)
  9536.                 {
  9537.                     int num = (int)ca4d3b5367a73030692d322e3f08669b.mb340f1c79854e240a4cb690d3cacca53();
  9538.                     int residentInteger = Mevius.DataSheet.Api.GetResidentInteger("ctbActionGaugeMax", 800);
  9539.                     float num2 = 1f;
  9540.                     Caa051806b3598cc4aa2892b0900bdadb.C7515a628c1d13daf08c8a160fb5c564e targetStepBattle = Mevius.Field.Api.BattleApi.GetTargetStepBattle(Mevius.Field.Api.GadgetRouteApi.GetTargetGadgetName(), Mevius.App.Api.GetMainJobTypeCurrentDeck());
  9541.                     if (targetStepBattle != null && BattleTest._i == null)
  9542.                     {
  9543.                         num2 += (float)targetStepBattle.m5b49e9c72574a286a4b602ef72eff9f1() / 100f;
  9544.                     }
  9545.                     switch (type)
  9546.                     {
  9547.                     case BattleManager.ChangeActionValueType.ActionPlayer:
  9548.                     {
  9549.                         int value = this.m_actionGauge + (int)(((float)ca4d3b5367a73030692d322e3f08669b.m0d4848e106bd680cfd1196f8ba0c3d42() + this.m_actionPower) * num2);
  9550.                         float recover = (float)ca4d3b5367a73030692d322e3f08669b.m1d2f620da6509c5de5188e913f3c0742() / 100f;
  9551.                         this.SetActionGauge(value, residentInteger, recover, updateGui);
  9552.                         if (num2 != 0f)
  9553.                         {
  9554.                             float value2 = this.m_actionPower + ca4d3b5367a73030692d322e3f08669b.mc276dff0be9d55356493915ce0070e33();
  9555.                             this.SetActionPower(value2, (float)num);
  9556.                         }
  9557.                         break;
  9558.                     }
  9559.                     case BattleManager.ChangeActionValueType.KillEnemy:
  9560.                     {
  9561.                         int value3 = this.m_actionGauge + (int)((float)ca4d3b5367a73030692d322e3f08669b.mffa9952c38b62a6eada7503c4de83482() * num2);
  9562.                         this.SetActionGauge(value3, residentInteger, 0f, updateGui);
  9563.                         if (num2 != 0f)
  9564.                         {
  9565.                             float value4 = this.m_actionPower + (float)ca4d3b5367a73030692d322e3f08669b.m20d90c80b763769e240a44e9347cf29a();
  9566.                             this.SetActionPower(value4, (float)num);
  9567.                         }
  9568.                         break;
  9569.                     }
  9570.                     case BattleManager.ChangeActionValueType.Steal:
  9571.                     {
  9572.                         int value5 = this.m_actionGauge + (int)((float)ca4d3b5367a73030692d322e3f08669b.m135ec1c46a38ce63faae8044f737b817() * num2);
  9573.                         this.SetActionGauge(value5, residentInteger, 0f, updateGui);
  9574.                         if (num2 != 0f)
  9575.                         {
  9576.                             float value6 = this.m_actionPower + (float)ca4d3b5367a73030692d322e3f08669b.ma774aa87a223efb82099d5ba203a6622();
  9577.                             this.SetActionPower(value6, (float)num);
  9578.                         }
  9579.                         break;
  9580.                     }
  9581.                     case BattleManager.ChangeActionValueType.ActionEnemy:
  9582.                     {
  9583.                         int value7 = this.m_actionGauge + (int)(((float)(this.m_actionGauge * (int)ca4d3b5367a73030692d322e3f08669b.md348615865b30fc23159943e470701f1()) / 100f + this.m_actionPower * (float)ca4d3b5367a73030692d322e3f08669b.m2a4ecb387a60b0c66ac23d1dfb5e1cde() / 100f) * num2);
  9584.                         this.SetActionGauge(value7, residentInteger, 0f, updateGui);
  9585.                         if (num2 != 0f)
  9586.                         {
  9587.                             float value8 = this.m_actionPower + this.m_actionPower * (float)ca4d3b5367a73030692d322e3f08669b.md9ee2a013615a45d7fd85b22d6e4f527() / 100f;
  9588.                             this.SetActionPower(value8, (float)num);
  9589.                         }
  9590.                         break;
  9591.                     }
  9592.                     case BattleManager.ChangeActionValueType.ProgressTurn:
  9593.                     {
  9594.                         int value9 = this.m_actionGauge + (int)((float)(this.m_actionGauge * (int)ca4d3b5367a73030692d322e3f08669b.md2ff17394ade512fba8c9c4e5bf87632()) / 100f * num2);
  9595.                         this.SetActionGauge(value9, residentInteger, 0f, updateGui);
  9596.                         if (num2 != 0f)
  9597.                         {
  9598.                             float value10 = this.m_actionPower + this.m_actionPower * (float)ca4d3b5367a73030692d322e3f08669b.maf550547d585eb4e42c34d19eea74403() / 100f;
  9599.                             this.SetActionPower(value10, (float)num);
  9600.                         }
  9601.                         break;
  9602.                     }
  9603.                     case BattleManager.ChangeActionValueType.BattleEnd:
  9604.                     {
  9605.                         int value11 = this.m_actionGauge + (int)(((float)(this.m_actionGauge * (int)ca4d3b5367a73030692d322e3f08669b.md348615865b30fc23159943e470701f1()) / 100f + (float)ca4d3b5367a73030692d322e3f08669b.mf73a728d036d8e88a559e7efa5f2dae7()) * num2);
  9606.                         this.SetActionGauge(value11, residentInteger, 0f, updateGui);
  9607.                         if (num2 != 0f)
  9608.                         {
  9609.                             float value12 = this.m_actionPower + this.m_actionPower * (float)ca4d3b5367a73030692d322e3f08669b.md9ee2a013615a45d7fd85b22d6e4f527() / 100f + (float)ca4d3b5367a73030692d322e3f08669b.mfd01d9f5ba5b7994703058402fef27e6();
  9610.                             this.SetActionPower(value12, (float)num);
  9611.                         }
  9612.                         break;
  9613.                     }
  9614.                     }
  9615.                 }
  9616.             }
  9617.         }
  9618.  
  9619.         public void DecrementActionGaugeSubStrike()
  9620.         {
  9621.             if (this.m_playerActor != null)
  9622.             {
  9623.                 C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9624.                 if (ca4d3b5367a73030692d322e3f08669b != null)
  9625.                 {
  9626.                     int actionGauge = this.m_actionGauge - (int)ca4d3b5367a73030692d322e3f08669b.m8ffedb5dbe5912c2b2eb70f721a7dfac();
  9627.                     this.SetActionGauge(actionGauge);
  9628.                 }
  9629.             }
  9630.         }
  9631.  
  9632.         public void DecrementActionGaugeZoneAction()
  9633.         {
  9634.             int actionGauge = this.m_actionGauge - Mevius.DataSheet.Api.GetResidentInteger("ctbDecrementActionGaugeZoneAction", 100);
  9635.             this.SetActionGauge(actionGauge);
  9636.         }
  9637.  
  9638.         public void DecrementActionGaugeJobChange()
  9639.         {
  9640.             int actionGauge = this.m_actionGauge - this.m_jobChangeActionGauge;
  9641.             this.SetActionGauge(actionGauge);
  9642.         }
  9643.  
  9644.         public int GetJobChangeActionGauge()
  9645.         {
  9646.             if (this.m_playerActor != null && this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59 != null)
  9647.             {
  9648.                 C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9649.                 if (ca4d3b5367a73030692d322e3f08669b != null)
  9650.                 {
  9651.                     int num;
  9652.                     this.m_playerActor.GetAutoAbilityParam(DbManager.AutoAbilityType.AUTOABILITYTYPE_CS1410, out num);
  9653.                     this.PlayerJobChangeChargeTurn = (byte)num;
  9654.                     return (int)ca4d3b5367a73030692d322e3f08669b.m38abe99a7fb15538a9e7e7a339aba947() - (4 - num) * 100;
  9655.                 }
  9656.             }
  9657.             return 0;
  9658.         }
  9659.  
  9660.         public float ActionPower
  9661.         {
  9662.             get
  9663.             {
  9664.                 return this.m_actionPower;
  9665.             }
  9666.         }
  9667.  
  9668.         public void SetActionPower(float value)
  9669.         {
  9670.             if (this.m_playerActor != null && this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59 != null)
  9671.             {
  9672.                 C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9673.                 if (ca4d3b5367a73030692d322e3f08669b != null)
  9674.                 {
  9675.                     this.SetActionPower(value, (float)ca4d3b5367a73030692d322e3f08669b.mb340f1c79854e240a4cb690d3cacca53());
  9676.                 }
  9677.             }
  9678.         }
  9679.  
  9680.         private void SetActionPower(float value, float valueMax)
  9681.         {
  9682.             value = Math.Max(value, 0f);
  9683.             value = Math.Min(value, valueMax);
  9684.             this.m_actionPower = value;
  9685.             GuiBattleMenu.Instance.TimeLine.ActionPower = value;
  9686.             GuiBattleMenu.Instance.TimeLine.ActionPowerMax = valueMax;
  9687.         }
  9688.  
  9689.         public int ActionGauge
  9690.         {
  9691.             get
  9692.             {
  9693.                 return this.m_actionGauge;
  9694.             }
  9695.         }
  9696.  
  9697.         public void SetActionGauge(int value)
  9698.         {
  9699.             this.SetActionGauge(value, Mevius.DataSheet.Api.GetResidentInteger("ctbActionGaugeMax", 800), 0f, true);
  9700.         }
  9701.  
  9702.         private void SetActionGauge(int value, int valueMax, float recover, bool updateGui = true)
  9703.         {
  9704.             value = Math.Max(value, 0);
  9705.             value = Math.Min(value, valueMax);
  9706.             if (value < this.m_actionGauge)
  9707.             {
  9708.                 if (!this.IsZone())
  9709.                 {
  9710.                     this.m_actionGaugeDecrease = this.m_actionGauge;
  9711.                 }
  9712.             }
  9713.             else if (value < this.m_actionGaugeDecrease && recover != 0f)
  9714.             {
  9715.                 value += (int)((float)(this.m_actionGaugeDecrease - value) * recover + 0.5f);
  9716.                 value = Math.Max(value, 0);
  9717.                 value = Math.Min(value, valueMax);
  9718.             }
  9719.             this.m_actionGauge = value;
  9720.             if (GuiBattleMenu.Instance.TimeLine != null && updateGui)
  9721.             {
  9722.                 GuiBattleMenu.Instance.TimeLine.ActionGaugeMax = valueMax;
  9723.                 GuiBattleMenu.Instance.TimeLine.ActionGauge = this.m_actionGauge;
  9724.                 GuiBattleMenu.Instance.TimeLine.RecoveryGauge = Mathf.Max(this.m_actionGaugeDecrease - this.m_actionGauge, 0);
  9725.             }
  9726.         }
  9727.  
  9728.         public int ActionGaugeDecrease
  9729.         {
  9730.             get
  9731.             {
  9732.                 return this.m_actionGaugeDecrease;
  9733.             }
  9734.             set
  9735.             {
  9736.                 this.m_actionGaugeDecrease = value;
  9737.             }
  9738.         }
  9739.  
  9740.         public void ProcSubStrikeStart(bool end)
  9741.         {
  9742.             BattleActor battleActor;
  9743.             BattleActor battleActor2;
  9744.             if (Mevius.Db.Api.GetParameter(DbManager.ParameterType.Current_Job) != 0)
  9745.             {
  9746.                 if (end)
  9747.                 {
  9748.                     battleActor = this.FindActor(BattleManager.GetBattlePlayerName());
  9749.                     battleActor2 = this.FindActor(BattleManager.GetBattlePlayerSubName());
  9750.                 }
  9751.                 else
  9752.                 {
  9753.                     battleActor = this.FindActor(BattleManager.GetBattlePlayerSubName());
  9754.                     battleActor2 = this.FindActor(BattleManager.GetBattlePlayerName());
  9755.                 }
  9756.             }
  9757.             else if (end)
  9758.             {
  9759.                 battleActor = this.FindActor(BattleManager.GetBattlePlayerSubName());
  9760.                 battleActor2 = this.FindActor(BattleManager.GetBattlePlayerName());
  9761.             }
  9762.             else
  9763.             {
  9764.                 battleActor = this.FindActor(BattleManager.GetBattlePlayerName());
  9765.                 battleActor2 = this.FindActor(BattleManager.GetBattlePlayerSubName());
  9766.             }
  9767.             battleActor.chara.OnSetActive(false, true);
  9768.             battleActor.chara.gameObject.SetActive(false);
  9769.             battleActor2.chara.PhysicsResetPose();
  9770.             battleActor2.chara.gameObject.SetActive(true);
  9771.             battleActor2.chara.OnSetActive(true, true);
  9772.             bool flag = this.IsPartyChange();
  9773.             if (!end)
  9774.             {
  9775.                 int[,] statusEffectEntries = battleActor.GetStatusEffectEntries();
  9776.                 int[][] array = new int[statusEffectEntries.GetLength(0)][];
  9777.                 for (int i = 0; i < array.GetLength(0); i++)
  9778.                 {
  9779.                     array[i] = new int[4];
  9780.                     array[i][0] = statusEffectEntries[i, 0];
  9781.                     array[i][1] = statusEffectEntries[i, 1];
  9782.                     array[i][2] = statusEffectEntries[i, 2];
  9783.                     array[i][3] = statusEffectEntries[i, 3];
  9784.                 }
  9785.                 bool manToMan = battleActor.ManToMan;
  9786.                 int hpMax = battleActor2.HpMax;
  9787.                 battleActor2.SetStatusEffectEntries(array);
  9788.                 battleActor2.ManToMan = manToMan;
  9789.                 float num = (float)battleActor2.HpMax / (float)hpMax;
  9790.                 battleActor2.SetHp((int)((float)battleActor2.Hp * num + 0.5f), false, false);
  9791.             }
  9792.             battleActor2.chara.transform.position = battleActor.chara.transform.position;
  9793.             battleActor2.chara.transform.rotation = battleActor.chara.transform.rotation;
  9794.             battleActor2.chara.OnSetRotDirection(battleActor.chara.GetRotDirection());
  9795.             battleActor2.ActionNum = battleActor.ActionNum;
  9796.             battleActor2.NormalAttackCombo = battleActor.NormalAttackCombo;
  9797.             battleActor2.SuccessiveActionNum = battleActor.SuccessiveActionNum;
  9798.             battleActor2.ActionNumDecrementFlag = battleActor.ActionNumDecrementFlag;
  9799.             battleActor2.AbilityCombo = battleActor.AbilityCombo;
  9800.             battleActor2.AbilityUseSuportCount = battleActor.AbilityUseSuportCount;
  9801.             battleActor.ManaAttributeUseNum.CopyTo(battleActor2.ManaAttributeUseNum, 0);
  9802.             if (!flag)
  9803.             {
  9804.                 float hpRate = battleActor.GetHpRate();
  9805.                 if ((int)(hpRate * 100f) != (int)(battleActor2.GetHpRate() * 100f))
  9806.                 {
  9807.                     int num2 = (int)((float)battleActor2.HpMax * hpRate + 0.5f);
  9808.                     if (num2 < 1)
  9809.                     {
  9810.                         num2 = 1;
  9811.                     }
  9812.                     battleActor2.SetHp(num2, false, true);
  9813.                 }
  9814.                 else
  9815.                 {
  9816.                     battleActor2.SetHp(battleActor2.Hp, false, true);
  9817.                 }
  9818.             }
  9819.             battleActor2.TargetActor = battleActor.TargetActor;
  9820.             float num3 = (float)battleActor.ManaUseNum / (float)battleActor.JobAbilityUseManaUseNum;
  9821.             float num4 = (float)battleActor2.ManaUseNum / (float)battleActor2.JobAbilityUseManaUseNum;
  9822.             if ((int)(num3 * 100f) != (int)(num4 * 100f))
  9823.             {
  9824.                 battleActor2.ManaUseNum = (int)((float)battleActor2.JobAbilityUseManaUseNum * num3 + 0.5f);
  9825.                 if (num3 < 1f && battleActor2.ManaUseNum == battleActor2.JobAbilityUseManaUseNum)
  9826.                 {
  9827.                     battleActor2.ManaUseNum--;
  9828.                 }
  9829.             }
  9830.             battleActor2.PrevUseCardAbilityAttribute = battleActor.PrevUseCardAbilityAttribute;
  9831.             battleActor2.State = battleActor.State;
  9832.             battleActor2.CopyActionTimeList(battleActor.ActionTimeList);
  9833.             battleActor.SetWeaponEffectLoopOff();
  9834.             battleActor.LoopOffSeraResidentEffect();
  9835.             battleActor2.SetEnchantWeaponEffect();
  9836.             battleActor2.SetSeraResidentEffect();
  9837.             this.m_cameraManager.OnJobChange(battleActor, battleActor2);
  9838.             this.m_playerActor = battleActor2;
  9839.             this.m_playerActorSub = battleActor;
  9840.             if (this.m_playerActor.ActionNum == 0)
  9841.             {
  9842.                 BattleManager._i.OnEnemyNoActionPlayerActionContinue();
  9843.             }
  9844.             if (end)
  9845.             {
  9846.                 battleActor2.SubActionMainIn();
  9847.             }
  9848.             else
  9849.             {
  9850.                 battleActor2.SubActionSubIn();
  9851.             }
  9852.             if (!flag)
  9853.             {
  9854.                 Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  9855.                 {
  9856.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  9857.                     m_strSubResource = "change_001",
  9858.                     m_BindActor = battleActor2.chara.gameObject
  9859.                 });
  9860.             }
  9861.             Mevius.Sound.Api.StopSound(this.m_jobChangeSoundHandle, 100);
  9862.             this.m_jobChangeSoundHandle = this.m_playerActor.PlayStateSound(StateSound.StateSoundType.JobChange);
  9863.             GameObject gameObject = battleActor2.chara.gameObject;
  9864.             if (gameObject)
  9865.             {
  9866.                 FacialController component = gameObject.GetComponent<FacialController>();
  9867.                 if (component != null)
  9868.                 {
  9869.                     int playTime = Mevius.Sound.Api.GetPlayTime(this.m_jobChangeSoundHandle);
  9870.                     if (playTime > 0)
  9871.                     {
  9872.                         PreciseTime preciseTime = new PreciseTime((float)playTime / 1000f * 0.9f);
  9873.                         component.EnableLipsync = true;
  9874.                         component.StartLipsync(preciseTime.GetSecond());
  9875.                     }
  9876.                 }
  9877.             }
  9878.             string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  9879.             Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Field_3D, soundResourceName, "system_se_jobchange", 1f, 0, 0, this.m_playerActor.chara.transform.position, null, false, -1, 0, 1f);
  9880.             this.SetFairyFollowPlayer(true);
  9881.             if (end)
  9882.             {
  9883.                 this.CreateActionOrderList();
  9884.             }
  9885.         }
  9886.  
  9887.         public bool CanUseSubStrike()
  9888.         {
  9889.             if (this.m_playerActor != null)
  9890.             {
  9891.                 C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9892.                 if (ca4d3b5367a73030692d322e3f08669b != null)
  9893.                 {
  9894.                     return (int)ca4d3b5367a73030692d322e3f08669b.m8ffedb5dbe5912c2b2eb70f721a7dfac() <= this.m_actionGauge;
  9895.                 }
  9896.             }
  9897.             return false;
  9898.         }
  9899.  
  9900.         public bool IsSubAction()
  9901.         {
  9902.             return this.SubActionType != BattleManager.ESubActionType.None;
  9903.         }
  9904.  
  9905.         public bool IsSubStrike()
  9906.         {
  9907.             return this.SubActionType == BattleManager.ESubActionType.Ability;
  9908.         }
  9909.  
  9910.         public bool IsZone()
  9911.         {
  9912.             return this.m_zone;
  9913.         }
  9914.  
  9915.         private void UpdateZone(out bool zoneStart)
  9916.         {
  9917.             zoneStart = false;
  9918.             if (this.m_zone)
  9919.             {
  9920.                 if (this.m_actionGauge <= 0)
  9921.                 {
  9922.                     this.EndZone(false, false);
  9923.                 }
  9924.             }
  9925.             else if (Mevius.DataSheet.Api.GetResidentInteger("ctbActionGaugeMax", 800) <= this.m_actionGauge)
  9926.             {
  9927.                 if (this.m_playerActor != null)
  9928.                 {
  9929.                     C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9930.                     if (ca4d3b5367a73030692d322e3f08669b != null)
  9931.                     {
  9932.                         this.m_actionPower = (float)ca4d3b5367a73030692d322e3f08669b.mb340f1c79854e240a4cb690d3cacca53();
  9933.                         GuiBattleMenu.Instance.TimeLine.ActionPower = this.m_actionPower;
  9934.                     }
  9935.                 }
  9936.                 this.m_zone = true;
  9937.                 this.m_actionGaugeDecrease = 0;
  9938.                 string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  9939.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_mzone_in", 1f, 0, 0, false, -1, 1f);
  9940.                 this.m_zoneSoundHandle = Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_mzone_loop", 1f, 0, 0, false, -1, 1f);
  9941.                 Mevius.Effect.Api.CreateInstance(new Mevius.Effect.Api.CreateInstanceArg
  9942.                 {
  9943.                     m_strResourceName = Mevius.Effect.Api.GetResourceName(Mevius.Effect.Constants.ResourceCategory.Resident, string.Empty),
  9944.                     m_strSubResource = "mzone_fil_001",
  9945.                     m_bIgnoreTimeScale = true
  9946.                 });
  9947.                 this.CreateActionOrderList();
  9948.                 BattleUtility.AddMissionCount(MissionCountType.ZoneCount, 1);
  9949.                 for (int i = 0; i < this._entryBattleCharaSpecList.Count; i++)
  9950.                 {
  9951.                     string enemyActorName = BattleManager.GetEnemyActorName(i);
  9952.                     BattleActor battleActor = this.FindActor(enemyActorName);
  9953.                     if (battleActor != null && battleActor.IsActive() && battleActor.Ai != null)
  9954.                     {
  9955.                         battleActor.Ai.OnBehavior(BattleAiData.Pattern.TimingType.ZoneStart, string.Empty, null, true);
  9956.                     }
  9957.                 }
  9958.                 if (this.m_playerActor != null)
  9959.                 {
  9960.                     this.m_playerActor.UpdateJobAbilityGauge();
  9961.                 }
  9962.                 zoneStart = true;
  9963.                 GuiBattleMenu.Instance.TimeLine.RecoveryGauge = Mathf.Max(this.m_actionGaugeDecrease - this.m_actionGauge, 0);
  9964.                 GuiBattleMenu.Instance.ShowMobiusZone();
  9965.             }
  9966.             GuiBattleMenu.Instance.IsZone = this.m_zone;
  9967.         }
  9968.  
  9969.         public void EndZone(bool jobAbility, bool createActionOrderList)
  9970.         {
  9971.             if (this.m_zone)
  9972.             {
  9973.                 this.m_zone = false;
  9974.                 this.m_subActionType = BattleManager.ESubActionType.None;
  9975.                 this.m_actionPower = 0f;
  9976.                 Mevius.Sound.Api.StopSound(this.m_zoneSoundHandle, 1000);
  9977.                 this.m_zoneSoundHandle = 0;
  9978.                 string soundResourceName = Mevius.Sound.Api.GetSoundResourceName("Resident");
  9979.                 Mevius.Sound.Api.CreateSound(SoundManager.SoundCategory.Gui, soundResourceName, "system_se_mzone_end", 1f, 0, 0, false, -1, 1f);
  9980.                 if (jobAbility && this.m_playerActor != null)
  9981.                 {
  9982.                     C43401f69745a04cbd6ee6dcffba76ae5.Ca4d3b5367a73030692d322e3f08669b5 ca4d3b5367a73030692d322e3f08669b = C43401f69745a04cbd6ee6dcffba76ae5.Find(this.m_playerActor.C648971f118c7e1100318b6fb7ac13b59.mb95164dbb096f52883c4e02005721de1());
  9983.                     if (ca4d3b5367a73030692d322e3f08669b != null)
  9984.                     {
  9985.                         this.m_actionGauge = this.m_actionGauge * (int)ca4d3b5367a73030692d322e3f08669b.m31caf9df2e1e38cb41fe408d2a600a06() / 100;
  9986.                         GuiBattleMenu.Instance.TimeLine.ActionGauge = this.m_actionGauge;
  9987.                     }
  9988.                 }
  9989.                 if (createActionOrderList)
  9990.                 {
  9991.                     this.CreateActionOrderList();
  9992.                 }
  9993.                 this.m_activeActionOrderActor.UpdateJobAbilityGauge();
  9994.                 GuiBattleMenu.Instance.IsZone = this.m_zone;
  9995.             }
  9996.         }
  9997.  
  9998.         public void GetJobAbilityName(out string mainJobAbilityName, out string subJobAblityName)
  9999.         {
  10000.             BattleActor battleActor = this.m_playerActor;
  10001.             if (this.IsCountTimeBattle() && battleActor.IsSubActionSub())
  10002.             {
  10003.                 battleActor = this.m_playerActorSub;
  10004.             }
  10005.             if (battleActor != null)
  10006.             {
  10007.                 if (this.IsCountTimeBattle() && this.IsZone())
  10008.                 {
  10009.                     BattleActor battleActor2 = this.m_playerActorSub;
  10010.                     if (battleActor == battleActor2)
  10011.                     {
  10012.                         battleActor2 = this.m_playerActor;
  10013.                     }
  10014.                     if (battleActor2 != null)
  10015.                     {
  10016.                         if (this.m_playerActor.IsJobAbilityGaugeMax())
  10017.                         {
  10018.                             mainJobAbilityName = battleActor2.GetJobAbilityTextResourceId();
  10019.                             subJobAblityName = battleActor.GetJobAbilityTextResourceId();
  10020.                         }
  10021.                         else
  10022.                         {
  10023.                             mainJobAbilityName = battleActor2.GetJobAbilityTextResourceId();
  10024.                             subJobAblityName = string.Empty;
  10025.                         }
  10026.                     }
  10027.                     else
  10028.                     {
  10029.                         mainJobAbilityName = battleActor.GetJobAbilityTextResourceId();
  10030.                         subJobAblityName = string.Empty;
  10031.                     }
  10032.                 }
  10033.                 else
  10034.                 {
  10035.                     mainJobAbilityName = battleActor.GetJobAbilityTextResourceId();
  10036.                     subJobAblityName = string.Empty;
  10037.                 }
  10038.             }
  10039.             else
  10040.             {
  10041.                 mainJobAbilityName = string.Empty;
  10042.                 subJobAblityName = string.Empty;
  10043.             }
  10044.         }
  10045.  
  10046.         private const float DirectTargetSelectCheckDist = 0.125f;
  10047.  
  10048.         private const float DirectTargetSelectCheckDistTargetView = 0.25f;
  10049.  
  10050.         private const float InputViewportMax = 0.9375f;
  10051.  
  10052.         private const float InputViewportMin = 0.171875f;
  10053.  
  10054.         public static BattleManager _i = new BattleManager();
  10055.  
  10056.         private static readonly byte SaveDataVersion = 3;
  10057.  
  10058.         private static readonly byte MultiSaveDataVersion = 0;
  10059.  
  10060.         private uint charaspecUnloadTaskId;
  10061.  
  10062.         private uint resourceUnloadTaskId;
  10063.  
  10064.         private BattleManager.BattleStep _step;
  10065.  
  10066.         private uint connectTask;
  10067.  
  10068.         private BattleManager.ResourceStep _resourceStep;
  10069.  
  10070.         private BattleManager.MultiBattleCmdStep m_multiBattleCmdStep;
  10071.  
  10072.         private BattleManager.MultiBattleCmdStep m_multiBattleCmdStepAfterSync;
  10073.  
  10074.         private BattleManager.BattleStep m_stepAfterSync;
  10075.  
  10076.         private Mevius.Party.Api.SnapStepType m_snapType;
  10077.  
  10078.         private HashSet<string> _actorNameList;
  10079.  
  10080.         private float m_actionStepWait;
  10081.  
  10082.         private bool m_lastBattle;
  10083.  
  10084.         private bool m_lastBgmVolumeChanged;
  10085.  
  10086.         public string currentBattleScene;
  10087.  
  10088.         private int m_enemyLevel;
  10089.  
  10090.         private List<string> _entryBattleCharaSpecList;
  10091.  
  10092.         private HashSet<string> _loadCharaSpecList;
  10093.  
  10094.         private BattleCameraManager m_cameraManager;
  10095.  
  10096.         private Vector3 _basePosition = Vector3.zero;
  10097.  
  10098.         private int m_breakNum;
  10099.  
  10100.         private int m_chainNum;
  10101.  
  10102.         private int m_turnNum;
  10103.  
  10104.         private int m_deadNum;
  10105.  
  10106.         private float m_placementPlayerDistanceStart;
  10107.  
  10108.         private float m_placementPlayerDistanceEnd;
  10109.  
  10110.         private string m_placementEnemyId;
  10111.  
  10112.         public bool m_boss;
  10113.  
  10114.         private bool m_chaosBattle;
  10115.  
  10116.         private bool m_shadowBlankBattle;
  10117.  
  10118.         private bool m_forceAllCameraBattle;
  10119.  
  10120.         private string m_targetSelectCameraName;
  10121.  
  10122.         private BattleActor m_playerActor;
  10123.  
  10124.         private BattleActor m_playerActorSub;
  10125.  
  10126.         private BattleActor m_selfActor;
  10127.  
  10128.         private BattleActor m_targetActor;
  10129.  
  10130.         private BattleFairyActor m_fairyActor;
  10131.  
  10132.         private bool m_partyMemberTurn;
  10133.  
  10134.         private List<BattleActor> m_multiBattleActorList = new List<BattleActor>();
  10135.  
  10136.         private int m_multiBattleCurrentOrder;
  10137.  
  10138.         private List<int> m_multiBattleSlotList = new List<int>();
  10139.  
  10140.         private List<BattleActor> m_updateReadyActionList = new List<BattleActor>(4);
  10141.  
  10142.         private List<BattleActor> m_updatedList = new List<BattleActor>(4);
  10143.  
  10144.         private Mevius.Effect.Api.EffectHandle m_multiBattleActorCursorHandle;
  10145.  
  10146.         private ulong m_multiBattleStartTime;
  10147.  
  10148.         private ulong m_multiBattleTurnStartTime;
  10149.  
  10150.         private ulong m_multiBattleTurnLimitTime;
  10151.  
  10152.         private bool m_multiBattleIgnoreMemberActionCamera;
  10153.  
  10154.         private Vector2 m_touchDownPos;
  10155.  
  10156.         private Vector2[] m_touchPos = new Vector2[2];
  10157.  
  10158.         private bool m_inputCheck;
  10159.  
  10160.         private bool m_inputTouch;
  10161.  
  10162.         private bool m_stayMove;
  10163.  
  10164.         private static float TargetSelectHrzAngleAdjust = 55f;
  10165.  
  10166.         private static float TargetSelectVrtAngleAdjust = 85f;
  10167.  
  10168.         private bool m_inputAccepted;
  10169.  
  10170.         private Vector2 m_lastTouchPos;
  10171.  
  10172.         private bool m_lasTouchPosInited;
  10173.  
  10174.         private BattleManager.AutoAttackType m_autoAttack;
  10175.  
  10176.         private float m_autoAttackTimer;
  10177.  
  10178.         private GameObject m_rootObject;
  10179.  
  10180.         private List<BattleActor> m_actorList = new List<BattleActor>();
  10181.  
  10182.         private List<BattleActor> m_actionPriorityEnemyActorList = new List<BattleActor>();
  10183.  
  10184.         private BattleDamageSourceManager m_damageSourceManager = new BattleDamageSourceManager();
  10185.  
  10186.         private BattleManaObjectManager m_manaObjectManager = new BattleManaObjectManager();
  10187.  
  10188.         private Mevius.Gui.Api.GuiHandle m_MsgHandle;
  10189.  
  10190.         private BattleSlow m_battleSlow = new BattleSlow();
  10191.  
  10192.         private BattleTutorialManager m_tutorialManager;
  10193.  
  10194.         private SurfaceBlend m_surfaceBlend;
  10195.  
  10196.         private float m_surfaceBlendAlpha;
  10197.  
  10198.         private bool m_bMultiBattleTest;
  10199.  
  10200.         private List<BattleActor> m_screenOrderEnemyActorList = new List<BattleActor>();
  10201.  
  10202.         private List<Vector3> m_screenOrderEnemyPosList = new List<Vector3>();
  10203.  
  10204.         private BattleManager.BattleGuiTouchComponent m_guiTouchComponent = new BattleManager.BattleGuiTouchComponent();
  10205.  
  10206.         public bool m_ignoreAttack;
  10207.  
  10208.         private BattleManager.FairyEffectType m_fairyEffectType;
  10209.  
  10210.         private bool m_presetFairyEffect;
  10211.  
  10212.         private bool m_lastEnemyEscape;
  10213.  
  10214.         private Mevius.Common.Random m_rand = new Mevius.Common.Random();
  10215.  
  10216.         private Mevius.Common.Random m_playerDamageRand = new Mevius.Common.Random();
  10217.  
  10218.         private Mevius.Common.Random m_playerMovementRand = new Mevius.Common.Random();
  10219.  
  10220.         private int m_randCount;
  10221.  
  10222.         private int m_damageRandCount;
  10223.  
  10224.         private int m_movementRandCount;
  10225.  
  10226.         private PreciseTime m_preciseTime = default(PreciseTime);
  10227.  
  10228.         public int BattleHash;
  10229.  
  10230.         private short[] m_enemyAiCommonCounters = new short[4];
  10231.  
  10232.         private bool m_enemyActionEndFlag;
  10233.  
  10234.         private byte m_playerJobChangeChargeTurn;
  10235.  
  10236.         private byte m_playerJobChangeThroughTurn;
  10237.  
  10238.         private int m_jobChangeSoundHandle;
  10239.  
  10240.         private bool m_fairyHour;
  10241.  
  10242.         private bool m_isJobBgm;
  10243.  
  10244.         private bool m_isBgmRandSet;
  10245.  
  10246.         private uint m_bgmRandValue;
  10247.  
  10248.         private Mevius.Effect.Api.EffectHandle m_breakEffectHandle;
  10249.  
  10250.         private bool m_isMultiFinishCamera;
  10251.  
  10252.         private OptimaType m_optimaType = OptimaType.None;
  10253.  
  10254.         private byte[] m_optimaUseCounts = new byte[3];
  10255.  
  10256.         private int[] m_missionCounts = new int[128];
  10257.  
  10258.         private int[] m_bossMissionCounts = new int[128];
  10259.  
  10260.         private long[] m_saveLongValues = new long[16];
  10261.  
  10262.         private long[] m_bossSaveLongValues = new long[16];
  10263.  
  10264.         private byte m_playerFinishCount;
  10265.  
  10266.         private Ceaf68fb2356fb8b84facc86d2fe79f0e m_ff7Ability;
  10267.  
  10268.         private C9834a30e5f3368ef11b898eb90b12c5b m_ff7DamageSource;
  10269.  
  10270.         private byte[] m_ff7AbilityUseCounts = new byte[3];
  10271.  
  10272.         private PreciseTime m_abilityMessageTime = default(PreciseTime);
  10273.  
  10274.         private List<BattleManager.ActionOrderInfo> m_actionOrderList = new List<BattleManager.ActionOrderInfo>();
  10275.  
  10276.         private BattleActor m_activeActionOrderActor;
  10277.  
  10278.         private BattleActor m_stealActionOrderActor;
  10279.  
  10280.         private float m_activeActionOrderTime;
  10281.  
  10282.         private bool m_actionOrderListCreateFlag;
  10283.  
  10284.         private int m_actionGauge;
  10285.  
  10286.         private int m_actionGaugeDecrease;
  10287.  
  10288.         private float m_actionPower;
  10289.  
  10290.         private int m_jobChangeActionGauge;
  10291.  
  10292.         private BattleManager.ESubActionType m_subActionType;
  10293.  
  10294.         private bool m_zone;
  10295.  
  10296.         private int m_zoneSoundHandle;
  10297.  
  10298.         private BattleActor m_dqLogActor;
  10299.  
  10300.         private Dictionary<string, sbyte> m_dqSameNameDictionary;
  10301.  
  10302.         private BattleManager.DrawAbility[] ff8DrawAbility = new BattleManager.DrawAbility[3];
  10303.  
  10304.         private string[] m_ff8LoadAbilityIDs = new string[3];
  10305.  
  10306.         private GameObject lastBattleWinActorObject;
  10307.  
  10308.         private bool _active;
  10309.  
  10310.         private bool _enableUnloadRequest;
  10311.  
  10312.         private bool requestStartBattle;
  10313.  
  10314.         public static string c_BattleEscapeFade = "BattleEscapeFade";
  10315.  
  10316.         private uint taskid;
  10317.  
  10318.         public bool SecondPartBattleTest;
  10319.  
  10320.         public enum BattleStep
  10321.         {
  10322.             None,
  10323.             CreateActor,
  10324.             Init,
  10325.             EncountCameraWait,
  10326.             MenuCreateWait,
  10327.             MenuShowWait,
  10328.             AutoClipWait,
  10329.             StepBattleEffect,
  10330.             BattleStart,
  10331.             FairyTurnStart,
  10332.             FairyTurn,
  10333.             PlayerTurnStart,
  10334.             PlayerTurnStartWait,
  10335.             PlayerTurn,
  10336.             CheckMultiBattleCmd,
  10337.             MultiBattleInputStart,
  10338.             MultiBattleInputStartWait,
  10339.             MultiBattleInput,
  10340.             EnemyTurnStart,
  10341.             EnemyTurnStartWait,
  10342.             EnemyTurn,
  10343.             CTBStart,
  10344.             CTB,
  10345.             EscapeCheck,
  10346.             Escape,
  10347.             EscapeWait,
  10348.             CheckChara,
  10349.             CharaDeleteWait,
  10350.             CharaCreateWait,
  10351.             ContinueCheck,
  10352.             ContinueCheckWait,
  10353.             MagicStoneCheck,
  10354.             WaitBuyMagicStone,
  10355.             Continue,
  10356.             ContinueWait,
  10357.             ContinueDirection,
  10358.             ContinueDirectionCTB,
  10359.             ResultReady,
  10360.             Result,
  10361.             PreResultWait,
  10362.             PreResultWait2,
  10363.             Result2,
  10364.             ResultWait,
  10365.             ResultIdleWait,
  10366.             ResultEnd,
  10367.             ActionCameraEndWait,
  10368.             ResourceStepUnload,
  10369.             ResourceStepUnloadWait,
  10370.             End,
  10371.             Exit
  10372.         }
  10373.  
  10374.         public enum ResourceStep
  10375.         {
  10376.             None,
  10377.             Init,
  10378.             LoadCharaSpec,
  10379.             LoadCharaSpecWait,
  10380.             CreateActor,
  10381.             CreateActorWait,
  10382.             EndRequestWait,
  10383.             RemoveActor,
  10384.             RemoveActorWait,
  10385.             UnloadCharaSpec,
  10386.             UnloadCharaSpecWait,
  10387.             End
  10388.         }
  10389.  
  10390.         public enum MultiBattleCmdStep
  10391.         {
  10392.             None,
  10393.             SendSnap,
  10394.             SnapSync,
  10395.             SnapSyncWait,
  10396.             MultiInputWait,
  10397.             CurrentPlayer
  10398.         }
  10399.  
  10400.         public enum AutoAttackType
  10401.         {
  10402.             Off,
  10403.             NormalAutoAttack,
  10404.             FullAutoAttack
  10405.         }
  10406.  
  10407.         public enum AutoAttackStrategyType
  10408.         {
  10409.             DefensiveType,
  10410.             BreakType,
  10411.             AttackType,
  10412.             StrategyTypeMax
  10413.         }
  10414.  
  10415.         public enum AutoJobAbilityType
  10416.         {
  10417.             NoUse,
  10418.             UseBreak,
  10419.             UseBpArmor,
  10420.             Use
  10421.         }
  10422.  
  10423.         private class BattleGuiTouchComponent : GuiTouchEventComponent.IPressEvent
  10424.         {
  10425.             public void GuiOnPress(bool isPressed)
  10426.             {
  10427.                 BattleManager._i.m_ignoreAttack = false;
  10428.                 if (isPressed && UICamera.touchCount == 1)
  10429.                 {
  10430.                     this.m_stateBit |= 3u;
  10431.                 }
  10432.                 else if (!isPressed && UICamera.touchCount == 1)
  10433.                 {
  10434.                     this.m_stateBit = 4u;
  10435.                 }
  10436.             }
  10437.  
  10438.             public bool GuiOnLongPress(GameObject go)
  10439.             {
  10440.                 return false;
  10441.             }
  10442.  
  10443.             public void Update()
  10444.             {
  10445.                 this.m_stateBit &= 2u;
  10446.             }
  10447.  
  10448.             public bool IsPress()
  10449.             {
  10450.                 return (this.m_stateBit & 1u) != 0u;
  10451.             }
  10452.  
  10453.             public bool IsDown()
  10454.             {
  10455.                 return (this.m_stateBit & 2u) != 0u;
  10456.             }
  10457.  
  10458.             public bool IsUp()
  10459.             {
  10460.                 return (this.m_stateBit & 4u) != 0u;
  10461.             }
  10462.  
  10463.             public uint m_stateBit;
  10464.  
  10465.             public enum StateType
  10466.             {
  10467.                 Press = 1,
  10468.                 Down,
  10469.                 Up = 4
  10470.             }
  10471.         }
  10472.  
  10473.         public enum FairyEffectType
  10474.         {
  10475.             None,
  10476.             Revive,
  10477.             Heal,
  10478.             Rescue,
  10479.             Cheer,
  10480.             Encourage
  10481.         }
  10482.  
  10483.         public struct ActionOrderInfo
  10484.         {
  10485.             public ActionOrderInfo(BattleActor actor, float time, bool isZone = false)
  10486.             {
  10487.                 this.Actor = actor;
  10488.                 this.Time = time;
  10489.                 this.IsZone = isZone;
  10490.             }
  10491.  
  10492.             public BattleActor Actor;
  10493.  
  10494.             public float Time;
  10495.  
  10496.             public bool IsZone;
  10497.         }
  10498.  
  10499.         public enum ChangeActionValueType
  10500.         {
  10501.             ActionPlayer,
  10502.             KillEnemy,
  10503.             Steal,
  10504.             ActionEnemy,
  10505.             ProgressTurn,
  10506.             BattleEnd
  10507.         }
  10508.  
  10509.         public enum ESubActionType
  10510.         {
  10511.             None,
  10512.             Ability,
  10513.             JobAbility
  10514.         }
  10515.  
  10516.         public class DrawAbility
  10517.         {
  10518.             public DrawAbility()
  10519.             {
  10520.                 this.id = 0;
  10521.                 this.Datasheet = null;
  10522.                 this.remainingCount = 0;
  10523.             }
  10524.  
  10525.             public void Clear()
  10526.             {
  10527.                 this.id = 0;
  10528.                 this.remainingCount = 0;
  10529.                 this.Datasheet = null;
  10530.             }
  10531.  
  10532.             public int id;
  10533.  
  10534.             public C4c26d468b97150ce002ae9a639f4ea2a.C1dc494102b702de4447e82ad4b8a1927 Datasheet;
  10535.  
  10536.             public int remainingCount;
  10537.         }
  10538.  
  10539.         public enum LastBattleWinCameraType
  10540.         {
  10541.             Player,
  10542.             Fairy
  10543.         }
  10544.  
  10545.         public enum EncountType
  10546.         {
  10547.             Normal,
  10548.             Caution
  10549.         }
  10550.  
  10551.         private class AutoFocusInfo
  10552.         {
  10553.             public BattleActor actor;
  10554.  
  10555.             public float radian = 3.14159274f;
  10556.  
  10557.             public Vector3 dir;
  10558.         }
  10559.     }
  10560. }