public void OnEndGame(BattlePlayer winner) { if (IsStopped) { return; } winner.BattleStatistics.FinalHealth = winner.LifeLeft; winner.BattleStatistics.FinalHealthRatio = (float)winner.LifeLeft / winner.LifeMax; OnEndGameHandler?.Invoke(winner.ClientId, ClientA.MyPlayer.BattleStatistics, ClientB.MyPlayer.BattleStatistics); GameStopByWinRequest request = new GameStopByWinRequest(winner.ClientId, winner.BattleStatistics); Broadcast_AddRequestToOperationResponse(request); IsStopped = true; }
public void OnGameStopByWin(GameStopByWinRequest r) { BattleResultPanel brp = UIManager.Instance.ShowUIForms <BattleResultPanel>(); DragManager.Instance.ResetCurrentDrag(); DragManager.Instance.ForbidDrag = true; BattleManager.Instance.SelfBattlePlayer.HandManager.RefreshCardsPlace(); BattleManager.Instance.EnemyBattlePlayer.HandManager.RefreshCardsPlace(); brp.BattleStatistics = r.BattleStatistics; brp.SetCrystalInfo(); UIManager.Instance.ShowUIForms <ExitMenuPanel>().SetSurrenderButtonShow(false); UIManager.Instance.CloseUIForm <ExitMenuPanel>(); if (r.WinnerClientId == Client.Instance.Proxy.ClientID) { ClientLog.Instance.PrintClientStates("你赢了"); brp.WinGame(); } else { ClientLog.Instance.PrintReceive("你输了"); brp.LostGame(); } }