//Called when script has recieved all network data void Awake() { object[] data = photonView.instantiationData; team = data[0].ToString(); myOriginator = data[1].ToString(); floorPos = (Vector3)data[2]; destinationGameObj = GameObject.Find(data[3].ToString()); ad = (float)data[4]; ap = (float)data[5]; initialPos = transform.position; originatorGameObj = GameObject.Find(myOriginator); originatorCharName = originatorGameObj.GetComponent <PlayerStats>().charName; spellActive = true; if (team == "red") { mask = ((1 << 16) | (1 << 21)); } else { mask = ((1 << 17) | (1 << 21)); } OnStart(); StartCoroutine(DestroyMyselfAfterSomeTime()); }
void AddCaptureSlainEvent(CharacterClass.charName charKiller, string killerName, CharacterClass.charName charSlain, string slainName) { SlainEvent capture = new SlainEvent(); capture.killerName = killerName; capture.slainName = slainName; for (int i = 0; i < charPortraits.Count; i++) { if (charPortraits[i].charName == charKiller) { capture.killerSprite = charPortraits[i].charPortrait; } if (charPortraits[i].charName == charSlain) { capture.slainSprite = charPortraits[i].charPortrait; } killerText.text = killerName; slainText.text = slainName; } slainEventList.Add(capture); }
//INITIAL DATA SENT FROM THE PLAYERSPELL SCRIPT void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { string pTeam = info.networkView.initialData.ReadString(); string pOriginator = info.networkView.initialData.ReadString(); Vector3 pDestination = info.networkView.initialData.ReadVector3(); string pObjNameDestination = info.networkView.initialData.ReadString(); float pAd = info.networkView.initialData.ReadSingle(); float pAp = info.networkView.initialData.ReadSingle(); floorPos = pDestination; myOriginator = pOriginator; team = pTeam; ad = pAd; ap = pAp; initialPos = transform.position; originatorGameObj = GameObject.Find(pOriginator); originatorCharName = originatorGameObj.GetComponent <PlayerStats>().charName; destinationGameObj = GameObject.Find(pObjNameDestination); spellActive = true; if (team == "red") { mask = ((1 << 16) | (1 << 21)); } else { mask = ((1 << 17) | (1 << 21)); } OnStart(); StartCoroutine(DestroyMyselfAfterSomeTime()); }
public void DrainHealth(float _ad, float _ap, string attacker, string originatorTag, string originatorCharName) { Debug.Log("Draining Health on this view"); GameObject originatorObj = GameObject.Find(attacker); if (!destroyed) { myHealth = myHealth - GetFinalDmg(_ad, _ap, adRes + adResAdd, apRes + apResAdd); if (originatorObj.tag == "RedPlayerTag" || originatorObj.tag == "BluePlayerTag") { AddCaptureAttackers(attacker, originatorObj, Time.time); } } if (myHealth <= 0 && destroyed == false) { photonView.RPC("ImDead", PhotonTargets.All); myHealth = 0; destroyed = true; for (int i = 0; i < dataScript.PlayerList.Count; i++) { if (dataScript.PlayerList[i].playerName == attacker) { //show dmg photonView.RPC("ShowGoldUi", dataScript.PlayerList[i].networkPlayer, this.transform.name, attacker, goldToGive, true); } } for (int i = 0; i < attackersList.Count; i++) // Loop with for. { attackersList[i]._Obj.GetComponent <PlayerStats>().UpdateExpToClients(expToGive / attackersList.Count); attackersList[i]._Obj.GetComponent <PlayerStats>().UpdateGoldToClients(goldToGive / attackersList.Count); } if (gameObject.tag == "RedPlayerTag" || gameObject.tag == "BluePlayerTag") { //call the method SendSlainAlert(); on GAME MANAGER CharacterClass.charName thisCharName = GetComponent <PlayerStats>().stats.characterName; gameManager.GetComponent <GameEvents>().SendSlainAlert(originatorCharName, attacker, thisCharName.ToString(), this.gameObject.name); } if (originatorTag == "RedPlayerTag" || originatorTag == "BluePlayerTag") { //If the reciever is a player if (gameObject.tag == "RedPlayerTag" || gameObject.tag == "BluePlayerTag") { dataScript.EditPlayerListWithScore(attacker); PlayerStats originatorPlayerScript = originatorObj.GetComponent <PlayerStats>(); originatorPlayerScript.AddPlayerKills(); } else { //ADD HERE THE CODE IF YOU KILL A MONSTER /TOWER / MINION } } } }
void AddCharToList(CharacterClass.charName charName, bool _available, string charPortraitDir, string charPrefabDir, string toolTip) { Char_Pick_DataClass capture = new Char_Pick_DataClass(); capture.characterName = charName; capture._available = _available; capture.charPortraitDir = charPortraitDir; capture.toolTip = toolTip; capture.charPrefabDir = charPrefabDir; charPickList.Add(capture); }
public void SpawnRedTeamPlayer(PhotonPlayer Owner, string PrefabDir, CharacterClass.charName charName) { redSpawnPoints = GameObject.FindGameObjectsWithTag("SpawnRed"); GameObject randomRedSpawn = redSpawnPoints[Random.Range(0, redSpawnPoints.Length)]; //GameObject player = (GameObject)uLink.Network.Instantiate(Owner, PrefabDir+ "Owner_mn",PrefabDir+ "Owner_mn",PrefabDir+ "Creator_mn", randomRedSpawn.transform.position, randomRedSpawn.transform.rotation, 0); GameObject player = (GameObject)PhotonNetwork.Instantiate(PrefabDir + "Owner_mn", randomRedSpawn.transform.position, randomRedSpawn.transform.rotation, 0); //player.name = PhotonNetwork.playerName; //player.layer = 9; //player.tag = "RedPlayerTag"; //GameObject Trigger = player.transform.FindChild("Trigger").gameObject; //Trigger.tag = "RedPlayerTriggerTag"; //Trigger.layer = 17; playerStatsScript = player.GetComponent <PlayerStats>(); playerStatsScript.name = player.name; //playerStatsScript.gameObject.name = player.name; playerStatsScript.SetPlayerData(PhotonNetwork.playerName, "red"); playerStatsScript.networkOwner = Owner; //playerStatsScript.UpdateStatsOnClients(); //ADD THE CURRENT PLAYER NETWORKPLAYER, THE TEAM, AND THE GAMEOBJECT TO THE PLAYERDATABASE SCRIPT ON THE GAME MANAGER GAMEOBJECT dataScript.AddPlayerDataToList(player.name, "red"); }
public void SpawnBlueTeamPlayer(uLink.NetworkPlayer Owner, string PrefabDir, CharacterClass.charName charName) { blueSpawnPoints = GameObject.FindGameObjectsWithTag("SpawnBlue"); GameObject randomBlueSpawn = blueSpawnPoints[Random.Range(0, blueSpawnPoints.Length)]; GameObject player = (GameObject)uLink.Network.Instantiate(Owner, PrefabDir + "Owner_mn", PrefabDir + "Owner_mn", PrefabDir + "Creator_mn", randomBlueSpawn.transform.position, randomBlueSpawn.transform.rotation, 0); player.name = dataScript.GetPlayerName(Owner); player.layer = 9; player.tag = "BluePlayerTag"; GameObject Trigger = player.transform.FindChild("Trigger").gameObject; Trigger.tag = "BluePlayerTriggerTag"; Trigger.layer = 16; playerStatsScript = player.GetComponent <PlayerStats>(); playerStatsScript.name = player.name; playerStatsScript.gameObject.name = player.name; playerStatsScript.playerTeam = "blue"; playerStatsScript.networkOwner = Owner; playerStatsScript.UpdateStatsOnClients(); //ADD THE CURRENT PLAYER NETWORKPLAYER, THE TEAM, AND THE GAMEOBJECT TO THE PLAYERDATABASE SCRIPT ON THE GAME MANAGER GAMEOBJECT dataScript.AddPlayerDataToList(Owner, "blue", player); }
public void SendSlainAlertToClient(CharacterClass.charName charKiller, string killerName, CharacterClass.charName charSlain, string slainName) { AddCaptureSlainEvent(charKiller, killerName, charSlain, slainName); }
public void SendSlainAlert(CharacterClass.charName charKiller, string killerName, CharacterClass.charName charSlain, string slainName) { networkView.RPC("SendSlainAlertToClient", uLink.RPCMode.Others, charKiller, killerName, charSlain, slainName); }
//USED TO DRAIN HEALTH ON ANY PLAYER OR ENEMYS public void DrainHealth(float _ad, float _ap, string attacker, GameObject originatorObj, string originatorTag, CharacterClass.charName originatorCharName) { if (!destroyed) { myHealth = myHealth - GetFinalDmg(_ad, _ap, adRes + adResAdd, apRes + apResAdd); if (originatorObj.tag == "RedPlayerTag" || originatorObj.tag == "BluePlayerTag") { AddCaptureAttackers(attacker, originatorObj, Time.time); } UpdateHealthClients(); } if (myHealth <= 0 && destroyed == false && uLink.Network.isServer == true) { myHealth = 0; destroyed = true; for (int i = 0; i < dataScript.PlayerList.Count; i++) { if (dataScript.PlayerList[i].playerName == attacker) { networkView.RPC("ShowGoldUi", dataScript.PlayerList[i].networkPlayer, this.transform.name, attacker, goldToGive, true); } } for (int i = 0; i < attackersList.Count; i++) // Loop with for. { attackersList[i]._Obj.GetComponent <PlayerStats>().UpdateExpToClients(expToGive / attackersList.Count); attackersList[i]._Obj.GetComponent <PlayerStats>().UpdateGoldToClients(goldToGive / attackersList.Count); } if (gameObject.tag == "RedPlayerTag" || gameObject.tag == "BluePlayerTag") { //call the method SendSlainAlert(); on GAME MANAGER CharacterClass.charName thisCharName = GetComponent <PlayerStats>().charName; gameManager.GetComponent <GameEvents>().SendSlainAlert(originatorCharName, attacker, thisCharName, this.gameObject.name); } if (originatorTag == "RedPlayerTag" || originatorTag == "BluePlayerTag") { //If the reciever is a player if (gameObject.tag == "RedPlayerTag" || gameObject.tag == "BluePlayerTag") { dataScript.EditPlayerListWithScore(attacker); PlayerStats originatorPlayerScript = originatorObj.GetComponent <PlayerStats>(); originatorPlayerScript.kills++; if (originatorPlayerScript.playerExp >= originatorPlayerScript.maxPlayerExp) { originatorPlayerScript.ShowAbilityUpUi(); originatorPlayerScript.playerLvl++; originatorPlayerScript._bAdValue += 5; originatorPlayerScript._bApValue += 5; originatorPlayerScript.maxHealth += 25; originatorPlayerScript.playerExp = 0; originatorPlayerScript.UpdateStatsOnClients(); } } else //If the reciever is not a player { //dataScript.EditPlayerListWithScore(attacker, 1); PlayerStats originatorPlayerScript = originatorObj.GetComponent <PlayerStats>(); if (originatorPlayerScript.playerExp >= originatorPlayerScript.maxPlayerExp) { originatorPlayerScript.ShowAbilityUpUi(); originatorPlayerScript.playerLvl++; originatorPlayerScript._bAdValue += 8; originatorPlayerScript._bApValue += 8; originatorPlayerScript.maxHealth += 25; originatorPlayerScript.playerExp = 0; originatorPlayerScript.UpdateStatsOnClients(); } } } networkView.RPC("ImDead", uLink.RPCMode.All); } }