package haven.event;
import java.awt.Color;
public class MeterEvent extends MaidEvent {
public enum Type {
HP, STAMINA, HUNGER, HAPINESS, AUTHORITY
}
private Type type;
private Object[] values;
public MeterEvent(Type type, Object[] values) {
this.type = type;
this.values = values;
}
public Type getType() {
return type;
}
public Object[] getValues() {
return values;
}
public MeterEventObject getEventObject() {
if (type == Type.STAMINA || type == Type.AUTHORITY) {
return new MeterEventObjectStamina((Integer) values[1]);
} else if (type == Type.HUNGER) {
if (values.length < 3)
return null;
if (((Color) values[0]).equals(new Color(96, 0, 0)) && ((Color) values[2]).equals(new Color(255, 64, 0))) {
return new MeterEventObjectHunger(MeterEventObjectHunger.HungerType.VERY_HUNGRY, (Integer) values[3]);
} else if (((Color) values[0]).equals(new Color(255, 64, 0)) && ((Color) values[2]).equals(new Color(255, 192, 0))) {
return new MeterEventObjectHunger(MeterEventObjectHunger.HungerType.HUNGRY, (Integer) values[3]);
} else if (((Color) values[0]).equals(new Color(255, 192, 0)) && ((Color) values[2]).equals(new Color(0, 255, 0))) {
return new MeterEventObjectHunger(MeterEventObjectHunger.HungerType.FULL, (Integer) values[3]);
} else if (((Color) values[0]).equals(new Color(0, 255, 0)) && ((Color) values[2]).equals(new Color(255, 0, 0))) {
return new MeterEventObjectHunger(MeterEventObjectHunger.HungerType.OVERSTUFFED, (Integer) values[3]);
} else {
return new MeterEventObjectHunger(MeterEventObjectHunger.HungerType.STARVING, (Integer) values[3]);
}
} else if (type == Type.HP) {
return null; // TODO
} else {
return null; // TODO
}
}
}