public override IEnumerator EffectCoroutine(NejikoController controller) { var renderer = controller.GetComponentInChildren <Renderer>(); float timeLeft = Duration; int enemyLayer = (int)Mathf.Log(EnemyLayer.value, 2); Physics.IgnoreLayerCollision(controller.gameObject.layer, enemyLayer, true); bool isShowing = false; //Color originalColor = renderer.material.color; while (timeLeft >= 0) { if (ShouldFlash) { renderer.enabled = isShowing; } //renderer.material.color = isShowing ? Color.red : originalColor; renderer.material.color = Color.Evaluate(timeLeft / Duration); isShowing = !isShowing; timeLeft -= Time.deltaTime; yield return(null); } renderer.material.color = UnityEngine.Color.white; Physics.IgnoreLayerCollision(controller.gameObject.layer, enemyLayer, false); renderer.enabled = true; }
public override IEnumerator EffectCoroutine(NejikoController controller) { float speedToAdd = UseAsMultiplier ? controller.speedZ * Speed - controller.speedZ : Speed; controller.speedZ += speedToAdd; yield return(new WaitForSeconds(Duration)); controller.speedZ -= speedToAdd; }
public abstract IEnumerator EffectCoroutine(NejikoController controller);
public override IEnumerator EffectCoroutine(NejikoController controller) { controller.Life += HealthValue; yield break; }
public override IEnumerator EffectCoroutine(NejikoController controller) { GlobalInfo.GameController.score += score; yield break; }
// Use this for initialization void Start() { NejikoController = m_nejikoController; GameController = m_gameController; }
private void Start() { controller = GetComponent <NejikoController>(); audioPlayer = GetComponent <AudioPlayer>(); }
public void GiveEffect(NejikoController controller) { controller.AddEffect(effect); }