jmud-0.11/
jmud-0.11/bin/
jmud-0.11/doc/
jmud-0.11/rec/
jmud-0.11/rec/mun/
jmud-0.11/rec/mun/grecia/
jmud-0.11/rec/mun/gunnar/
jmud-0.11/rec/qua/
jmud-0.11/src/bool/
jmud-0.11/src/clone/
jmud-0.11/src/integer/
jmud-0.11/src/misc/
jmud-0.11/src/string/
jmud-0.11/src/util/bit/
jmud-0.11/src/util/color/
jmud-0.11/src/util/file/
jmud-0.11/src/util/jgp/adaptor/
jmud-0.11/src/util/jgp/algorithm/
jmud-0.11/src/util/jgp/container/
jmud-0.11/src/util/jgp/functor/
jmud-0.11/src/util/jgp/interfaces/
jmud-0.11/src/util/jgp/predicate/
jmud-0.11/src/util/log/
jmud-0.11/src/util/state/
jmud-0.11/trash/
abstract class Effect implements Sheetable {

  protected int        theDuration;
  protected Affectable theVictim;

  Effect(int duration, Affectable vict) {
    theDuration = duration;
    theVictim   = vict;
  }

  void update() {
    --theDuration;
  }

  boolean hasExpired() {
    return theDuration <= 0;
  }

  void apply(boolean quiet) {
    theVictim.insertEffect(this);
  }

  void undo(boolean quiet) {
    theVictim.removeEffect(this);
  }

  public String getSheet() {
    return theDuration + " hora(s)";
  }
}