public override void Update(BossAgent agent)
 {
     agent.SetPlayerAsTarget();
     if (agent.GetIsPlayerInAttackRange())
     {
         agent.SetState(BossAttackState.GetInstance());
     }
     if (!agent.GetIsPlayerInRange())
     {
         agent.SetState(BossChargeTownState.GetInstance());
     }
 }
 public override void Update(BossAgent agent)
 {
     if (agent.GetIsPlayerInAttackRange())
     {
         agent.SetState(GetInstance());
     }
     else if (agent.GetIsPlayerInRange())
     {
         agent.SetState(BossFollowPlayerState.GetInstance());
     }
     else if (agent.GetIsBaseInAttackRange())
     {
         agent.SetState(GetInstance());
     }
     else
     {
         agent.SetState(BossChargeTownState.GetInstance());
     }
 }