protected void start() throws FightException { state = FightStateEnum.ACTIVE; generateTurns(); fighters = CollectionUtils.concat(challengers.getFighters(), defenders.getFighters()); foreach( new FightHandlerAction() { @Override public void call(IFightHandler obj) throws FightException { obj.notifyFightStart(turns, fighters); } }); onStarted(); startFight = Instant.now(); getCurrentTurn().begin(); }
public static FightTeamEnum getWinnerTeam(Team team1, Team team2) { int nbSurvivors1 = 0, nbSurvivors2 = 0; for (IFighter fighter : team1.getFighters()) { if (fighter.isAlive()) { ++nbSurvivors1; } } for (IFighter fighter : team2.getFighters()) { if (fighter.isAlive()) { ++nbSurvivors1; } } if (nbSurvivors1 < nbSurvivors2) { return team2.getTeamType(); } else { return team1.getTeamType(); } }