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(); }
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; }
private void OnTriggerStay2D(Collider2D collision) { if (CurrentState == KidState.GOING_TOWARDS_DOGGO && collision.gameObject.GetInstanceID() == dogTarget.GetInstanceID()) { NextState = KidState.FOUND_DOGGO; } }
public override void Interact(Action action, Clickable target) { if (action == Action.FIND_DOGO) { NextState = KidState.GOING_TOWARDS_DOGGO; } }
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)); }