public void ApplyBuff() { List <Soldier> buffableSoldiers = team.GetSoldiers(); foreach (Soldier soldier in buffableSoldiers) { if (IsInBuffRange(this.GetPosition(), soldier.GetPosition())) { this.GetUnit().GetUnitData().GetBehaviour().ApplyBuffEfect(soldier); } } }
public int CalculateScoreRelativeToAI(TeamData playerTeam, TeamData AITeam) { int playerScore = 0; int AIScore = 0; foreach (Soldier soldier in playerTeam.GetSoldiers()) { playerScore -= soldier.GetHealth(); } foreach (Soldier soldier in AITeam.GetSoldiers()) { AIScore += soldier.GetHealth(); } playerTeam.SetScore(-playerScore); AITeam.SetScore(AIScore); ShowScores(playerTeam, AITeam); if (playerScore == 0 && AIScore != 0) { return(AIScore); } if (playerScore != 0 && AIScore == 0) { return(playerScore); } return(AIScore + playerScore); }
public void OnBattleEnds() { if (!callToEnd) { callToEnd = true; foreach (Soldier soldier in playerTeamData.GetSoldiers()) { soldier.SetReadyToFight(false); } foreach (Soldier soldier in AITeamData.GetSoldiers()) { soldier.SetReadyToFight(false); } // Calculate score int score = scoreController.CalculateScoreRelativeToAI(playerTeamData, AITeamData); // Comunicate score to IA aiController.OnBattleEnd(playerController.GetPlayerFormation(), score); UtilityObjectData.ConvertArray(aiController.GetTeamFormer().GetUtility()); unitsPool.Reset(); playerTeamData.ClearSoldiers(); AITeamData.ClearSoldiers(); //----------------------------------------------------------------------------------------------------------------------------------------------- // FOR AUTOMATIC KNOWLEDGE if (currentGameMode == GameMode.AivsAi) { OnStartBattle(); } //----------------------------------------------------------------------------------------------------------------------------------------------- } }