public void OnJoinedRoom() { if (this.PrefabsToInstantiate != null) { foreach (GameObject o in this.PrefabsToInstantiate) { Debug.Log("Instantiating: " + o.name); Vector3 spawnPos = Vector3.up; if (this.SpawnPosition != null) { spawnPos = this.SpawnPosition.position; } Vector3 random = Random.insideUnitSphere; random.y = 0; random = random.normalized; Vector3 itempos = spawnPos + this.PositionOffset * random; GameObject playerObj = PhotonNetwork.Instantiate(o.name, itempos, Quaternion.identity, 0) as GameObject; CharacterManager_NET charMan = playerObj.GetComponent <CharacterManager_NET>(); charMan.photonView.RPC("SetID", PhotonTargets.AllBuffered, PhotonNetwork.player.ID); } } }
public void TakeDamage(float damage, int playerID, CharacterManager_NET charMan, Transform hitPos, float force) { if (!invulnurable) { if (_teleportToShop.teleportingToShop) { _teleportToShop.StopPlayerRecall(); } if (playerID > 0) //Environmental kills have ID of negative value { for (int i = 0; i < playerManager.Players.Count; i++) { if (charMan.Players[i].playerID == playerID) { lastAttackedByPlayer = charMan.Players[i]; } } } health -= damage * damageAdjuster; healthBar.fillAmount = Mathf.Clamp((float)health / (float)maxHealth, 0, maxHealth); if (health <= 0) { if (lastAttackedByPlayer != null) { lastAttackedByPlayer.ShoutScore(scoreKillAmount, resourceKillAmount); } Die(hitPos, force); } } }
public void Respawn() { lastAttackedByPlayer = null; GameObject go = (GameObject)Instantiate(ragdoll, transform.position, ragdoll.transform.rotation); go.GetComponent <RagdollControl>().PushRagdoll(transform.position, 5.0f); Timing.RunCoroutine(_Die(2.0f)); }
void RespawnOverride(Vector3 hitPos, float force) { lastAttackedByPlayer = null; GameObject go = (GameObject)Instantiate(ragdoll, transform.position, ragdoll.transform.rotation); go.GetComponent <RagdollControl>().PushRagdoll(hitPos, force * 1000f); Timing.RunCoroutine(_Die(2.0f)); }
void OnTriggerExit(Collider other) { CharacterManager_NET player = other.GetComponent <CharacterManager_NET>(); if (_player.Contains(player)) { _player.Remove(player); } }
void OnTriggerEnter(Collider other) { CharacterManager_NET player = other.GetComponent <CharacterManager_NET>(); if (!_player.Contains(player) && player.playerID != spellData.ownerID()) { _player.Add(player); } }
void SetupPlayer(GameObject player) { if (player != null) { CharacterManager_NET charMan = player.GetComponent <CharacterManager_NET>(); charMan.photonView.RPC("SetID", PhotonTargets.AllBuffered, PhotonNetwork.player.ID); charMan.photonView.RPC("SetName", PhotonTargets.AllBuffered, PhotonNetwork.player.NickName); //charMan.photonView.RPC("AddPlayers", PhotonTargets.AllBuffered); } }
void Awake() { teleportControl = GetComponent <TeleportToShop>(); audio = GetComponent <AudioSource>(); playerHealth = GetComponent <PlayerHealth_NET>(); charMananager = GetComponent <CharacterManager_NET>(); m_photonView = GetComponent <PhotonView>(); mousePos = GetComponent <MousePositionScript>(); playerAnim = GetComponent <Animator>(); anim = GetComponent <Animator>(); }
void Start() { canPullTarget = targetTransform.GetComponent <SpellManager>().m_photonView.isMine; if (canPullTarget) { targetRb = targetTransform.GetComponent <Rigidbody>(); charMan = targetTransform.GetComponent <CharacterManager_NET>(); targetHealth = targetTransform.GetComponent <PlayerHealth_NET>(); } Destroy(this.gameObject, duration); }
void Start() { playerManager = GetComponent <CharacterManager_NET>(); myShopping = GetComponent <ShopScript>(); canvas = GameObject.Find("Canvas").GetComponent <Canvas>(); healthbarUI = Instantiate(healthbarUI_prefab) as GameObject; healthBar = healthbarUI.transform.GetChild(0).GetComponent <Image>(); healthbarUI.transform.SetParent(canvas.transform, false); health = maxHealth; myLine = this.GetComponent <LineRenderer>(); setName(); iceBlock.SetActive(false); curseMarker.SetActive(false); playerID = GetComponent <CharacterManager_NET>().playerID; }
void OnTriggerEnter(Collider other) { CharacterManager_NET player = other.GetComponent <CharacterManager_NET>(); if (player.m_PhotonView.isMine) { if (direction == _spellMovement.GetSpellDir()) { if (other.CompareTag("Player") && player.playerID != spellData.ownerID()) { SeekPlayers(other.transform); } } } }
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>()); } } } }
private IEnumerator <float> _TakeDamageOverTime(int amountOfTicks, float damage, float timeBetweenTicks, CharacterManager_NET charMan, int playerID) { for (int i = 0; i < amountOfTicks; i++) { TakeDamage(damage, playerID, charMan); if (_teleportToShop.teleportingToShop) { _teleportToShop.StopPlayerRecall(); } yield return(Timing.WaitForSeconds(timeBetweenTicks)); } }
public void TakeDamageOverTime(int amountOfTicks, float damage, float timeBetweenTicks, CharacterManager_NET charMan, int playerID) { Timing.RunCoroutine(_TakeDamageOverTime(amountOfTicks, damage, timeBetweenTicks, charMan, playerID)); }
public void Impact(Collider other) { if (other.CompareTag("Ability")) { if (spellData.ownerID() == other.GetComponent <SpellData>().ownerID()) { return; } spellData.owner.SendAbilityHit(spellData.InstantiateID(), true, true); spellData.AbilityImpactEffect(); Destroy(this.gameObject); } else if (other.CompareTag("Environmental")) { spellData.owner.SendAbilityHit(spellData.InstantiateID(), true, true); spellData.AbilityImpactEffect(); Destroy(this.gameObject); } else if (other.CompareTag("Player")) { CharacterManager_NET player = other.GetComponent <CharacterManager_NET>(); if (player.m_PhotonView.isMine) { if (player.playerID != spellData.ownerID()) { 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 (canPush) { Push(other.GetComponent <Rigidbody>(), spellData.knockbackForce(), false); } if (canFreeze) { other.GetComponent <PlayerHealth_NET>().Freeze(spellData.freezeDuration()); } if (canSlow) { other.GetComponent <PlayerMovement>().slowPlayerMovementSpeed(spellData.slowMovementSpeed(), spellData.slowDuration()); } if (canLifeSteal) { spellData.owner.GetComponent <PlayerHealth_NET>().AddLife(spellData.damage() * spellData.lifeStealAmount()); } if (canCurse) { player.playerHealth().Curse(spellData.curseDuration(), spellData.curseDmgAdjuster()); } if (canSwapPos) { Vector3 hitPlayerPos = other.transform.position; spellData.owner.charMananager.SetPlayerPosition(spellData.owner.transform.position, player.playerID); spellData.owner.charMananager.SetPlayerPosition(hitPlayerPos, spellData.ownerID()); } spellData.owner.SendAbilityHit(spellData.InstantiateID(), true, true); if (destroyOnImpact) { Destroy(this.gameObject); } spellData.AbilityImpactEffect(); } else { return; } } } }
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(); } }