Esempio n. 1
0
 private void Wander()
 {
     if (state != CapitalistState.DOWN)
     {
         state = CapitalistState.WANDER;
         Seeker  seeker       = GetComponent <Seeker>();
         Vector2 wanderVector = new Vector2(Random.Range(-1f, 1f), Random.Range(-1f, 1f)).normalized;
         wanderVector *= wanderAmount;
         seeker.StartPath(transform.position, transform.position + (Vector3)wanderVector, OnPathComplete);
     }
 }
Esempio n. 2
0
    public override void Hit(int damage)
    {
        state = CapitalistState.DOWN;
        foreach (Collider2D c in GetComponentsInChildren <Collider2D>())
        {
            c.enabled = false;
        }
        nextStateChangeTime   = Time.time + downTime;
        updateSprites         = false;
        spriteRenderer.sprite = downSprite;
        GameController controller = GameObject.Find("GameController").GetComponent <GameController>();

        controller.PlaySound(controller.EnemyHitSound);
    }
Esempio n. 3
0
 protected override void PatrolDone()
 {
     base.PatrolDone();
     if (state == CapitalistState.PATROL)
     {
         Wander();
     }
     else
     {
         state        = CapitalistState.PATROL;
         targetCereal = null;
         foundCereal  = false;
     }
 }
Esempio n. 4
0
    protected override void Update()
    {
        switch (state)
        {
        case CapitalistState.PATROL:
            if (!foundCereal)
            {
                GameObject[] candidateCereals = GameObject.FindGameObjectsWithTag("Finish");
                if (candidateCereals.Length > 0)
                {
                    int idxChosenCereal = Random.Range(0, candidateCereals.Length);
                    targetCereal = candidateCereals[idxChosenCereal];
                    foundCereal  = true;
                    Seeker seeker = GetComponent <Seeker>();
                    seeker.StartPath(transform.position, targetCereal.transform.position, OnPathComplete);
                }
                moveVector = Vector2.zero;
            }
            else if (path != null)
            {
                Patrol();
            }
            if (Time.time > nextFireTime)
            {
                nextFireTime = Time.time + fireTime;
                if (Random.value <= fireChance)
                {
                    FireProjectile();
                }
            }
            break;

        case CapitalistState.WANDER:
            if (path != null)
            {
                Patrol();
            }
            if (Time.time > nextFireTime)
            {
                nextFireTime = Time.time + fireTime;
                if (Random.value <= fireChance)
                {
                    FireProjectile();
                }
            }
            break;

        case CapitalistState.DOWN:
            moveVector = Vector2.zero;
            if (Time.time > nextStateChangeTime)
            {
                foreach (Collider2D c in GetComponentsInChildren <Collider2D>())
                {
                    c.enabled = true;
                }
                updateSprites = true;
                state         = CapitalistState.WANDER;
                Wander();
            }
            break;
        }
        base.Update();
    }