public void AddPlayers()
 {
     GameObject[] playersInScene = GameObject.FindGameObjectsWithTag("Player");
     for (int i = 0; i < playersInScene.Length; i++)
     {
         CharacterManager_NET player = playersInScene[i].GetComponent <CharacterManager_NET>();
         if (!Players.Contains(player))
         {
             Players.Add(player);
             if (!SpawnManager.Instance.Players.Contains(player.GetComponent <PlayerHealth_NET>()))
             {
                 SpawnManager.Instance.Players.Add(player.GetComponent <PlayerHealth_NET>());
             }
         }
     }
 }
    public void impactNearbyEnemies(Vector3 origin, bool isDistanceBased, float radius, SpellData spellData)
    {
        Collider[] hitCols = Physics.OverlapSphere(origin, radius, mask);
        if (hitCols.Length > 0)
        {
            foreach (Collider col in hitCols)
            {
                CharacterManager_NET player = col.GetComponent <CharacterManager_NET>();

                if (player.playerID != spellData.ownerID())
                {
                    if (player.m_PhotonView.isMine)
                    {
                        if (canPush)
                        {
                            Push(player.GetComponent <Rigidbody>(), false, spellData);
                        }

                        if (canFreeze)
                        {
                            player.playerHealth().Freeze(spellData.freezeDuration());
                        }

                        if (canCurse)
                        {
                            player.playerHealth().Curse(spellData.curseDuration(), spellData.curseDmgAdjuster());
                        }

                        if (canSlow)
                        {
                            player.GetComponent <PlayerMovement>().slowPlayerMovementSpeed(spellData.slowMovementSpeed(), spellData.slowDuration());
                        }

                        if (canLifeSteal)
                        {
                            spellData.owner.GetComponent <PlayerHealth_NET>().AddLife(spellData.damage() * spellData.lifeStealAmount());
                        }

                        switch (damageType)
                        {
                        case DamageType.DOT:
                            player.playerHealth().TakeDamageOverTime(amountOfTicks, spellData.damage(), timeBetweenTicks, player, spellData.ownerID());
                            break;

                        case DamageType.Instant:
                            player.playerHealth().TakeDamage(spellData.damage(), spellData.ownerID(), player, transform, spellData.knockbackForce());
                            break;

                        case DamageType.None:
                            break;
                        }
                    }
                }
            }
        }

        if (screenshake)
        {
            ScreenEffects.Instance.screenShake();
        }
    }