//Uses psinfo to generate player score grid. public void Initialize(PlayerServerInfo psInfo){ this.psInfo = psInfo; foreach(NetworkPlayer player in psInfo.players){ GameObject scoreUI = NGUITools.AddChild(scoresGrid.gameObject, PlayerScorePrefab) as GameObject; scoreUI.transform.localEulerAngles = new Vector3(0f, 0f, 3f); string playerName = psInfo.GetPlayerOptions(player).username; scoreUI.GetComponent<UILabel>().text = playerName; entries.Add(player, scoreUI); } }
//Uses psinfo to generate player score grid. public void Initialize(PlayerServerInfo psInfo, float lives){ this.psInfo = psInfo; foreach(NetworkPlayer player in psInfo.players){ GameObject livesUI = NGUITools.AddChild(livesGrid.gameObject, PlayerLivesPrefab) as GameObject; livesUI.transform.localEulerAngles = new Vector3(0f, 0f, 3f); GameObject childLabel = livesUI.transform.GetChild(0).gameObject; childLabel.GetComponent<UILabel>().text = lives.ToString(); GameObject playeravatar = childLabel.transform.GetChild(0).gameObject; var playertype = ColorCheck(psInfo.GetPlayerOptions(player).style); var playerchar = psInfo.GetPlayerOptions(player).character; DetermineColor(playertype, playerchar, playeravatar); entry.Add(player, livesUI); } }
//On Level Loaded tries to spawn the labels of player scores. void OnNetworkLoadedLevel(){ sessionManager = GameObject.FindWithTag ("SessionManager").GetComponent<SessionManager>(); infoscript = sessionManager.psInfo; var listed = infoscript.players; print(listed); print(listed.Count); print(infoscript.GetPlayerStats(listed[0]).roundScore); if(sessionManager.matchfinish){ timeleft = 12; timeLabelDescription = "Returning to Lobby: "; var timelabel = (GameObject)Instantiate(TimeLabel, new Vector2(0,0), transform.rotation); timelabel.transform.parent = GameObject.Find("UI Root").transform; timelabel.transform.localScale = new Vector3(1,1,1); timelabel.transform.localPosition = new Vector2 (-590,285); timeLabelReference = timelabel; } else { timeleft = 6; timeLabelDescription = "Next Round in: "; var timelabel = (GameObject)Instantiate (TimeLabel, new Vector2 (0, 0), transform.rotation); timelabel.transform.parent = GameObject.Find ("UI Root").transform; timelabel.transform.localScale = new Vector3(1,1,1); timelabel.transform.localPosition = new Vector2 (-590,285); timeLabelReference = timelabel; } print (winningscore); //If the Match is finished check who was the winner and set up tie logic if(sessionManager.matchfinish){ for(int v = 0; v < listed.Count; v++){ var score = infoscript.GetPlayerStats(listed[v]).totalScore; if(score > winningscore){ winningscore = score; winningplayer = listed[v]; if(tie){ firsttie = false; } tie = false; tielist.Clear(); } else if(score == winningscore) { if(firsttie){ tie = true; if(winningplayer == listed[v]){ tielist.Add(winningplayer); } else { tielist.Add(winningplayer); tielist.Add(listed[v]); } firsttie = false; } else { tielist.Add(listed[v]); tie = true; } } } } //Calculate scores for each player for(int i = 0; i < listed.Count; i++){ var roundscore = infoscript.GetPlayerStats(listed[i]).roundScore; var totalscore = infoscript.GetPlayerStats(listed[i]).totalScore; PowerType lastdeath = PowerType.UNDEFINED; PlayerStats stats = infoscript.GetPlayerStats(listed[i]); //only want last event if player died. if(!stats.lived){ lastdeath = stats.LastEvent().PowerType; } var playername = infoscript.GetPlayerOptions(listed[i]).username; var playermodel = infoscript.GetPlayerOptions(listed[i]).character; var playercolor = infoscript.GetPlayerOptions(listed[i]).style; var playernumber = i + 1; ShowScoresLocally(roundscore, totalscore, playername, playernumber, playercolor, lastdeath, playermodel); } //Wipes scores in playerstats after displaying them if the game is over. if(sessionManager.matchfinish){ for(int z = 0; z < listed.Count; z++){ infoscript.GetPlayerStats(listed[z]).totalScore = 0; } sessionManager.matchfinish = false; } }
void MatchFinish(PlayerServerInfo infoscript){ //make new time label for end match var timelabel = (GameObject)Instantiate(TimeLabel, new Vector2(0,0), transform.rotation); timelabel.transform.parent = GameObject.Find("UI Root").transform; timelabel.transform.localScale = new Vector3(1,1,1); timelabel.transform.localPosition = new Vector2 (125,-320); timeLabelReference = timelabel; if(tie){ print ("tielength" + tielist.Count); var tielabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); tielabel.transform.parent = GameObject.Find ("UI Root").transform; tielabel.transform.localScale = new Vector3(1,1,1); tielabel.transform.localPosition = new Vector2(-300, 300); var tietext = tielabel.GetComponent<UILabel>(); tietext.text = "TIE!"; var currplayers = infoscript.players; for(int i = 0; i < currplayers.Count; i++){ if(tielist[i] == currplayers[i]){ var playername = infoscript.GetPlayerOptions(tielist[i]).username; var playercolor = infoscript.GetPlayerOptions(tielist[i]).style; var playeravatar = infoscript.GetPlayerOptions(tielist[i]).character; var playerclr = ColorCheck(playercolor); var playericon = DetermineColorEnd(playerclr, playeravatar); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1, 1, 1); playerlabel.transform.localPosition = new Vector2(-300, 150+(-150*gonethrough)); var playertext = playerlabel.GetComponent<UILabel>(); playertext.text = playername; playericon.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.localScale = new Vector3(100,100,1); playericon.transform.localPosition = new Vector2(-500, 150+(-150 * gonethrough)); gonethrough++; } else { var playername = infoscript.GetPlayerOptions(tielist[i]).username; var playercolor = infoscript.GetPlayerOptions(tielist[i]).style; var playeravatar = infoscript.GetPlayerOptions(tielist[i]).character; var playerclr = ColorCheck(playercolor); var playericon = DetermineColorEnd(playerclr, playeravatar); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1, 1, 1); playerlabel.transform.localPosition = new Vector2(400, 150+(-150*tiethrough)); var playertext = playerlabel.GetComponent<UILabel>(); playertext.text = playername; playericon.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.localScale = new Vector3(100,100,1); playericon.transform.localPosition = new Vector2(300, 150+(-150 * tiethrough)); tiethrough++; } } } else { var currplayers = infoscript.players; var loselabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); loselabel.transform.parent = GameObject.Find ("UI Root").transform; loselabel.transform.localScale = new Vector3(1,1,1); loselabel.transform.localPosition = new Vector2(300, 300); var losetext = loselabel.GetComponent<UILabel>(); losetext.text = "LOSERS"; for(int i = 0; i < currplayers.Count; i++){ if(currplayers[i] == winningplayer){ var playername = infoscript.GetPlayerOptions(winningplayer).username; var playercolor = infoscript.GetPlayerOptions(winningplayer).style; var playertype = infoscript.GetPlayerOptions(winningplayer).character; var playerclr = ColorCheck(playercolor); GameObject playericon; playericon = DetermineColorEnd(playerclr, playertype); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); var winlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.parent = GameObject.Find ("UI Root").transform; winlabel.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1, 1, 1); playericon.transform.localScale = new Vector3(300,300,1); winlabel.transform.localScale = new Vector3(1,1,1); playerlabel.transform.localPosition = new Vector2(-400, 350+(-500)); playericon.transform.localPosition = new Vector2(-400, 350+(-300)); winlabel.transform.localPosition = new Vector2(-400, 350+(-100)); var playertext = playerlabel.GetComponent<UILabel>(); var wintext = winlabel.GetComponent<UILabel>(); playertext.text = playername; wintext.text = "WINNER!"; } else { var playername = infoscript.GetPlayerOptions(currplayers[i]).username; var playercolor = infoscript.GetPlayerOptions(currplayers[i]).style; var playertype = infoscript.GetPlayerOptions(currplayers[i]).character; var playerclr = ColorCheck(playercolor); GameObject playericon; playericon = DetermineColor(playerclr, playertype); var playerlabel = (GameObject)Instantiate(WinLabel, new Vector2(0,0), transform.rotation); playerlabel.transform.parent = GameObject.Find ("UI Root").transform; playericon.transform.parent = GameObject.Find ("UI Root").transform; playerlabel.transform.localScale = new Vector3(1f, 1f, 1); playericon.transform.localScale = new Vector3(100,100,1); playerlabel.transform.localPosition = new Vector2(200, 150+(-200 * gonethrough)); playericon.transform.localPosition = new Vector2(400, 150+(-200 * gonethrough)); var playertext = playerlabel.GetComponent<UILabel>(); playertext.text = playername; gonethrough++; } } } }