package games.fighter.JerryJackExample.controller.levels;
import games.fighter.JerryJackExample.DooperStreetFighter;
import java.util.List;
import java.util.ResourceBundle;
import util.input.AlertObject;
import util.input.InputClassTarget;
import util.input.InputMethodTarget;
import vooga.fighter.controller.Controller;
import vooga.fighter.controller.GameManager;
import vooga.fighter.controller.gameinformation.GameInfo;
import vooga.fighter.controller.interfaces.ControllerDelegate;
import vooga.fighter.controller.interfaces.ModeCondition;
import vooga.fighter.controller.levels.OneVOneController;
import vooga.fighter.forces.Force;
import vooga.fighter.model.mode.LevelMode;
import vooga.fighter.model.mode.Mode;
import vooga.fighter.model.objects.AttackObject;
import vooga.fighter.model.objects.EnvironmentObject;
import vooga.fighter.model.objects.GameObject;
import vooga.fighter.util.CollisionDetector;
import vooga.fighter.view.Canvas;
@InputClassTarget
public class OutOfBounds extends OneVOne {
private static final String SCORESCREEN = "ScoreScreen";
/**
* Initial constructor
*/
public OutOfBounds() {
super();
}
/**
* Concrete constructor
* @param name name of controller
* @param frame frame
* @param manager ControllerManager
* @param gameinfo GameInfo
* @param filepath FilePath
*/
public OutOfBounds(String name, Canvas frame, ControllerDelegate manager,
GameInfo gameinfo, String filepath) {
super(name, frame, manager, gameinfo, filepath);
}
/**
* Return concrete controller
*/
@Override
public Controller getController(String name, Canvas frame, ControllerDelegate manager, GameInfo gameinfo,
String filepath) {
Controller controller = new OutOfBounds(name, frame, manager, gameinfo, filepath);
return controller;
}
/**
* Removes listener
*/
@Override
public void removeListener(){
super.removeListener();
getInput().removeListener(this);
}
@Override
public void checkConditions(){
if(winCondition.checkCondition(getMode())) getManager().notifyEndCondition(SCORESCREEN);
}
/**
* Anonymous Class that is fed into the winConditions via setupConditions
*/
ModeCondition winCondition = new ModeCondition() {
public boolean checkCondition(Mode mode) {
LevelMode levelmode = (LevelMode) mode;
boolean change = false;
for (int i = 0; i < levelmode.getCharacterObjects().size(); i++) {
if(levelmode.getCharacterObjects().get(i).getLocation().getX()>GameManager.SIZE.getWidth()+100) {
change = true;
tallyWinners(levelmode, i);
break;
}
}
return change;
}
};
private boolean beyondbounds(LevelMode levelmode, int index){
return levelmode.getCharacterObjects().get(index).getLocation().getX()>DooperStreetFighter.SIZE.getWidth()
|| levelmode.getCharacterObjects().get(index).getLocation().getX()<0;
}
}