void AggroAttack() { if (control.playerIsInRange() == true) { control.Attack(); if (control.CanMove(data.forwardSpeed) == false) { control.Avoid(); } } else { ChangeState(AIState.Wander); } }
void SniperAttack() { if (control.playerIsInRange() == true) { move.RotateTowards(control.target.position, data.rotateSpeed); attack.FireCannon(); } if (data.tankCurrentLife <= (data.tankMaxLife / 2)) { ChangeState(AIState.Flee); } else { ChangeState(AIState.Rest); } }
void GuardAttack() { if (control.playerIsInRange() == true) { control.Attack(); if (control.CanMove(data.forwardSpeed) == false) { control.Avoid(); } } if (data.tankCurrentLife <= (data.tankMaxLife / 2)) { ChangeState(AIState.Flee); } else { ChangeState(AIState.Wander); } }