package gr.sullenart.games.fruitcatcher.models;
import gr.sullenart.games.fruitcatcher.view.FallingObjectState;
public class GameModel {
private int duration;
private int goal;
private int fruitPeriod;
private int badObjectsPeriod;
private int bonusObjectsPeriod;
private int difficulty;
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public int getGoal() {
return goal;
}
public void setGoal(int goal) {
this.goal = goal;
}
public int getFruitPeriod() {
return fruitPeriod;
}
public void setFruitPeriod(int fruitPeriod) {
this.fruitPeriod = fruitPeriod;
}
public int getBadObjectsPeriod() {
return badObjectsPeriod;
}
public void setBadObjectsPeriod(int badObjectsPeriod) {
this.badObjectsPeriod = badObjectsPeriod;
}
public int getBonusObjectsPeriod() {
return bonusObjectsPeriod;
}
public void setBonusObjectsPeriod(int bonusObjectsPeriod) {
this.bonusObjectsPeriod = bonusObjectsPeriod;
}
public int getDifficulty() {
return difficulty;
}
public void setDifficulty(int difficulty) {
this.difficulty = difficulty;
}
public GameModel(int duration, int fruitPeriod, int badObjectsPeriod,
int bonusObjectsPeriod, int difficulty) {
this.duration = duration;
this.fruitPeriod = fruitPeriod;
this.badObjectsPeriod = badObjectsPeriod;
this.bonusObjectsPeriod = bonusObjectsPeriod;
this.difficulty = difficulty;
int fruits = (duration/fruitPeriod)-1;
float r = FruitType.SEASONAL_FRUITS_RATIO;
float fruitPoints = fruits*(
((1-r)*FallingObjectState.FRUIT_OUT_OF_SEASON_POINTS) +
(r*FallingObjectState.FRUIT_IN_SEASON_POINTS)
);
goal = (((int) fruitPoints)*difficulty)/100;
}
}