diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs
index 12e1fee6..a39a15dd 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs
@@ -86,6 +86,30 @@ namespace GameLogic
m_AddPush++;
}
+ ///
+ /// 获取该阵营积分最高的玩家
+ ///
+ public UnitPlayerData GetOnePlayer()
+ {
+
+ if (m_ListUnitPlayDatas.Count <= 0)
+ {
+ return null;
+ }
+
+ // 获取当前阵营积分最高的玩家
+ UnitPlayerData data = m_ListUnitPlayDatas[0];
+ for (int i = 1; i < m_ListUnitPlayDatas.Count; i++)
+ {
+ if (data.m_Score < m_ListUnitPlayDatas[i].m_Score)
+ {
+ data = m_ListUnitPlayDatas[i];
+ }
+ }
+ // 返回该玩家数据
+ return data;
+ }
+
public double GetAllPower()
{
return m_AllPush;
diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/CommonData.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/CommonData.cs
index 836dd5f1..3983a907 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/CommonData.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/CommonData.cs
@@ -17,12 +17,18 @@ namespace GameLogic
public string ackType;
}
- public enum GameStateType
+
+ public class GameEndData
{
- 团队赛 = 0,
- 个人赛 = 1
+ public string m_WinTeamName;
+ public string m_WinPlayerName;
+ public string m_SbyrPlayerName;
+ public string m_ZjgxPlayerName;
+ public string m_TzhsPlayerName;
+ public string m_DzzwPlayerName;
}
+
public enum GameRankType
{
当局排行榜 = 0,
@@ -57,6 +63,8 @@ namespace GameLogic
public long m_Score; // 当局积分
public long m_AllWinCount;// 当局胜点
public long m_LikeCount;//当局点赞
+ public int m_GongXian;//当局贡献
+ public int m_AtkCount;//当局攻击
public void AddExp(long v)
{
diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/EventConts.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/EventConts.cs
index 7bfee53c..d4f32a87 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/EventConts.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Common/EventConts.cs
@@ -5,7 +5,6 @@ namespace GameLogic
public class EventConts
{
public static PlatformType PlatformType = PlatformType.Dy; // 平台类型
- public static GameStateType gameStateType = GameStateType.团队赛;
public static string Token = string.Empty; // 登录token
diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs
index 71e11b6c..c14e523a 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs
@@ -10,19 +10,19 @@ public class DataGameModelManager : GameBase.Singleton
#region 游戏结算上报
public void C2S_GameRankEnd()
{
- if (EventConts.gameStateType == GameStateType.团队赛)
- {
- GameRankEnd();
- }
- else if (EventConts.gameStateType == GameStateType.个人赛)
- {
- OneGameRankEnd();
- }
- else
- {
- Log.Error("结算异常,不支持的模式:{0}", EventConts.gameStateType);
- return;
- }
+ //if (EventConts.gameStateType == GameStateType.团队赛)
+ //{
+ // GameRankEnd();
+ //}
+ //else if (EventConts.gameStateType == GameStateType.个人赛)
+ //{
+ // OneGameRankEnd();
+ //}
+ //else
+ //{
+ // Log.Error("结算异常,不支持的模式:{0}", EventConts.gameStateType);
+ // return;
+ //}
// 比例瓜分积分池
DataGameSceneManager.Instance.ScoreAllValue = (int)(DataGameSceneManager.Instance.ScoreAllValue * 0.3f);
diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs
index f5742662..25af4438 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs
@@ -668,11 +668,226 @@ namespace GameLogic
// 设置游戏状态
SetGameState(false);
- // 调用结算分配
- DataGameModelManager.Instance.C2S_GameRankEnd();
+ ShowRankEndForm();
- // // 理论上是结算界面显示完成后,才开始调用的,先测试重开逻辑的问题
- // OnRestData();
+ // 多了一步流程
+ // 显示结算总结
+
+ //// 调用结算分配
+ //DataGameModelManager.Instance.C2S_GameRankEnd();
+ }
+
+
+ private void ShowRankEndForm()
+ {
+
+ var winActorTeam = OnCheckWinTeam();
+
+ string winActorName = GetStrs(winActorTeam.m_Index);
+
+ Log.Debug("获胜阵营的名称:" + winActorName);
+
+ var winActorPlayer = winActorTeam.GetOnePlayer();
+
+ if (winActorPlayer == null)
+ {
+ Log.Error("当前阵营没有玩家数据");
+
+ // 调用结算分配
+ DataGameModelManager.Instance.C2S_GameRankEnd();
+ return;
+ }
+
+ string winActorPlayerName = winActorPlayer.protCustMessageData.nickName;
+
+ Log.Debug("当前积分最高的玩家");
+
+ var topPlayer = GetTopGongXianPlayer();
+
+ if (topPlayer == null)
+ {
+ Log.Error("当前没有玩家数据");
+ return;
+ }
+
+ string sbyrPlayerName = GetSbyrPlayerName().protCustMessageData.nickName;
+ Log.Debug("当前虽败犹荣阵营的玩家:" + sbyrPlayerName);
+
+
+ string zjgxPlayerName = topPlayer.protCustMessageData.nickName;
+ Log.Debug("当前最佳贡献的玩家:" + zjgxPlayerName);
+
+ string tzhsPlayerName = GetTzhsPlayer().protCustMessageData.nickName;
+ Log.Debug("当前天灾化身的玩家:" + tzhsPlayerName);
+
+ string dzzwPlayerName = GetDzzwPlayer().protCustMessageData.nickName;
+ Log.Debug("当前点赞最多的玩家:" + dzzwPlayerName);
+
+
+ GameEndData gameEndData = new GameEndData()
+ {
+ m_DzzwPlayerName = dzzwPlayerName,
+ m_TzhsPlayerName = tzhsPlayerName,
+ m_SbyrPlayerName = sbyrPlayerName,
+ m_ZjgxPlayerName = zjgxPlayerName,
+ m_WinPlayerName = winActorPlayerName,
+ m_WinTeamName = zjgxPlayerName
+ };
+
+
+ // 显示结算界面
+ GameModule.UI.ShowUI(gameEndData);
+ }
+
+ ///
+ /// 获取除了胜利阵营外积分最高的玩家
+ ///
+ ///
+ private UnitPlayerData GetSbyrPlayerName()
+ {
+ List m_tempList = new List();
+ foreach (var item in m_DicUnitPlayerDatas)
+ {
+ m_tempList.Add(item.Value);
+ }
+
+ m_tempList.Sort((a, b) =>
+ {
+ if (a.m_LikeCount > b.m_LikeCount)
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ });
+
+ if (m_tempList.Count <= 0)
+ {
+ return null;
+ }
+
+ return m_tempList[0];
+ }
+
+ ///
+ /// 获取当局点赞次数最多的玩家
+ ///
+ ///
+ private UnitPlayerData GetDzzwPlayer()
+ {
+ List m_tempList = new List();
+ foreach (var item in m_DicUnitPlayerDatas)
+ {
+ m_tempList.Add(item.Value);
+ }
+
+ m_tempList.Sort((a, b) =>
+ {
+ if (a.m_LikeCount > b.m_LikeCount)
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ });
+
+ if (m_tempList.Count <= 0)
+ {
+ return null;
+ }
+
+ return m_tempList[0];
+ }
+
+ ///
+ /// 获取攻击次数最高的玩家
+ ///
+ ///
+ private UnitPlayerData GetTzhsPlayer()
+ {
+ List m_tempList = new List();
+ foreach (var item in m_DicUnitPlayerDatas)
+ {
+ m_tempList.Add(item.Value);
+ }
+
+ m_tempList.Sort((a, b) =>
+ {
+ if (a.m_AtkCount > b.m_AtkCount)
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ });
+
+ if (m_tempList.Count <= 0)
+ {
+ return null;
+ }
+
+ return m_tempList[0];
+ }
+
+ ///
+ /// 获取全场贡献值最高的玩家
+ ///
+ ///
+ private UnitPlayerData GetTopGongXianPlayer()
+ {
+
+ List m_tempList = new List();
+ foreach (var item in m_DicUnitPlayerDatas)
+ {
+ m_tempList.Add(item.Value);
+ }
+
+ m_tempList.Sort((a, b) =>
+ {
+ if (a.m_GongXian > b.m_GongXian)
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ });
+
+ if (m_tempList.Count <= 0)
+ {
+ return null;
+ }
+
+ return m_tempList[0];
+ }
+
+ ///
+ /// 确认获胜阵营
+ ///
+ private ActorHItem OnCheckWinTeam()
+ {
+ m_TeamSortList.Sort((a, b) =>
+ {
+ if (a.GetAllPower() > b.GetAllPower())
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ });
+
+
+ // 第一名就是胜利的阵营
+ return m_TeamSortList[0];
}
///
diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs
index 01318c9d..c6bfaddc 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs
@@ -39,5 +39,10 @@ namespace GameLogic
#region ¼
#endregion
+ protected override void OnCreate()
+ {
+ base.OnCreate();
+ }
+
}
}
diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameMainForm.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameMainForm.cs
index 553864cd..1e8a431d 100644
--- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameMainForm.cs
+++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameMainForm.cs
@@ -53,7 +53,7 @@ namespace GameLogic
// 设置游戏模式
// EventConts.gameStateType = (GameStateType)gameModelId;
- EventConts.gameStateType = GameStateType.团队赛;
+ //EventConts.gameStateType = GameStateType.团队赛;
// 设置游戏时长
switch (gameLenTiemrId)
{
@@ -71,7 +71,7 @@ namespace GameLogic
break;
}
- Log.Info("当前选择游戏模式: {0} , 设置游戏时长: {1}", EventConts.gameStateType, EventConts.gameLenTiemr);
+ //Log.Info("当前选择游戏模式: {0} , 设置游戏时长: {1}", EventConts.gameStateType, EventConts.gameLenTiemr);
GameModule.Setting.SetInt("gameModelId", gameModelId);
GameModule.Setting.SetInt("gameLenTiemrId", gameLenTiemrId);