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(); } }