public void ApplyEffect(GameObject enemy) { if (enemy.tag == "Player") { SpellStateManager player = enemy.GetComponent <SpellStateManager>(); SetEffectOnPlayer(player); if (spriteEffect) { GameObject e = Instantiate(spriteEffect, enemy.transform.position + new Vector3(0, 0.5f), Quaternion.identity, enemy.transform); e.GetComponent <SpellEffectDestroyer>().SetTimer(duration); } } }
private void SetEffectOnPlayer(SpellStateManager player) { switch (type) { case EffectType.Burn: player.Burn(duration); break; case EffectType.Freeze: player.Freeze(duration); break; case EffectType.Pull: Vector2 pullDirection = (Vector2)GetComponent <Spell>().mageOwner.transform.position; player.Pull(pullDirection); break; case EffectType.Throw: player.Throw(30f); break; case EffectType.Stun: player.Freeze(duration); break; case EffectType.Bubble: GameObject go = Instantiate(new GameObject("Bubble")); Bubble b = go.AddComponent <Bubble>(); b.trapInBubble(player.gameObject.transform.position, duration); player.Drag(b.getBubble(), duration); break; case EffectType.Hammer: player.Hammerfall(); break; default: break; } }