From 664e7b2e0608fa9a3f93ea408e01db37ef461f6e Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 27 三月 2025 16:53:17 +0800
Subject: [PATCH] 0312 竞技场回合制,界面未处理

---
 LogicProject/System/ArenaActivity/ArenaManagerModel.cs |  335 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 169 insertions(+), 166 deletions(-)

diff --git a/LogicProject/System/ArenaActivity/ArenaManagerModel.cs b/LogicProject/System/ArenaActivity/ArenaManagerModel.cs
index 93179f0..6fc30da 100644
--- a/LogicProject/System/ArenaActivity/ArenaManagerModel.cs
+++ b/LogicProject/System/ArenaActivity/ArenaManagerModel.cs
@@ -19,11 +19,9 @@
         }
     }
 
-
     /// stage
-    public static readonly Vector3 leftBornPoint = new Vector3(4.9f, 0.2f, 3.5f);
-    static readonly Vector3 rightBornPoint = new Vector3(20f, 0.2f, 18.8f);
-
+    public static readonly Vector3 leftBornPoint = new Vector3(4f, 0.2f, 11.5f);
+    static readonly Vector3 rightBornPoint = new Vector3(11.5f, 0.2f, 4f);
     static readonly Vector3 initPoint = new Vector3(30f, 0.2f, 30f);
     public int[] s_StepTimes = null;
 
@@ -31,8 +29,6 @@
     static ILPKStageType pkStageType;
     public static GA_PlayerClient.PlayerInfo playerInfo;
     static GA_ILClientPlayer opponentPlayer;
-    static GA_Player mirrorPlayer;
-    public static bool isMirrorFight { get; set; }
     static uint roundWiner = 0;
     static ILPKStage currentStage;
     public DateTime dungeonEndTime;
@@ -77,7 +73,6 @@
         HeroBehaviour.OnUserClickSkill += OnILUserClickSkill;
         //鏄剧ずPK UI
         ArenaManager.OnILPKWinShow += OnILPKWinShow;
-
     }
     protected override void UnInit()
     {
@@ -131,28 +126,7 @@
         recordDataMapId = dataMapId;
     }
     
-    //鍓湰缁撶畻鐣岄潰
-    public void UpdateFBEnd()
-    {
-        if (dungeonModel.dungeonResult.isWin == 1)
-        {
-            roundWiner = PlayerDatas.Instance.baseData.PlayerID;
-        }
-        else
-        {
-            roundWiner = ArenaModel.Instance.OPPONENT_PLAYERID;
-        }
-        //ArenaModel.Instance.SendArenaBattle(ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID,
-        //    (byte)(dungeonModel.dungeonResult.isWin == 1 ? 1 : 2));
-
-        if (ArenaManager.IsArenaStage())
-            WindowCenter.Instance.OpenIL<ArenaSettlementWin>();
-        else
-            PopupWindowsProcessor.Instance.Add("ArenaSettlementWin");
-        //鏇存柊鎺掑悕
-        ArenaRankModel.Instance.SetMyRank(ArenaModel.Instance.RankType, dungeonModel.dungeonResult.updOrder);
 
-    }  
     void OnILPKWinShow(bool bShow)
     {
         if (bShow)
@@ -172,13 +146,13 @@
     }
     void OnILStopHandupAI()
     {
-        if (!ArenaManager.IsArenaClientNotMirrorFight)
+        if (!ArenaManager.isArenaClient)
             return;
         PlayerDatas.Instance.hero.SkillMgr.ResetAllCD();
     }
     void OnILCastSkill(int SkillID)
     {
-        if (!ArenaManager.IsArenaClientNotMirrorFight)
+        if (!ArenaManager.isArenaClient)
             return;
         Skill _skill = PlayerDatas.Instance.hero.SkillMgr.Get(SkillID);
         if (!_skill.IsValid())
@@ -308,7 +282,7 @@
     }
     void OnILPlayerUpdateAI()
     {
-        if (!ArenaManager.IsArenaClientNotMirrorFight)
+        if (!ArenaManager.isArenaClient)
             return;
         if (Application.isEditor)
         {
@@ -322,7 +296,8 @@
                 PlayerDatas.Instance.hero.ActorInfo.Hp = 0;
             }
         }
