package games.fighter.MattJimmyExample.controller.levels; import java.awt.Dimension; import java.util.ArrayList; import java.util.List; import vooga.fighter.controller.interfaces.ModeCondition; import vooga.fighter.controller.levels.OneVOneController; import vooga.fighter.model.mode.LevelMode; import vooga.fighter.model.mode.Mode; import vooga.fighter.model.objects.CharacterObject; public class OneVOneOutOfBoundsController extends OneVOneController { private static final String SCORE = "ScoreScreen"; ModeCondition wincondition = new ModeCondition() { @Override public boolean checkCondition (Mode mode) { LevelMode levelmode = (LevelMode) mode; boolean change = false; for (int i = 0; i < levelmode.getCharacterObjects().size(); i++) { CharacterObject currentChar = levelmode.getCharacterObjects().get(i); Double charX = currentChar.getLocation().getX(); Double charY = currentChar.getLocation().getY(); Dimension mapSize = levelmode.getMap().getCurrentState().getCurrentSize(); boolean charOutOfBounds = (charX < 0 || charX > mapSize.getWidth() || charY < 0 || charY > mapSize.getHeight()); if (charOutOfBounds) { change = true; for (int j = 0; j < levelmode.getCharacterObjects().size(); j++) { if (j != i) getGameInfo().addWinners(j); getGameInfo().addScore(levelmode.getCharacterObjects().get(j).getHealth() .getHealth()); getGameInfo().addTotalScore(j, getGameInfo().getScore(j)); } break; } } return change; } }; @Override public void checkConditions () { if (wincondition.checkCondition(getMode())) { getManager().notifyEndCondition(SCORE); } } @Override public void setupConditions () { getWinConditions().clear(); addWinCondition(wincondition); } }