public void LaserOn() { float dist = Vector3.Distance(transform.position, protector.transform.position); Debug.Log("ughghgh"); if (dist <= maxDistanceToNoticePointer && !followingLaser) { // horse is close enough to see pointer and go there followingLaser = true; StopCoroutine(Wait()); StopCoroutine(waypointSystem.Wait()); headedToNearByPoint = true; headedToNextWaypoint = false; movementType = HorseMovement.POINTER; agent.SetDestination(protector.transform.position); anim.SetFloat("speed", 0.5f); } else if (dist > maxDistanceToNoticePointer && followingLaser) { // horse was following laser but then got moved out of range followingLaser = false; headedToNextWaypoint = false; headedToNearByPoint = false; StartCoroutine(Wait()); StartCoroutine(waypointSystem.Wait()); movementType = HorseMovement.ROAM; agent.SetDestination(waypointRef.transform.position); anim.SetFloat("speed", 0.5f); } }
public void SetMovementRun() // called by Hunter { if (!waypointSystem.last && !headedToNextWaypoint) { Debug.Log("Hunter is shooting at me. So I am running awway"); movementType = HorseMovement.RUN; isRunning = true; anim.SetFloat("speed", 1f); } }
public void LaserOff() { float dist = Vector3.Distance(transform.position, protector.transform.position); if (dist <= maxDistanceToNoticePointer && followingLaser) { followingLaser = false; headedToNextWaypoint = false; headedToNearByPoint = false; StartCoroutine(Wait()); StartCoroutine(waypointSystem.Wait()); movementType = HorseMovement.ROAM; agent.SetDestination(waypointRef.transform.position); anim.SetFloat("speed", 0.5f); } }
// Update is called once per frame void Update() { if (protector == null) { protector = FindObjectOfType <Protector>(); } if (movementType == HorseMovement.ROAM) { // headed to new waypoint if (headedToNextWaypoint) { if (Vector3.Distance(transform.position, dest) <= 5f) { // at next waypoint headedToNextWaypoint = false; agent.speed = roamSpeed; // start waiting process of going to the near by areas StartCoroutine(waypointSystem.Wait()); } } else { // roaming to near by points Roam(); } } else if (movementType == HorseMovement.RUN) { // called when the hunter shoots at the horse // go to next waypoint StopCoroutine(waypointSystem.Wait()); agent.speed = runSpeed; waypointSystem.MoveToNewPosition(); movementType = HorseMovement.ROAM; } else if (movementType == HorseMovement.POINTER) { transform.LookAt(protector.transform); } }
private static void MoveRandomPiece(ChessPieceColor color, List <ChessPiece> pieces) { MovementCommandBase movement; var turnPieces = pieces.Where(p => p.Color == color).ToList(); var nextPieceIndex = random.Next(turnPieces.Count()); var nextPiece = turnPieces[nextPieceIndex]; var nextPieceType = nextPiece.GetType(); if (nextPieceType == typeof(Peon)) { movement = new PeonMovement(boardService); } else if (nextPieceType == typeof(Horse)) { movement = new HorseMovement(boardService); } else { movement = new BishopMovement(boardService); } movement.MovePiece(nextPiece); }
void Awake() { anim = GetComponent <Animator>(); hm = GetComponent <HorseMovement>(); }
private void Start() { horseMovement = FindObjectOfType <HorseMovement>(); }