Exemple #1
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        if (other.gameObject.CompareTag("Ammunition"))
        {
            state = KidState.Launched;
        }
        else if (other.gameObject.CompareTag("Kid"))
        {
            var otherKid = other.gameObject.GetComponent <Kid>();

            if (otherKid.state != KidState.Launched)
            {
                _runDirection = ChooseRandomDirection();
            }
            else
            {
                state = KidState.Launched;
            }
        }
        else if (other.gameObject.CompareTag("Wall"))
        {
            switch (state)
            {
            case KidState.Launched:
                GameManager.Instance.AddScore();
                Destroy(gameObject);
                break;

            case KidState.Running:
                _runDirection = -_runDirection;
                break;
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        //Debug.Log("KEY: " + hasKey);
        //GO TO KEY
        GameObject key = GameObject.FindGameObjectWithTag("Key");

        if (key != null)
        {
            agent.SetDestination(key.transform.position);
            state = KidState.RUNNING;
            if (Vector3.Distance(transform.position, key.transform.position) <= 2.5f)
            {
                hasKey = true;
                Destroy(key.gameObject);
                FindObjectOfType <AudioManager>().Play("ToySqueak02");
            }
        }
        else
        {
            //GO TO FIRST INSTANTIATED TOY
            GameObject[] toys = GameObject.FindGameObjectsWithTag("Toy");
            if (toys.Length > 0)
            {
                if (Vector3.Distance(transform.position, toys[0].transform.position) <= 20f)
                {
                    agent.SetDestination(toys[0].transform.position);
                    //IF CLOSE ENOUGH, DESTROY THE TOY
                    if (Vector3.Distance(transform.position, toys[0].transform.position) <= 2.5f && state == KidState.RUNNING)
                    {
                        state = KidState.ATTACKING;
                        Destroy(toys[0].gameObject);
                        state = KidState.RUNNING;
                        FindObjectOfType <AudioManager>().Play("ToySqueak01");
                    }
                }
            }
            else //GO TO PLAYER IF NO TOYS
            {
                state = KidState.RUNNING;
                if (Vector3.Distance(transform.position, player.position) <= 2f)
                {
                    stopMovement();
                }
                else
                {
                    moveToPlayer();
                }
            }
        }
        //END OF PATHING

        //if(Vector3.Distance(transform.position, player.position) >= 10f)
        //{
        //Debug.Log("TESTING");
        //    braveryDecay();
        //}
        //braveryBarUI.value = braveryMeterValue;
        //setCurrentSpeed();
        //flashRecharger();
    }
Exemple #3
0
    private void Update()
    {
        if (NextState == KidState.GOING_TOWARDS_DOGGO)
        {
            RandomMovement rm = GetComponent <RandomMovement>();
            if (rm)
            {
                rm.StopAllCoroutines();
            }
        }

        if (NextState == KidState.FOUND_DOGGO)
        {
            AudioSource.PlayClipAtPoint(barkClip, Camera.main.transform.position);
            StartCoroutine(DogWaiting());
        }

        if (NextState != KidState.NONE && NextState != CurrentState)
        {
            CurrentState = NextState;
            NextState    = KidState.NONE;
        }

        if (CurrentState == KidState.GOING_TOWARDS_DOGGO)
        {
            MoveTowardsTarget(dogTarget.transform.position);
        }

        WalkAnimation();
        previousPosition = transform.position;
    }
Exemple #4
0
 private void OnTriggerStay2D(Collider2D collision)
 {
     if (CurrentState == KidState.GOING_TOWARDS_DOGGO && collision.gameObject.GetInstanceID() == dogTarget.GetInstanceID())
     {
         NextState = KidState.FOUND_DOGGO;
     }
 }
Exemple #5
0
 public override void Interact(Action action, Clickable target)
 {
     if (action == Action.FIND_DOGO)
     {
         NextState = KidState.GOING_TOWARDS_DOGGO;
     }
 }
Exemple #6
0
    public IEnumerator DogWaiting()
    {
        Doggo d = FindObjectOfType <Doggo>();

        d.transform.position = new Vector3(transform.position.x, transform.position.y - 0.1f, 0f);

        yield return(new WaitForSeconds(1f));

        NextState = KidState.DONE;

        StartCoroutine(FadeOut(true));
    }