public override void Visit(SkillState skillState) { if (skillState.IsEnd()) { BasicState basicState = player.GetBasicState(); basicState.Stop(); player.SetState(basicState); } }
public override void Visit(BasicState basicState) { if (0.8f > Vector3.Distance(player.GetPosition(), destination)) { basicState.Stop(); return; } basicState.MoveTo(destination); }
public override void Visit(BasicState basicState) { if (false == basicState.IsTargetIngState()) { BasicState idleState = player.GetBasicState(); idleState.Stop(); player.SetState(idleState); } Unit targetUnit = basicState.GetTargetUnit(); if (range > player.DistanceToUnit(targetUnit)) { SkillState skillState = skill.GetSkillState(); skillState.SetTargetUnit(targetUnit); basicState.ChageToSkillState(skill.GetSkillState()); } else { basicState.ChaseTarget(targetUnit); } }
public override void Visit(BasicState basicState) { basicState.Stop(); }