-
+        CameraController.Instance.rotationX = 45;
+        CameraController.Instance.Apply();
         if (!ArenaModel.Instance.bILAI)
             return;
         if (dungeonModel.dungeonFightStage != DungeonFightStage.Normal)
@@ -632,7 +607,7 @@
     }
     //////////////////////////////////////////////////////////////////Arena Stage鎺у埗///////////////////////////////////////////////////////////////
     void OnILStageInitialize()
-    {
+    {        
         ArenaModel.Instance.FakeMatchOk();
         fightInfo = default(ILFightInfo);
         fightInfo.isOver = false;
@@ -651,6 +626,7 @@
             opponentPlayer = null;
         }
         
+        ArenaManager.isArenaClient = false;
         ArenaManager.isArenaPK = false;
         ArenaManagerModel.Instance.ReleasePlayer();
         ClientDungeonStageUtility.SetClientDungeon(false, 0);
@@ -663,9 +639,9 @@
     {
         if (!ArenaManager.IsArenaStage())
             return;
-        ArenaManager.isArenaPK = true;
-
-        ArenaManager.isArenaClient = true;
+        ArenaManager.isArenaPK = true;
+        
+
         ArenaModel.Instance.IsArenaWork = true;
         recordDataMapId = ArenaManager.MapID;
         ArenaModel.Instance.StartInit();
@@ -673,10 +649,7 @@
 
         // B2 10 绔炴妧鍦烘寫鎴樼帺瀹�  閫氱煡鍚庣鐧昏鎸戞垬鐩爣ID
         uint PlayerID = ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID;
-        if (PlayerID > 10000)
-            isMirrorFight = true;
-        ArenaModel.Instance.SendArenaBattle(PlayerID, 0);
-
+        ArenaModel.Instance.SendArenaBattle(ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID, 0);
 
         if (opponentPlayer != null)
         {
@@ -710,70 +683,36 @@
         }
         else
         {
-            ArenaManager.isArenaRobot = false;
-            //鍙戦�佸懡浠よ幏寰椾釜浜鸿缁嗕俊鎭�
-            PersonalEnemy.OnMirrorPlayerAppear += OnPlayerAppear;
-            //RoleParticularModel.OnRevPackage += OnRevA705;
-            //ModelCenter.Instance.GetModel<RoleParticularModel>().ViewPlayerCacheData((int)PlayerID, (int)ViewPlayerType.viewPlayerDataArena);
+            ArenaManager.isArenaRobot = false;
+            //鍙戦�佸懡浠よ幏寰椾釜浜鸿缁嗕俊鎭�
+            CA212_tagCMViewPlayerInfo pak = new CA212_tagCMViewPlayerInfo();
+            pak.PlayerID = (uint)PlayerID;
+            GameNetSystem.Instance.SendInfo(pak);
+            //DTCA705_tagSCQueryPlayerCacheResult.OnRevPackage += OnRevA705;
         }
     }
-    //private void OnRevA705(int viewType, int playerID, RoleParticularModel.ViewPlayerData data)
-    //{
-    //    uint PlayerID = ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID;
-    //    if (playerID != PlayerID)
-    //        return;
-    //    RoleParticularModel.OnRevPackage -= OnRevA705;
-    //    playerInfo = GetRealPlayerInfo(data.rolePropData);
-    //    playerInfo.playerID = PlayerID;
-    //    //PersonalEnemy.Create(30000, rightBornPoint, playerInfo,false);
-    //    PersonalEnemy.OnILPlayerAppear += OnPlayerAppear;
-    //    SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
-    //    ArenaModel.Instance.CallUpdatePKInfo(1);
-
-    //}
+    private void OnRevA705(HA705_tagSCQueryPlayerCacheResult package)
+    {
+        uint PlayerID = ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID;
+        if (package.PlayerID != PlayerID)
+            return;
+        //DTCA705_tagSCQueryPlayerCacheResult.OnRevPackage -= OnRevA705;
+        RoleParticularModel.RolePropData propData = LitJson.JsonMapper.ToObject<RoleParticularModel.RolePropData>(package.PropData);
+        playerInfo = GetRealPlayerInfo(propData);
+        playerInfo.playerID = PlayerID;
+        PersonalEnemy.Create(30000, rightBornPoint, playerInfo,false);
+        PersonalEnemy.OnILPlayerAppear += OnPlayerAppear;
+        SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
+        
+    }
     
     private void OnPlayerAppear(GA_ILClientPlayer player)
     {
         PersonalEnemy.OnILPlayerAppear -= OnPlayerAppear;
         opponentPlayer = player;
-        opponentPlayer.Pos = rightBornPoint;
-        isMirrorFight = false;
+        opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint;
         dungeonModel.dungeonFightStage = DungeonFightStage.Normal;
-    }
-
-    private void OnPlayerAppear(GA_Player player)
-    {
-        if (pkStageType != ILPKStageType.Fight)
-        {
-            currentStage = new ILWaitStartStage();
-            currentStage.Begin();
-        }
-        playerInfo  = new GA_PlayerClient.PlayerInfo()
-        {
-            maxHp = player.ActorInfo.MaxHp,
-            hp = player.ActorInfo.Hp,
-            level = (ushort)player.ActorInfo.LV,
-            job = (byte)player.ActorInfo.Job,
-            face = AvatarHelper.GetAvatarDefaultID(player.ActorInfo.Job),
-            facePic = AvatarHelper.GetAvatarFrameDefaultID(player.ActorInfo.Job),
-            pos = Vector3.zero,
-            name = player.ActorInfo.PlayerName,
-        };
-
-        playerInfo.playerID = player.ActorInfo.sid;
-        ArenaModel.Instance.ArenaPKUpInfoData.MaxProDef = (int)player.ActorInfo.maxProDef;
-        ArenaModel.Instance.ArenaPKUpInfoData.opponentMaxHp = playerInfo.maxHp;
-        ArenaModel.Instance.ArenaPKUpInfoData.opponentShield = (int)player.ActorInfo.curProDef;
-        ArenaModel.Instance.ArenaPKUpInfoData.opponentLevel = player.ActorInfo.LV;
-        ArenaModel.Instance.ArenaPKUpInfoData.realmLV = (int)player.ActorInfo.realm;
-
-        PersonalEnemy.OnMirrorPlayerAppear -= OnPlayerAppear;
-        mirrorPlayer = player;
-        ArenaModel.Instance.CallUpdatePKInfo(1);
-        dungeonModel.dungeonFightStage = DungeonFightStage.Normal;
-
     }
-
     public void ReleasePlayer()
     {
         if (opponentPlayer != null && !opponentPlayer.ActorInfo.serverDie)
@@ -856,8 +795,6 @@
             hp = maxHp,
             level = (ushort)level,
             job = (byte)job,
-            face = AvatarHelper.GetAvatarDefaultID(job),
-            facePic = AvatarHelper.GetAvatarFrameDefaultID(job),
             pos = Vector3.zero,
             name = playerName,
             itemDatas = equipInfos,
@@ -894,8 +831,6 @@
             hp = (ulong)propData.MaxHP,
             level = (ushort)propData.LV,
             job = (byte)propData.Job,
-            face = (int)propData.Face,
-            facePic = (int)propData.FacePic,
             pos = Vector3.zero,
             name = propData.Name,
             itemDatas = equipInfos,
@@ -955,7 +890,7 @@
 
         if (pkStageType != ILPKStageType.Fight)
         {
-            opponentPlayer.Pos = rightBornPoint;
+            opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint;
             currentStage = new ILWaitStartStage();
             currentStage.Begin();
         }
@@ -974,7 +909,17 @@
                         currentStage = new ILFightStage();
                         break;
                     case ILPKStageType.Fight:
-                        currentStage = new ILFightOverStage();
+                        if (fightInfo.isOver)
+                        {
+                            currentStage = new ILFightOverStage();
+                        }
+                        else
+                        {
+                            currentStage = new ILRoundPrepareState();
+                        }
+                        break;
+                    case ILPKStageType.RoundPrepare:
+                        //currentStage = new ILFightStage();
                         break;
                     case ILPKStageType.FightOver:
                         currentStage = null;
@@ -1007,14 +952,10 @@
         public override void Begin()
         {
             pkStageType = ILPKStageType.WaitStart;
-            duration = ArenaManagerModel.Instance.s_StepTimes[1];
-
-            if (opponentPlayer != null)
-            { 
-                opponentPlayer.ActorInfo.serverDie = false;
-                opponentPlayer.IdleImmediate();
-                opponentPlayer.Pos = rightBornPoint;
-            }
+            duration = ArenaManagerModel.Instance.s_StepTimes[1];
+            
+            opponentPlayer.ActorInfo.serverDie = false;
+            opponentPlayer.IdleImmediate();
 
             PlayerDatas.Instance.baseData.HP = PlayerDatas.Instance.extersion.MaxHP;
             var maxHp = PlayerDatas.Instance.extersion.MaxHP;
@@ -1024,8 +965,8 @@
             PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
             PlayerDatas.Instance.hero.StopPathFind();
 
-            
-            PlayerDatas.Instance.hero.Pos = leftBornPoint;
+            opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint;
+            PlayerDatas.Instance.hero.Pos = ArenaModel.Instance.myPlace == 1 ? leftBornPoint : rightBornPoint;
             ArenaModel.Instance.FakeWaitFight((int)duration);
 
             ArenaModel.Instance.CallUpdatePKInfo(1);
@@ -1040,10 +981,7 @@
         public override void Update()
         {
             timer += Time.deltaTime;
-            if (isMirrorFight)
-                completed = timer >= duration;
-            else
-                completed = timer >= duration && opponentPlayer != null;
+            completed = timer >= duration && opponentPlayer != null;
         }
     }
     public class ILFightOverStage : ILPKStage
@@ -1052,14 +990,12 @@
         {
             if (ArenaModel.Instance.WinnerID != PlayerDatas.Instance.baseData.PlayerID)
             {
-                if (!isMirrorFight)
-                    ArenaModel.Instance.SendArenaBattle(ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID, 2);
+                ArenaModel.Instance.SendArenaBattle(ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID, 2);
                 LocalSave.SetString("MatchInfoPlayerFightNow" + PlayerDatas.Instance.PlayerId, "");
             }
             else
             {
-                if (!isMirrorFight)
-                    ArenaModel.Instance.SendArenaBattle(ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID, 1);
+                ArenaModel.Instance.SendArenaBattle(ArenaModel.Instance.m_PlayerInfo[ArenaModel.Instance.SelectMatchPlayer].PlayerID, 1);
                 string MatchInfoPlayerFightNow = LocalSave.GetString("MatchInfoPlayerFightNow" + PlayerDatas.Instance.PlayerId);
                 if(MatchInfoPlayerFightNow != "")
                 {
@@ -1095,9 +1031,10 @@
     public class ILFightStage : ILPKStage
     {
         bool figthCompleted = false;
-        float restTime = 0.5f;
+        float restTime = 2f;
         float restTimeTimer = 0f;
-
+  
+       
         public override void Begin()
         {
             pkStageType = ILPKStageType.Fight;
@@ -1106,19 +1043,11 @@
             figthCompleted = false;
             restTimeTimer = 0f;
 
-            if (isMirrorFight)
-            { 
-                if (mirrorPlayer != null)
-                    PlayerDatas.Instance.hero.SelectTarget = mirrorPlayer;
-            }
-            else
-            { 
-                opponentPlayer.Pos = rightBornPoint;
-                opponentPlayer.SelectTarget = PlayerDatas.Instance.hero;
-                PlayerDatas.Instance.hero.SelectTarget = opponentPlayer;
-            }
-            ArenaModel.Instance.bILAI = true;
+            opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint;
             PlayerDatas.Instance.hero.Behaviour.StartHandupAI();
+            ArenaModel.Instance.bILAI = true;
+            opponentPlayer.SelectTarget = PlayerDatas.Instance.hero;
+            PlayerDatas.Instance.hero.SelectTarget = opponentPlayer;
         }
 
         public override void End()
@@ -1132,11 +1061,8 @@
 
             if (fightInfo.isOver)
             {
-                if (opponentPlayer != null)
-                { 
-                    PersonalEnemy.ReleaseILPlayer(opponentPlayer,false);
-                    opponentPlayer.Destroy();
-                }
+                PersonalEnemy.ReleaseILPlayer(opponentPlayer,false);
+                opponentPlayer.Destroy();
             }
 
             ArenaModel.Instance.FakeRoundEnd(fightInfo.isOver, fightInfo.roundCount, fightInfo.roundWinnerIds.ToArray());
@@ -1148,32 +1074,24 @@
                 return;
             if (PlayerDatas.Instance.hero == null)
                 return;
-
             timer += Time.deltaTime;
-
-
-            if (isMirrorFight)
+            if (PlayerDatas.Instance.hero.ActorInfo.Hp <= 0)
             {
-                if (roundWiner != 0)
-                {
-                    figthCompleted = true;
-                    ArenaModel.Instance.WinnerID = roundWiner;
-                }
+                figthCompleted = true;
+                PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
+                PlayerDatas.Instance.hero.StopPathFind();
+                ArenaModel.Instance.bILAI = false;
+                roundWiner = ArenaModel.Instance.OPPONENT_PLAYERID;
+                ArenaModel.Instance.WinnerID = ArenaModel.Instance.OPPONENT_PLAYERID;
             }
-            else
-            { 
-                if (PlayerDatas.Instance.hero.ActorInfo.Hp <= 0)
-                {
-                    figthCompleted = true;
-                    roundWiner = ArenaModel.Instance.OPPONENT_PLAYERID;
-                    ArenaModel.Instance.WinnerID = ArenaModel.Instance.OPPONENT_PLAYERID;
-                }
-                if (opponentPlayer.ActorInfo.Hp <= 0)
-                {
-                    figthCompleted = true;
-                    roundWiner = PlayerDatas.Instance.baseData.PlayerID; 
-                    ArenaModel.Instance.WinnerID = PlayerDatas.Instance.baseData.PlayerID; 
-                }
+            if (opponentPlayer.ActorInfo.Hp <= 0)
+            {
+                figthCompleted = true;
+                PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
+                PlayerDatas.Instance.hero.StopPathFind();
+                ArenaModel.Instance.bILAI = false;
+                roundWiner = PlayerDatas.Instance.baseData.PlayerID; 
+                ArenaModel.Instance.WinnerID = PlayerDatas.Instance.baseData.PlayerID; 
             }
             if (!figthCompleted)
             {
@@ -1183,12 +1101,18 @@
                 if (roundWiner != 0)
                 {
                     figthCompleted = true;
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
+                    PlayerDatas.Instance.hero.StopPathFind();
+                    ArenaModel.Instance.bILAI = false;
                 }
                 else if (EndTime <= 0)
                 //else if (timer >= duration)
                 {
                     figthCompleted = true;
-                    if (!isMirrorFight && opponentPlayer.ActorInfo.RealHp <= 0)
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
+                    PlayerDatas.Instance.hero.StopPathFind();
+                    ArenaModel.Instance.bILAI = false;
+                    if (opponentPlayer.ActorInfo.RealHp <= 0)
                     {
                         roundWiner = PlayerDatas.Instance.baseData.PlayerID;
                     }
@@ -1206,21 +1130,100 @@
 
             if (figthCompleted)
             {
-                PlayerDatas.Instance.hero.StopAll();
-                ArenaModel.Instance.bILAI = false;
                 restTimeTimer += Time.deltaTime;
-                completed = restTimeTimer >= restTime;
+                completed = restTimeTimer >= restTime;
             }
         }
 
     }
 
-    
+    public class ILRoundPrepareState : ILPKStage
+    {
+        public override void Begin()
+        {
+            pkStageType = ILPKStageType.RoundPrepare;
+            GA_PVPClientPlayer.AutoAI(false);
+            duration = 3f;
+            Debug.LogFormat("杩涘叆闃舵锛歿0}", pkStageType);
+
+            if (fightInfo.roundWinnerIds[fightInfo.roundWinnerIds.Count - 1] == PlayerDatas.Instance.baseData.PlayerID)
+            {
+                if (!opponentPlayer.ActorInfo.serverDie)
+                {
+                    PersonalEnemy.ReleaseILPlayer(opponentPlayer, false);
+                    opponentPlayer = null;
+                }
+                playerInfo.hp = playerInfo.maxHp;
+                PersonalEnemy.Create(30000, ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint, playerInfo,false);
+                PersonalEnemy.OnILPlayerAppear += OnPlayerAppear;
+                SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
+
+                if (PlayerDatas.Instance.hero.ActorInfo.RealHp <= 0)
+                {
+                    PlayerDatas.Instance.baseData.HP = 1;
+                    PlayerDatas.Instance.hero.ActorInfo.ResetHp(1, (long)PlayerDatas.Instance.extersion.MaxHP);
+                    PlayerDatas.Instance.FightRefreshPlayerHp(1);
+                    PlayerDatas.Instance.hero.IdleImmediate();
+                }
+            }
+            else
+            {
+                PlayerDatas.Instance.baseData.HP = PlayerDatas.Instance.extersion.MaxHP;
+                var maxHp = PlayerDatas.Instance.extersion.MaxHP;
+                PlayerDatas.Instance.hero.ActorInfo.ResetHp((long)maxHp, (long)maxHp);
+                PlayerDatas.Instance.FightRefreshPlayerHp(maxHp);
+                PlayerDatas.Instance.hero.IdleImmediate();                
+
+                if (opponentPlayer.ActorInfo.RealHp <= 0)
+                {
+                    opponentPlayer = null;
+                    playerInfo.hp = 1;
+                    PersonalEnemy.Create(30000, rightBornPoint, playerInfo,false);
+                    PersonalEnemy.OnILPlayerAppear += OnPlayerAppear;
+                    SnxxzGame.Instance.StartCoroutine(WaitForPlayerCreate());
+                }
+            }
+
+            PlayerDatas.Instance.hero.Pos = ArenaModel.Instance.myPlace == 1 ? leftBornPoint : rightBornPoint;
+
+        }
+
+        private void OnPlayerAppear(GA_ILClientPlayer player)
+        {
+            PersonalEnemy.OnILPlayerAppear -= OnPlayerAppear;
+            opponentPlayer = player;
+            opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint;
+        }
+
+        private IEnumerator WaitForPlayerCreate()
+        {
+            while (opponentPlayer == null)
+            {
+                yield return null;
+            }
+
+            opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint;
+            opponentPlayer.ActorInfo.ResetHp((long)playerInfo.maxHp, (long)playerInfo.maxHp);
+        }
+
+        public override void End()
+        {
+            fightInfo.roundCount++;
+            ArenaModel.Instance.FakeRoundBegin(fightInfo.roundCount, fightInfo.roundWinnerIds.ToArray());
+        }
+
+        public override void Update()
+        {
+            timer += Time.deltaTime;
+            completed = timer >= duration && opponentPlayer != null;
+        }
+    }
 
     public enum ILPKStageType
     {
         WaitStart,
         Fight,
+        RoundPrepare,
         FightOver,
     }
 

--
Gitblit v1.8.0