//The main action of the electric powerup public override void DoMainAction(AuxPowerups AuxillaryPowerups) { IsAuxillary = false; StartCoroutine(MainRoutine()); IEnumerator MainRoutine() { cloudInstance = CreateCloud(); cloudInstance.DoMainAction(); for (float i = 0; i < LifeTime + StrikeTime; i += Time.deltaTime) { cloudInstance.transform.position = transform.TransformPoint(CloudOffset); yield return(null); } DoneUsingPowerup(); } }
//The main action of the fire powerup public override void DoMainAction(AuxPowerups AuxillaryPowerups) { var spawnPosition = transform.TransformPoint(transform.localPosition + spawnOffset); fireballInstance = GameObject.Instantiate(FireballPrefab, spawnPosition, Collector.transform.rotation); Rigidbody fireballBody = fireballInstance.GetComponent <Rigidbody>(); fireballBody.velocity = Collector.transform.forward * fireballVelocity; DoneUsingPowerupAfter(lifeTime); StartCoroutine(Routine()); IEnumerator Routine() { while (true) { yield return(new WaitForSeconds(auxillaryExecutionRate)); AuxillaryPowerups.Execute(this, fireballInstance.transform.position); } } }
//The main action of the water powerup public override void DoMainAction(AuxPowerups AuxillaryPowerups) { SpawnPuddle(normalPuddleSize, transform.position); AuxillaryPowerups.Execute(this, transform.position); DoneUsingPowerup(); }