protected override IEnumerator Charge() { isCharging = true; if (!CheckIfFriendly()) { if (refManager.GetType() == typeof(AIReferenceManager)) { AIReferenceManager tempManager = (AIReferenceManager)refManager; tempManager.ai.StopAgent(); } } yield return(new WaitForSeconds(chargeTime)); if (!CheckIfFriendly()) { if (refManager.GetType() == typeof(AIReferenceManager)) { AIReferenceManager tempManager = (AIReferenceManager)refManager; tempManager.ai.StartAgent(); } } isCharging = false; if (!isFiring) { StartCoroutine(Firing()); } }
protected override void Start() { base.Start(); AIReferenceManager aiRefManager = (AIReferenceManager)refManager; ResetSpawnpoints(); for (int i = 0; i < aiRefManager.currentChallengeTier.spawnCount; i++) { beams.Add(Instantiate(beamPrefab)); Transform spawnPosition = GetSpawnPosition(); UpdateTransform(beams[i].transform, spawnPosition); beams[i].Initialize(initialDamage, refManager.enemyTag.ToString(), refManager.friendlyTag.ToString(), afterEffects, spawnPosition); beams[i].gameObject.SetActive(false); } }
protected override void OnEnable() { base.OnEnable(); ai = GetComponent <StatusEffects>(); aiRefManager = refManager as AIReferenceManager; if (aiRefManager.currentChallengeTier) { health = aiRefManager.currentChallengeTier.health; } foreach (Limb limb in transform.GetComponentsInChildren <Limb>()) { limbs.Add(limb); } }
public override void InitializeAbilityStats(Ability _ability) { SustainedHealingAI ability = _ability as SustainedHealingAI; for (int i = 0; i < ability.beams.Count; i++) { SustainedHealing sustainedHealing = ability.beams[i] as SustainedHealing; sustainedHealing.range = range; ability.refManager.stats.personalSpaceRange = range - 2; AIReferenceManager refManager = ability.refManager as AIReferenceManager; refManager.ai.agent.stoppingDistance = range - 2; sustainedHealing.healAmount = healAmount; sustainedHealing.effectFrequency = healingFrequency; sustainedHealing.transform.root.GetComponent <NavMeshAgent>().speed = speed; } }