//function used for networking that compiles stats and destroys dead player objects public int reducePlayers(GameObject player) { numberAlive--; if (numberAlive > 0) { player.GetComponent <LocalPlayerScript>().removeMeter(); player.GetComponent <LocalPlayerScript>().cancelSuperAnimation(); Destroy(player); if (numberAlive == 1) { NetworkedPlayerScript winningPlayer = GameObject.FindGameObjectWithTag("Player").GetComponent <NetworkedPlayerScript>(); winner = winningPlayer.getPlayerType(); Debug.Log(winner); if (winningPlayer.getHasAuthority()) { winningPlayer.compileData(); } } } else { displayResults(); } return(numberOfPlayers); }
void Start() { //playerParentScript = GameObject.FindWithTag("PlayerParent").GetComponent<PlayerParentScript>(); networkedPScript = GetComponent <NetworkedPlayerScript>(); countdownText = GUIManagerScript.countdownText; sliderText = GUIManagerScript.sliderText; infoText = GUIManagerScript.infoText; // Assigned GUI elements based on finalScoreText = GUIManagerScript.finalScoreText; answerText = GUIManagerScript.answerText; noGuessText = GUIManagerScript.noGuessText; listeningToText = GUIManagerScript.listeningToText; detailsText = GUIManagerScript.detailsText; continuingInText = GUIManagerScript.continuingInText; playerPickedBtn = GUIManagerScript.playerPickedBtn; lookingForBtn = GUIManagerScript.lookingForBtn; answerParent = GUIManagerScript.answerParent; lookingForParent = GUIManagerScript.lookingForParent; Application.runInBackground = true; // Disable screen dimming Screen.sleepTimeout = SleepTimeout.NeverSleep; }
private void Update() { if (health > maxHealth) { health = maxHealth; } // Healthbar healthBar.transform.forward = Vector3.up; //healthBar.transform.position = transform.position + Vector3.forward; healthBar.localScale = new Vector3(((health * 100) / maxHealth) * 0.005f, 0.2f, 1); Collider[] hitColliders = Physics.OverlapSphere(transform.position, range); for (int i = 0; i < hitColliders.Length; i++) { GameObject temp = hitColliders[i].gameObject; //if (temp.tag == "Player" && temp.GetComponent<NetworkedPlayerScript>().netId != netId && temp.GetComponent<NetworkedPlayerScript>().isAI) if (temp.tag == "Player") { target = temp.GetComponent <NetworkedPlayerScript>(); } } if (target && Vector3.Distance(shootingPosition.position, target.transform.position) < range) { target.RpcResolveHit(0.5f); lineRenderer.enabled = true; light.enabled = true; lineRenderer.SetPosition(1, target.transform.position); } else { lineRenderer.enabled = false; light.enabled = false; target = null; } }
public void BackButtonPressed() { // Oops, let's reset the match ID networkedPScript.CmdResetMatchSongID(); List <CaptainsMessPlayer> players = networkedPScript.GetPlayers(); int size = players.Count; foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (!nps.isLocalPlayer) { nps.playerButton.SetActive(true); nps.playerButton.GetComponent <Button>().interactable = true; Vector3 goal = player.GetComponent <RemotePlayerScript>().GetPosition(); nps.playerButton.transform.DOLocalMove(goal, nps.fastMovementSpeed); nps.playerButton.transform.DOScale(Vector3.one, nps.fastMovementSpeed); } else { nps.playerParent.GetComponent <RectTransform>().sizeDelta = new Vector2(160 * (size + 1), 340); } } GUIManagerScript.SetBackButton(false); }
private static void NumberInputProcessed(bool del) { GameObject player = GameObject.Find("LOCAL Player"); NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); bool shouldClear = true; if (numberTextField.text != null) { int input = -1; if (System.Int32.TryParse(numberTextField.text, out input)) { if (nps.GetColor() != input) { if (nps.DoesPlayerNumberExist(input) != -1) { GUIManagerScript.SetNumberInputFieldColor(ColorScript.GetColor(input), true); shouldClear = false; } } } } if (shouldClear) { Color clr = ColorScript.GetColor(nps.GetColor()); clr = clr * 0.5f; GUIManagerScript.SetNumberInputFieldColor(clr); if (del) { GUIManagerScript.ClearNumberInput(); } } }
public void RpcReplayGame() { List <CaptainsMessPlayer> players = GetPlayers(); int size = players.Count; foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (!nps.isLocalPlayer) { nps.playerButton.SetActive(true); } nps.playerButton.GetComponent <Button>().interactable = false; Vector3 goal = player.GetComponent <RemotePlayerScript>().GetPosition(); //Move there /* * nps.playerButton.transform.DOLocalMove(goal, nps.fastMovementSpeed); * nps.playerButton.transform.DOScale(Vector3.one, nps.fastMovementSpeed); */ //Insta go there nps.playerButton.transform.localPosition = goal; nps.playerButton.transform.localScale = Vector3.one; } playerParent.GetComponent <RectTransform>().sizeDelta = new Vector2(170, 120 * (size)); SetReady(true); //Auto advance }
public void CmdStartGame() { if (mess.AreAllPlayersReady()) //Redundant? { List <CaptainsMessPlayer> players = GetPlayers(); int length = players.Count; Assert.IsTrue(length >= 4, "There must be >=4 players!"); int numSongsToPick = (length / 2); List <int> songs = new List <int>(); //List of the songID's we'll use this game. int numberOfSongs = AudioManagerScript.instance.GetNumSongs(); for (int i = 0; i < numSongsToPick; i++) { int rand; do { rand = Random.Range(0, numberOfSongs); }while (songs.Contains(rand)); songs.Add(rand); } List <int> playerSongChoice = new List <int>(); // Final list will pull from // Remember, final list will have at least 2 of every choice! int j = 0; if (length % 2 != 0) { j = -1; } for (int k = 0; k < length; k++) { if (j == -1) { playerSongChoice.Add(songs[Random.Range(0, numSongsToPick)]); } else { playerSongChoice.Add(songs[(int)(j / 2)]); } j++; } foreach (CaptainsMessPlayer player in players) { //Recycle local J variable, don't care about last value j = Random.Range(0, playerSongChoice.Count); NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); //Tell the player which song they got nps.RpcStartGame(playerSongChoice[j]); //Remove that entry from list. playerSongChoice.RemoveAt(j); } } //Close if statement for checking if all players ready }
public override void OnLobbyServerSceneLoadedForPlayer(NetworkManager manager, GameObject lobbyPlayer, GameObject gamePlayer) { LobbyPlayer lobby = lobbyPlayer.GetComponent <LobbyPlayer>(); NetworkedPlayerScript player = gamePlayer.GetComponent <NetworkedPlayerScript>(); player.playerName = lobby.playerName; player.playerColour = lobby.playerColor; }
public void RpcStartGame(int s) { songID = s; scored_ThisRound = 0; scored_TimeBonus = 0; scored_FirstBonus = false; scored_WasGuessed = false; //playerParent.GetComponent<PlayerParentScript>().Unlock(); // Bullshit code. Temp? Maybe not? // What if player WAS ready, but now that we're actually starting they are no longer? // Too late for them! Let's double check if (!ready) { Assert.IsFalse(ready, "Player wasn't ready, but the server thought they were!"); // Oh noes! What do we do? Let's cheat: SetReady(true); // See buddy, you were ready the whole time, right? } ResetMatch(); if (isLocalPlayer) { GUIManagerScript.SetButton(false); GUIManagerScript.SetBackButton(false); Color clr = ColorScript.GetColor(GetColor()); clr = clr * 0.5f; GUIManagerScript.SetNumberInputFieldColor(clr); GUIManagerScript.ClearNumberInput(); GUIManagerScript.SetSongSetButton(false); //Hacky bullshit for finding which kind of game we're in? GameManagerScript gameManager = FindObjectOfType <GameManagerScript>(); Assert.IsNotNull <GameManagerScript>(gameManager); int index = gameManager.GetSongSet(); AudioManagerScript.instance.StartGameMusic(index); GUIManagerScript.SetClassicGameParent(color, ColorScript.GetColor(color), ColorScript.GetColorName(color)); localPScript.reminded = false; } List <CaptainsMessPlayer> players = GetPlayers(); foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (!nps.isLocalPlayer) { player.GetComponent <NetworkedPlayerScript>().playerButton.SetActive(true); player.GetComponent <NetworkedPlayerScript>().playerButton.GetComponent <Button>().interactable = true; } } }
public void SetPlayerText() { InputField field = nameInputObject.GetComponentInChildren <InputField>(); GameObject player = GameObject.Find("LOCAL Player"); NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); nps.CmdSetPlayerText(field.text); }
public void RpcStartGame(int s) { songID = s; scored_ThisRound = 0; scored_TimeBonus = 0; scored_FirstBonus = false; scored_WasGuessed = false; //playerParent.GetComponent<PlayerParentScript>().Unlock(); // Bullshit code. Temp? Maybe not? // What if player WAS ready, but now that we're actually starting they are no longer? // Too late for them! Let's double check if (!ready) { Assert.IsFalse(ready, "Player wasn't ready, but the server thought they were!"); // Oh noes! What do we do? Let's cheat: SetReady(true); // See buddy, you were ready the whole time, right? } ResetMatch(); if (isLocalPlayer) { GUIManagerScript.FillPlayerText(nameText); GUIManagerScript.SetButton(false); GUIManagerScript.DisableInput(true); GUIManagerScript.SetBackButton(false); AudioManagerScript.instance.StartGameMusic(); GUIManagerScript.SetColorShow(nameText, ColorScript.GetColor(color), ColorScript.GetColorName(color)); localPScript.reminded = false; } List <CaptainsMessPlayer> players = GetPlayers(); foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (!nps.isLocalPlayer) { player.GetComponent <NetworkedPlayerScript>().playerButton.SetActive(true); player.GetComponent <NetworkedPlayerScript>().playerButton.GetComponent <Button>().interactable = true; } } }
public void Consume(NetworkedPlayerScript player) { if (!isConsumable || !player) { return; } if (type == ItemType.healthPotion) { player.health += 20; } if (type == ItemType.manaPotion) { player.mana += 20; } }
void SortPlayers() { List <CaptainsMessPlayer> players = mess.Players(); int i = 0; int size = players.Count; List <CaptainsMessPlayer> SortedList = players.OrderBy(o => o.GetComponent <NetworkedPlayerScript>().nameText).ToList(); foreach (CaptainsMessPlayer player in SortedList) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (!nps.isLocalPlayer) { RemotePlayerScript rps = player.GetComponent <RemotePlayerScript>(); Vector3 goal = rps.SetPosition(++i, size); if (nps.playerButton.activeSelf == false) { nps.playerButton.SetActive(true); nps.playerButton.transform.localPosition = new Vector3(i * 160, -340, 0); } nps.playerButton.transform.DOLocalMove(goal, movementSpeed); nps.playerButton.transform.DOScale(Vector3.one, movementSpeed); } nps.SetColor(); nps.SetNameText(); } if (size >= 4) { GUIManagerScript.SetButton(true); } else { GUIManagerScript.SetButton(false); } playerParent.GetComponent <RectTransform>().sizeDelta = new Vector2(160 * (size + 1), 340); }
public void PlayerButtonPressed() { GameManagerScript gameManager = FindObjectOfType <GameManagerScript>(); Assert.IsNotNull <GameManagerScript>(gameManager); if (isLocalPlayer) { if (!gameManager.IsGameStarted()) { ToggleReady(); } } else { if (gameManager.IsGameStarted()) { List <CaptainsMessPlayer> players = GetPlayers(); foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (player.name == "LOCAL Player") { nps.CmdSetMatchSongID(songID, color); } nps.playerButton.SetActive(false); nps.playerButton.GetComponent <Button>().interactable = false; } playerButton.SetActive(true); playerButton.GetComponent <Button>().interactable = false; playerButton.transform.DOLocalMove(new Vector3(30, 20, 0), fastMovementSpeed); playerButton.transform.DOScale(new Vector3(1.5f, 1.5f, 1f), fastMovementSpeed); playerParent.GetComponent <RectTransform>().sizeDelta = new Vector2(170, 140); GUIManagerScript.SetBackButton(true); } } }
public void BackButtonPressed() { // Oops, let's reset the match ID networkedPScript.CmdResetMatchSongID(); GUIManagerScript.NumberInputLocked(false); List <CaptainsMessPlayer> players = networkedPScript.GetPlayers(); int size = players.Count; foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (!nps.isLocalPlayer) { nps.playerButton.SetActive(true); nps.playerButton.GetComponent <Button>().interactable = true; Vector3 goal = player.GetComponent <RemotePlayerScript>().GetPosition(); nps.playerButton.transform.DOLocalMove(goal, nps.fastMovementSpeed); nps.playerButton.transform.DOScale(Vector3.one, nps.fastMovementSpeed); } else { nps.playerParent.GetComponent <RectTransform>().sizeDelta = new Vector2(160 * (size + 1), 340); } } // Optional clear colors after backing out of choice? /*Color clr = ColorScript.GetColor(networkedPScript.GetColor()); * clr = clr * 0.5f; * GUIManagerScript.SetNumberInputFieldColor(clr); * GUIManagerScript.ClearNumberInput();*/ GUIManagerScript.SetBackButton(false); }
public void CmdEndGame() { List <CaptainsMessPlayer> players = GetPlayers(); NetworkedPlayerScript bonusPlayer = null; float longestMatchTime = -1; List <int> scoringSongs = new List <int>(); foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); int sid = nps.GetSongID(); if (nps.scored_GuessedCorrect) { float currentMatchTime = nps.matchTime; nps.RpcAddScore(5 * Mathf.FloorToInt(currentMatchTime), (int)Score.Time); if (currentMatchTime > longestMatchTime) { longestMatchTime = currentMatchTime; bonusPlayer = nps; } scoringSongs.Add(sid); //Hacky bullshit for finding which kind of game we're in? GameManagerScript gameManager = FindObjectOfType <GameManagerScript>(); Assert.IsNotNull <GameManagerScript>(gameManager); int songSet = gameManager.GetSongSet(); Analytics.CustomEvent("guessedCorrect", new Dictionary <string, object> { { "matchTime", currentMatchTime }, { "songSet", songSet }, { "songID", sid } }); } else { for (int i = 0; i < players.Count; i++) { NetworkedPlayerScript other_nps = players[i].GetComponent <NetworkedPlayerScript>(); if (sid == other_nps.GetSongID()) { if (nps.color != other_nps.color) { nps.match_color = other_nps.color; break; } } } } } //Bonus for player who guessed first. if (bonusPlayer != null) //If this is null, nobody guessed anything. Lame! { bonusPlayer.RpcAddScore(100, (int)Score.First); } foreach (CaptainsMessPlayer player in players) { NetworkedPlayerScript nps = player.GetComponent <NetworkedPlayerScript>(); if (nps.scored_GuessedCorrect) { nps.RpcAddScore(250, (int)Score.Correct); } if (scoringSongs.Contains(nps.songID)) { nps.RpcAddScore(500, (int)Score.WasGuessed); } nps.RpcEndGame(); } mess.FinishGame(); }
private void SetNPS() { GameObject player = GameObject.Find("LOCAL Player"); networkedPScript = player.GetComponent <NetworkedPlayerScript>(); }