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)); } }
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; }
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; }
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; } }