package net.sourceforge.pain.logic;
import net.sourceforge.pain.data.*;
/**
* Affects logic base class. (Controller for persistent AffectData)
* <p/>
* this class is linked statically to Core (could not be reloaded)
* all it's subclasses are loaded(linked) dynamically and will be reloaded when
* LogicLocader.reload() method call
* <p/>
* Note:Codebase requires from all affect controllers (Affect subclasses)
* to provide constructor with single (AffectData d) param.
* This constructor is used for automatic affect controller
* instantiation and initialization with persistent image by codebase
*/
public abstract class Affect {
protected AffectData ad;
protected Affect(AffectData ad) {
if (ad == null) {
throw new NullPointerException("Affect: AffectData is null!");
}
this.ad = ad;
}
}