示例#1
0
 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);
         }
     }
 }
示例#2
0
    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;
        }
    }