public virtual void chase(WarriorAnimation anim, GameObject enemy)
 {
     if ( enemy == null ) {
         enemy = anim.FindClosestEnemy();
     }
     anim.Enemy = enemy;
     anim.moveTo(enemy.transform.position);
     anim.setCurrentState(new CHASING());
 }
 public static void CreateRightEnemy(MonsterScript monster, WarriorAnimation player)
 {
     Transform[] wayPoints = new Transform[6];
     wayPoints[0] = GameObject.Find("WayPoint1R").transform;
     wayPoints[1] = GameObject.Find("WayPoint2R").transform;
     wayPoints[2] = GameObject.Find("WayPoint3R").transform;
     wayPoints[3] = GameObject.Find("WayPoint4R").transform;
     wayPoints[4] = GameObject.Find("WayPoint5R").transform;
     wayPoints[5] = GameObject.Find("WayPoint6R").transform;
     monster.WayPoints = wayPoints;
 }
 public virtual void doMove(WarriorAnimation anim)
 {
     anim.move();
     anim.setCurrentState(new MOVE());
 }
 public override void chase(WarriorAnimation anim, GameObject enemy)
 {
     if ( enemy != null ) {
         base.chase(anim, enemy);
     }
 }
 public override void attack(WarriorAnimation anim, GameObject enemy)
 {
 }
 public override void attack(WarriorAnimation anim, GameObject enemy)
 {
     if ( anim.isInAttackRange(enemy) ) {
         base.attack(anim, enemy);
     }
 }
 public virtual void attackMove(WarriorAnimation anim)
 {
     anim.move();
     anim.setCurrentState(new ATTACKMOVE());
 }
 public virtual void attack(WarriorAnimation anim, GameObject enemy)
 {
     anim.stop();
     anim.attack(enemy);
     anim.setCurrentState(new ATTACKING());
 }