COSC-3P91-Assignments/Assignment 2/src/ca/cosc3p91/a2/gameobjects/ResourceBuilding.java

41 lines
1012 B
Java

package ca.cosc3p91.a2.gameobjects;
import ca.cosc3p91.a2.util.Time;
public abstract class ResourceBuilding extends Building {
protected interface ResourceHarvestHandler {
void harvest(CasaDeNarino hall);
}
public static String resource;
private final Time harvestMinTime = new Time().offsetSeconds(10);
private int harvest_rate;
private Time nextHarvestTime;
public ResourceBuilding() {
nextHarvestTime = Time.getTime().offsetTime(harvestMinTime);
}
public void upgrade(ResourceStage stage) {
super.upgrade(stage);
this.harvest_rate += stage.getHarvestRateIncrease();
}
public void update(CasaDeNarino hall){
if (nextHarvestTime.occurred()){
getHarvestHandler().harvest(hall);
nextHarvestTime = Time.getTime().offsetTime(harvestMinTime);
}
}
protected abstract ResourceHarvestHandler getHarvestHandler();
public int getHarvestRate(){
return harvest_rate;
}
}