Example #1
0
    private void Attack()
    {
        if (DistanceFromPlayer() <= 1)
        {
            rotator.FacePoint(player.transform.position);
        }

        switch (weaponEquipped)
        {
        case AttackType.Gun:
            ActionManager.Gun(gameObject, player.transform.position);
            break;

        case AttackType.Frag:
            ActionManager.SpawnProjectile(gameObject, player.transform.position, Projectile.Type.Frag);
            break;

        case AttackType.Gas:
            ActionManager.SpawnProjectile(gameObject, player.transform.position, Projectile.Type.Gas);
            break;
        }

        // ActionManager.Gun(gameObject, player.transform.position);
        attackCooldown = attackRate;
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        // If it sees player, run from player
        if (CanSeePoint(PlayerMover.instance.transform.position) && !stuck)
        {
            lastSawPlayer = Grapher.RoundedVector(PlayerMover.instance.transform.position);
            GetHidingPlace(PlayerMover.instance.transform.position);
            //navigator.Hide(PlayerMover.instance.transform.position);
            lookTowardPlayer = true;
            timeAlone        = 0;
        }
        else if (mover.GetCanTurn())
        {
            timeAlone += Time.deltaTime;

            if (timeAlone > flareDelay && !hasFiredFlare)
            {
                Flare();
            }

            if (glanceTimer > 0)
            {
                glanceTimer -= Time.deltaTime;
            }
            else
            {
                if (lookTowardPlayer)
                {
                    rotator.FacePoint(lastSawPlayer);
                }
                else
                {
                    rotator.Rotate(Random.Range(0, 360));
                }

                lookTowardPlayer = !lookTowardPlayer;
                glanceTimer      = glanceLength;
            }
        }
    }