///
///
///
///
class CombatPokeUnit extends ContentUnit {
private aggressor : ContentDifferential = new ContentDifferential(Person);
private target : ContentDifferential = new ContentDifferential(Person);
private markers : ContentDifferential = new ContentDifferential();
public constructor () {
super();
}
public setAggressor (it : Thing | typeof Thing) {
this.aggressor = new ContentDifferential(it);
return this;
}
public getAggressor () {
return this.aggressor;
}
public setTarget (it : Thing | typeof Thing) {
this.target = new ContentDifferential(it);
return this;
}
public getTarget () {
return this.target;
}
public addMarker (...marker : Array) {
this.markers.addNoun(...marker);
return this;
}
public getMarkers () {
return [...this.markers.nouns];
}
public getScore () {
return this.target.getScore() + this.markers.getScore();
}
public isMatch (cu : CombatPokeUnit) {
if (cu instanceof CombatPokeUnit) {
return this.target.isMatch(cu.target) && this.aggressor.isMatch(cu.aggressor) &&
this.markers.isMatch(cu.markers);
}
return false;
}
}