package de.fau.cs.mad.fly.levels.medium;
import java.util.List;
import de.fau.cs.mad.fly.I18n;
import de.fau.cs.mad.fly.features.IFeatureInit;
import de.fau.cs.mad.fly.features.overlay.InfoOverlay;
import de.fau.cs.mad.fly.game.GameController;
import de.fau.cs.mad.fly.game.GameControllerBuilder;
import de.fau.cs.mad.fly.game.GameObject;
import de.fau.cs.mad.fly.levels.ILevel;
import de.fau.cs.mad.fly.res.GateCircuitListener;
import de.fau.cs.mad.fly.res.GateGoal;
/**
* Level script file for the choose right gate level.
*
* @author Tobi
*
*/
public class ChooseRightGateLevel implements ILevel, IFeatureInit, GateCircuitListener {
private List<GameObject> components;
@Override
public void create(GameControllerBuilder builder) {
builder.addFeatureToLists(this);
}
@Override
public void init(GameController game) {
InfoOverlay.getInstance().setOverlay(I18n.tLevel("medium.choose.right.gate"), 5);
components = game.getLevel().components;
for(GameObject o : components) {
if(o.getMover() != null) {
System.out.println(o.getId());
o.getMover().setActive(false);
}
}
}
/**
* Activates the mover of the asteroid with the given id.
*
* @param id The id of the asteroid.
*/
private void activateAsteroid(String id) {
for(GameObject o : components) {
if(o.getId().equals(id)) {
o.getMover().setActive(true);
return;
}
}
}
@Override
public void onGatePassed(GateGoal gate) {
System.out.println(gate.getId());
if(gate.getId().equals("GateGoal 0")) {
activateAsteroid("Cube.000");
} else if(gate.getId().equals("GateGoal 3")) {
activateAsteroid("Cube.001");
} else if(gate.getId().equals("GateGoal 7")) {
activateAsteroid("Cube.002");
}
}
@Override
public void onFinished() {
// do nothing
}
}