package de.fau.cs.mad.fly.features.upgrades;
import de.fau.cs.mad.fly.I18n;
import de.fau.cs.mad.fly.features.IFeatureInit;
import de.fau.cs.mad.fly.features.game.CollectibleObjects;
import de.fau.cs.mad.fly.features.overlay.InfoOverlay;
import de.fau.cs.mad.fly.features.upgrades.types.ChangeTimeUpgrade;
import de.fau.cs.mad.fly.features.upgrades.types.Collectible;
import de.fau.cs.mad.fly.sound.AudioManager;
import de.fau.cs.mad.fly.game.GameController;
import de.fau.cs.mad.fly.game.TimeController;
/**
* Used to display and handle change time upgrades.
*
* @author Tobi
*
*/
public class ChangeTimeUpgradeHandler extends CollectibleObjects implements IFeatureInit {
/**
* Time controller to add the time to.
*/
private TimeController timeController;
/**
* Creates a new change time upgrade handler.
*
* @param modelRef
* The model reference.
*/
public ChangeTimeUpgradeHandler() {
super("ChangeTimeUpgrade");
}
@Override
public void init(GameController game) {
timeController = game.getTimeController();
}
@Override
protected void handleCollecting(Collectible c) {
GameController.getInstance().getAudioManager().play(AudioManager.Sounds.PICKUP);
ChangeTimeUpgrade upgrade = (ChangeTimeUpgrade) c;
timeController.addBonusTime(upgrade.getTimeChange());
InfoOverlay.getInstance().setOverlay(I18n.t("timeUpgradeCollected") + "\n" + I18n.t("bonus") + " " + (upgrade.getTimeChange()) + "s", 3);
}
}