void Noble::run() { if(!ran) { if(isEnemyInRange("Villager")) { attack(); } else { if(name=="king" || !moveTowardEnemy()) randomMove(); for(int i=0;i<castle->repaint;i++) { castle->OnPaint(); } ran=true; } } else ran=false; }
bool Combat::isEnemyNear(const NSFStateMachineContext& context) { // If the enemy is close but not in range it is near. return ((distanceToEnemy < nearDistance) && (!isEnemyInRange(context))); }