| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /// 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; |
| | | |
| | |
| | | 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; |
| | |
| | | HeroBehaviour.OnUserClickSkill += OnILUserClickSkill; |
| | | //显示PK UI |
| | | ArenaManager.OnILPKWinShow += OnILPKWinShow; |
| | | |
| | | } |
| | | protected override void UnInit() |
| | | { |
| | |
| | | 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) |
| | |
| | | } |
| | | 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()) |
| | |
| | | } |
| | | void OnILPlayerUpdateAI() |
| | | { |
| | | if (!ArenaManager.IsArenaClientNotMirrorFight) |
| | | if (!ArenaManager.isArenaClient) |
| | | return; |
| | | if (Application.isEditor) |
| | | { |
| | |
| | | PlayerDatas.Instance.hero.ActorInfo.Hp = 0; |
| | | } |
| | | } |
| | | |
| | | CameraController.Instance.rotationX = 45; |
| | | CameraController.Instance.Apply(); |
| | | if (!ArenaModel.Instance.bILAI) |
| | | return; |
| | | if (dungeonModel.dungeonFightStage != DungeonFightStage.Normal) |
| | |
| | | } |
| | | //////////////////////////////////////////////////////////////////Arena Stage控制/////////////////////////////////////////////////////////////// |
| | | void OnILStageInitialize() |
| | | { |
| | | { |
| | | ArenaModel.Instance.FakeMatchOk(); |
| | | fightInfo = default(ILFightInfo); |
| | | fightInfo.isOver = false; |
| | |
| | | opponentPlayer = null; |
| | | } |
| | | |
| | | ArenaManager.isArenaClient = false; |
| | | ArenaManager.isArenaPK = false; |
| | | ArenaManagerModel.Instance.ReleasePlayer(); |
| | | ClientDungeonStageUtility.SetClientDungeon(false, 0); |
| | |
| | | { |
| | | if (!ArenaManager.IsArenaStage()) |
| | | return; |
| | | ArenaManager.isArenaPK = true;
|
| | |
|
| | | ArenaManager.isArenaClient = true; |
| | | ArenaManager.isArenaPK = true; |
| | | |
| | | |
| | | ArenaModel.Instance.IsArenaWork = true; |
| | | recordDataMapId = ArenaManager.MapID; |
| | | ArenaModel.Instance.StartInit(); |
| | |
| | | |
| | | // 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) |
| | | { |
| | |
| | | } |
| | | 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) |
| | |
| | | hp = maxHp, |
| | | level = (ushort)level, |
| | | job = (byte)job, |
| | | face = AvatarHelper.GetAvatarDefaultID(job), |
| | | facePic = AvatarHelper.GetAvatarFrameDefaultID(job), |
| | | pos = Vector3.zero, |
| | | name = playerName, |
| | | itemDatas = equipInfos, |
| | |
| | | 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, |
| | |
| | | |
| | | if (pkStageType != ILPKStageType.Fight) |
| | | { |
| | | opponentPlayer.Pos = rightBornPoint; |
| | | opponentPlayer.Pos = ArenaModel.Instance.myPlace == 1 ? rightBornPoint : leftBornPoint; |
| | | currentStage = new ILWaitStartStage(); |
| | | currentStage.Begin(); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | 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 |
| | |
| | | { |
| | | 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 != "") |
| | | { |
| | |
| | | public class ILFightStage : ILPKStage |
| | | { |
| | | bool figthCompleted = false; |
| | | float restTime = 0.5f; |
| | | float restTime = 2f; |
| | | float restTimeTimer = 0f; |
| | |
|
| | | |
| | | |
| | | public override void Begin() |
| | | { |
| | | pkStageType = ILPKStageType.Fight; |
| | |
| | | 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() |
| | |
| | | |
| | | 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()); |
| | |
| | | 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) |
| | | { |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | 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, |
| | | } |
| | | |