public void Attack() { CharacterInfo targetInfo = towerInfo.RunAI(); if (targetInfo != null && towerInfo.WithinRange(targetInfo)) { towerInfo.SetAttackInfo(targetInfo); towerInfo.ChangeState("attack", targetInfo); } else { towerInfo.ChangeState("idle"); } }
public void AttackEnd() { CharacterInfo attackCharInfo = towerInfo.GetAttackInfo(); //若死亡或者超出了攻击范围,则回归待机重新寻找目标 if (attackCharInfo.IsDead()) { attackCharInfo.ChangeState("die"); towerInfo.ChangeState("idle"); } else if (!towerInfo.WithinRange(attackCharInfo)) { towerInfo.ChangeState("idle"); } else { towerInfo.ChangeState("attack"); } }