Exemple #1
0
 public override void Interact(Action action, Clickable target)
 {
     if (action == Action.PICKUP_WATER)
     {
         CurrentState = Guy02State.WALKING_TO_WELL;
     }
 }
Exemple #2
0
    IEnumerator FillBucket()
    {
        AudioSource.PlayClipAtPoint(water, Camera.main.transform.position);
        yield return(new WaitForSeconds(1.5f));

        bucketAtWell.SetActive(false);
        bucketHead.SetActive(true);
        NextState = Guy02State.COMING_BACK;
    }
Exemple #3
0
 private void OnTriggerStay2D(Collider2D collision)
 {
     if (CurrentState == Guy02State.WALKING_TO_WELL && collision.gameObject.GetInstanceID() == wellTarget.GetInstanceID())
     {
         NextState = Guy02State.FILLING_BUCKET;
     }
     if (CurrentState == Guy02State.COMING_BACK && collision.gameObject.GetInstanceID() == cauldronTarget.GetInstanceID())
     {
         NextState = Guy02State.DONE;
     }
 }
Exemple #4
0
    private void Update()
    {
        if (NextState == Guy02State.WALKING_TO_WELL || NextState == Guy02State.COMING_BACK)
        {
            RandomMovement rm = GetComponent <RandomMovement>();
            if (rm)
            {
                rm.StopAllCoroutines();
            }
        }

        if (NextState == Guy02State.FILLING_BUCKET)
        {
            StartCoroutine(FillBucket());
        }

        if (NextState == Guy02State.DONE)
        {
            bucketHead.SetActive(false);
            bucketAtCauldron.SetActive(true);
        }

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

        if (CurrentState == Guy02State.WALKING_TO_WELL)
        {
            MoveTowardsTarget(wellTarget.transform.position);
        }

        if (CurrentState == Guy02State.COMING_BACK)
        {
            MoveTowardsTarget(cauldronTarget.transform.position);
        }

        WalkAnimation();
        previousPosition = transform.position;
    }