package module.item.useable; import module.character.api.ICharacter; import module.utility.BattleUtil; public abstract class AbstractHarmfulItem extends AbstractUsableItem{ public AbstractHarmfulItem(String chiName, String engName) { super(chiName, engName); } @Override public boolean onUse(ICharacter src) { if (super.onUse(src)){ if (BattleUtil.checkIfAbleToStartBattle(src, src)){ if (useAction(src)){ // TODO: define the whole-environment battle check? return true; } } } return false; } @Override public boolean onUse(ICharacter src, ICharacter target) { if (super.onUse(src)){ if (BattleUtil.checkIfAbleToStartBattle(src, target)){ if (useAction(src, target)) { BattleUtil.handleBattleTaskBehavior(src, target); return true; } } } return false; } protected abstract boolean useAction(ICharacter src, ICharacter target); protected abstract boolean useAction(ICharacter src); }