private void OnTriggerStay2D(Collider2D collision) { if (CurrentState == OldManState02.GOING1 && collision.gameObject.GetInstanceID() == plant1Target.GetInstanceID()) { NextState = OldManState02.PICKINGPLANT1; } if (CurrentState == OldManState02.GOING2 && collision.gameObject.GetInstanceID() == plant2Target.GetInstanceID()) { NextState = OldManState02.PICKINGPLANT2; } if (CurrentState == OldManState02.GOING3 && collision.gameObject.GetInstanceID() == plant3Target.GetInstanceID()) { NextState = OldManState02.PICKINGPLANT3; } if (CurrentState == OldManState02.RETURN1 || CurrentState == OldManState02.RETURN2 || CurrentState == OldManState02.RETURN3) { int plant = CurrentState == OldManState02.RETURN1 ? 1 : CurrentState == OldManState02.RETURN2 ? 2 : 3; if (collision.gameObject.GetInstanceID() == cauldronTarget.GetInstanceID()) { FindObjectOfType <Cauldron>().AddPlant(plant); NextState = OldManState02.IDLE; } } }
IEnumerator PickPlant(int plant) { Coroutine c = StartCoroutine(PlayFlowersSound()); yield return(new WaitForSeconds(2f)); if (plant == 1) { NextState = OldManState02.RETURN1; } if (plant == 2) { NextState = OldManState02.RETURN2; } if (plant == 3) { NextState = OldManState02.RETURN3; } StopCoroutine(c); }
public override void Interact(Action action, Clickable target) { if (action == Action.PICKUP_PLANT) { Cauldron c = FindObjectOfType <Cauldron>(); if (!c.IsFull()) { if (target.GetType() == typeof(Plant1)) { NextState = OldManState02.GOING1; } else if (target.GetType() == typeof(Plant2)) { NextState = OldManState02.GOING2; } else { NextState = OldManState02.GOING3; } } } }
private void Update() { if (NextState == OldManState02.GOING1 || NextState == OldManState02.GOING2 || NextState == OldManState02.GOING3 || NextState == OldManState02.RETURN1 || NextState == OldManState02.RETURN2 || NextState == OldManState02.RETURN3) { RandomMovement rm = GetComponent <RandomMovement>(); if (rm) { rm.StopAllCoroutines(); } } if (NextState == OldManState02.PICKINGPLANT1) { StartCoroutine(PickPlant(1)); } if (NextState == OldManState02.PICKINGPLANT2) { StartCoroutine(PickPlant(2)); } if (NextState == OldManState02.PICKINGPLANT3) { StartCoroutine(PickPlant(3)); } if (NextState != OldManState02.NONE && NextState != CurrentState) { CurrentState = NextState; NextState = OldManState02.NONE; } if (CurrentState == OldManState02.GOING1) { MoveTowardsTarget(plant1Target.transform.position); } if (CurrentState == OldManState02.GOING2) { MoveTowardsTarget(plant2Target.transform.position); } if (CurrentState == OldManState02.GOING3) { MoveTowardsTarget(plant3Target.transform.position); } if (CurrentState == OldManState02.RETURN1) { MoveTowardsTarget(cauldronTarget.transform.position); } if (CurrentState == OldManState02.RETURN2) { MoveTowardsTarget(cauldronTarget.transform.position); } if (CurrentState == OldManState02.RETURN3) { MoveTowardsTarget(cauldronTarget.transform.position); } WalkAnimation(); previousPosition = transform.position; }