Esempio n. 1
0
    private void CheckWanderState()
    {
        if (nextChargeReady)
        {
            List <GameObject> enemies = GameManager.instance.enemyGenerator.enemies;
            if (enemies.Count > 0)
            {
                target      = enemies[Random.Range(0, enemies.Count)];
                agent.speed = speed.max;
                state       = RamNPCState.CHARGE;

                if (!stompVFX.isPlaying)
                {
                    stompVFX.Play();
                }

                attacker.SetEnableAttack(true);
                damageable.m_canBeKilled = false;
            }
        }
        if (agent.remainingDistance <= 0.1f)
        {
            agent.SetDestination(Tools.RandomPointOnCircle(wanderingDistanceFromCampfire));
        }
    }
Esempio n. 2
0
    private void Start()
    {
        damageable.m_onHealEvent.AddListener(HealVFX);

        wanderingDistanceFromCampfire.max = GameManager.instance.zoneRadius - 1.0f;

        agent.SetDestination(Tools.RandomPointOnCircle(wanderingDistanceFromCampfire));
        agent.speed = speed.min;
        state       = RamNPCState.WANDER;
        attacker.SetEnableAttack(false);
        damageable.m_canBeKilled = true;
    }
Esempio n. 3
0
    public void OrderToAttack(GameObject givenTarget)
    {
        if (currentChargeCooldownCoroutine != null)
        {
            StopCoroutine(currentChargeCooldownCoroutine);
        }

        target      = givenTarget;
        agent.speed = speed.max;
        state       = RamNPCState.CHARGE;

        if (!stompVFX.isPlaying)
        {
            stompVFX.Play();
        }

        attacker.SetEnableAttack(true);
        damageable.m_canBeKilled = false;
    }
Esempio n. 4
0
    private void CheckChargeState()
    {
        if (agent.remainingDistance <= 0.1f)
        {
            currentChargeCooldownCoroutine = StartCoroutine(ChargeCooldownCoroutine());

            agent.SetDestination(Tools.RandomPointOnCircle(wanderingDistanceFromCampfire));
            agent.speed = speed.min;
            state       = RamNPCState.WANDER;

            if (stompVFX.isPlaying)
            {
                stompVFX.Stop();
            }

            attacker.SetEnableAttack(false);
            damageable.m_canBeKilled = true;
        }
    }