//- 战斗逻辑 // // @return none public void frameLockLogic() { //UnityTools.Log("frameLockLogic " + GameData.g_uGameLogicFrame); //如果是回放模式 if (GameData.g_bRplayMode) { //检测回放事件 checkPlayBackEvent(GameData.g_uGameLogicFrame); } recordLastPos(); //动作管理器update GameData.g_actionMainManager.updateLogic(); // 英雄 int selfLiveCnt = 0; int otherLiveCnt = 0; int selfTotalCnt = 0; for (int i = 0; i < GameData.g_listHero.Count; i++) { BaseHero baseHero = GameData.g_listHero[i]; //UnityTools.Log("baseHero.IsDied ====== " + baseHero.IsDied); if (!baseHero.IsDied) { baseHero.updateLogic(); } if (baseHero.group == Fix64.One) { selfTotalCnt++; if (!baseHero.IsDied) { selfLiveCnt++; } } else if (baseHero.group == Fix64.One * 2) { if (!baseHero.IsDied) { otherLiveCnt++; } } } if (selfLiveCnt == 0 || otherLiveCnt == 0) { if (selfLiveCnt == 0) { GameData.g_battleResult = 0; } else if (selfTotalCnt - selfLiveCnt == 0) { GameData.g_battleResult = 3; } else if (selfTotalCnt - selfLiveCnt == 1) { GameData.g_battleResult = 2; } else if (selfTotalCnt - selfLiveCnt >= 2) { GameData.g_battleResult = 1; } stopBattle(); } }