package games.fighter.JerryJackExample.controller.levels;
import games.fighter.JerryJackExample.AdvancedGameInfo;
import vooga.fighter.controller.Controller;
import vooga.fighter.controller.gameinformation.GameInfo;
import vooga.fighter.controller.interfaces.ControllerDelegate;
import vooga.fighter.controller.interfaces.ModeCondition;
import vooga.fighter.controller.levels.CharacterSelectController;
import vooga.fighter.controller.levels.MenuController;
import vooga.fighter.view.Canvas;
/**
* A Controller that handles choosing the character
* @author Jerry Li
* @author Jack Matteucci
*/
public class NumberCharacterSelect extends MenuController {
/**
* Initial constructor
*/
public NumberCharacterSelect() {
super();
}
/**
* Concrete constructor, called when level is switched to by controllermanager
* @param name name of controller
* @param frame canvas
* @param manager ControllerManager
* @param gameinfo GameInfo
*/
public NumberCharacterSelect(String name, Canvas frame, ControllerDelegate manager,
GameInfo gameinfo, String pathway) {
super(name, frame, manager, gameinfo, pathway);
}
/**
* Returns concrete controller, used when level is switched to by controllermanager
*/
@Override
public Controller getController(String name, Canvas frame, ControllerDelegate manager, GameInfo gameinfo,
String pathway) {
return new NumberCharacterSelect(name, frame, manager, gameinfo, pathway);
}
/**
* Notifies the delegate when controller ends
*/
@Override
public void notifyEndCondition(String choice) {
removeListener();
getMode().resetChoice();
getGameInfo().setNumCharacters(Integer.parseInt(choice));
getManager().notifyEndCondition(getMode().getMenusNext(choice));
}
/**
* Checks conditions
*/
@Override
public void checkConditions(){
for(ModeCondition condition: getConditions())
if(condition.checkCondition(getMode())) notifyEndCondition(getMode().peekChoice());
}
}