package org.mafagafogigante.dungeon.entity.items; import org.mafagafogigante.dungeon.date.Date; import org.mafagafogigante.dungeon.game.Game; import org.mafagafogigante.dungeon.game.Random; import java.io.Serializable; /** * The clock component. */ public class ClockComponent implements Serializable { private final Item master; /** * Used to store the date the clock had when it was broken. */ private Date lastTime; ClockComponent(Item master) { this.master = master; } public void setLastTime(Date lastTime) { // Create a new Date object so that this field is not affected by changes in the rest of the program. this.lastTime = lastTime; } /** * Returns a string that represents a clock reading. */ public String getTimeString() { if (master.isBroken()) { if (lastTime == null) { if (Random.nextBoolean()) { return "The clock is pure junk."; } else { return "The clock is completely smashed."; } } else { return "The clock is broken. Still, it displays " + lastTime.toTimeString() + "."; } } else { String timeString = Game.getGameState().getWorld().getWorldDate().toTimeString(); return "The clock displays " + timeString + "."; } } }