Exemple #1
0
    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);
        }
    }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
    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);
        }
    }
Exemple #4
0
 // 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);
     }
 }
Exemple #5
0
        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);
        }
Exemple #6
0
 void Awake()
 {
     anim = GetComponent <Animator>();
     hm   = GetComponent <HorseMovement>();
 }
Exemple #7
0
 private void Start()
 {
     horseMovement = FindObjectOfType <HorseMovement>();
 }