public void Setup() { if (isDebug) { PlayerList pList = Instantiate(playerListPrefab).GetComponent <PlayerList>(); pList.AddPlayer(new Player(new ControlScheme(1, true), 1)); pList.AddPlayer(new Player(new ControlScheme(2, true), 2)); } for (int i = 0; i < PlayerList.Obj.numPlayers; i++) { GameObject player = Instantiate(PlayerPrefabs[i]); GameObject camera = Instantiate(playerCameraPrefab); if (i > 0) { Destroy(camera.GetComponent <AudioListener>()); } player.transform.position = spawnPoints [i].transform.position; PlayerController pCtrl = player.GetComponent <PlayerController> (); GameObject canvas = Instantiate(playerCanvasPrefab); pCtrl.Setup(PlayerList.Obj.playerList [i], camera.GetComponent <PlayerCameraController> (), canvas.GetComponent <PlayerCanvasController> ()); playerControllerList.Add(pCtrl); } GameController.Obj.SetPlayers(PlayerList.Obj.playerList); SetCameras(); MultiplayerManager.Obj = this; }
public void NewGame() { if (!GameInitiated) { GameInitiated = true; CurrentPlayer = gameObject.AddComponent <Player>(); int index = 0; PlayingAgainstAI = false; endPos = new Vector3(); animator = gameObject.GetComponent <Animator>(); gameObject.GetComponent <Cards>().InitCards(); random = new System.Random(); PlayerList.AddPlayer("Player 1"); PlayerList.AddPlayer("Player 2"); foreach (var player in PlayerList.GetPlayers()) { player.PlayerIndex = index; index++; } playerPanel_1.SetupPanel(PlayerList.GetPlayers()[0]); playerPanel_2.SetupPanel(PlayerList.GetPlayers()[1]); Setup(); index = 0; } else { StopAllCoroutines(); winnerText.text = "Resets the game"; StartCoroutine(ResetGame()); } }
public void Start() { transform.SetParent(NetworkManager.singleton.transform); PlayerList = NetworkManager.singleton.transform.GetComponent <PlayerList>(); playerID = PlayerList.Players.Count; PlayerList.AddPlayer(this); if (isLocalPlayer) { LocalPlayer = this; gameObject.name += "(LOCAL)"; } for (int i = 0; i < DataManager.ResourcesData.dataArray.Length; i++) { resourcesAmountForTrade.Add(0); resourcesCostForTrade.Add(0); } AssignSemiRandomizedClimateType(); if (isLocalPlayer) { CityView.City.OnGameSceneWasLoaded += SendUpdatePollutionPerYear; CityView.BuildingsHandler.OnBuildingListChanged += SendUpdatePollutionPerYear; } }
public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) { base.OnServerAddPlayer(conn, playerControllerId); var newPlayer = conn.playerControllers[0].gameObject; PlayerList.AddPlayer(newPlayer.gameObject.GetComponent <Player>()); }
// Use this for initialization void Start() { if (isServer) { transform.name = "Player " + GetComponent <NetworkIdentity>().netId.ToString(); pl = GameObject.Find("PlayerList").GetComponent <PlayerList>(); pl.AddPlayer("Player " + GetComponent <NetworkIdentity>().netId.ToString(), gameObject); } }
public PlayerController SpawnPlayer( RavenNest.Models.Player playerDefinition, Player streamUser = null, StreamRaidInfo raidInfo = null) { if (!chunkManager) { Debug.LogError("No chunk manager available!"); return(null); } var starter = chunkManager.GetStarterChunk(); if (starter == null) { Debug.LogError("No starter chunk available!"); return(null); } var spawnPoint = starter.GetPlayerSpawnPoint(); //var startIsland = playerDefinition?.State?.Island; //var island = Islands.Find(startIsland); //if (island != null) //{ // spawnPoint = island.SpawnPosition; //} var vector3 = Random.insideUnitSphere * 1f; var player = playerManager.Spawn(spawnPoint + vector3, playerDefinition, streamUser, raidInfo); if (!player) { Debug.LogError("Can't spawn player, player is already playing."); return(null); } playerList.AddPlayer(player); PlayerJoined(player); if (player && gameCamera && gameCamera.AllowJoinObserve) { gameCamera.ObservePlayer(player); } if (dropEventManager.IsActive) { player.BeginItemDropEvent(); } return(player); }
void Start() { _playerList = PlayerList.Singleton(); _networkPlayer = GetComponent <NetworkPlayer>(); _playerList.AddPlayer(_networkPlayer); if (isLocalPlayer) { LocalSetup(); } else { RemoteSetup(); } if (isServer) { _playerSlotter = PlayerSlotter.Singleton(); _playerSlotter.AddPlayer(_networkPlayer); } }
public PlayerController SpawnPlayer( RavenNest.Models.Player playerDef, Player streamUser = null, StreamRaidInfo raidInfo = null) { if (!chunkManager) { Debug.LogError("No chunk manager available!"); return(null); } var starter = chunkManager.GetStarterChunk(); if (starter == null) { Debug.LogError("No starter chunk available!"); return(null); } var spawnPoint = starter.GetPlayerSpawnPoint(); var vector3 = Random.insideUnitSphere * 1f; var player = playerManager.Spawn(spawnPoint + vector3, playerDef, streamUser, raidInfo); if (!player) { Debug.LogError("Can't spawn player, player is already playing."); } playerList.AddPlayer(player); PlayerJoined(player); if (player && gameCamera && gameCamera.AllowJoinObserve) { gameCamera.ObservePlayer(player); } return(player); }
/// <summary> /// Add a single player to the list of players that should make use of the here defined override values. /// When adding multiple players use <see cref="AffectPlayers"/> instead. /// Methods can be expensive when call with a lot of players! Avoid using in Update in every frame! /// </summary> /// <param name="playerToAffect"></param> /// <returns>true if the player was added/was already added before</returns> public bool AddPlayer(VRCPlayerApi playerToAffect) { if (!HasStarted) { Start(); } if (!udonDebug.Assert(playerList, "playerList invalid", this)) { return(false); } if (!udonDebug.Assert(Utilities.IsValid(playerToAffect), "Player to affect invalid", this)) { return(false); } if (!udonDebug.Assert(playerList.AddPlayer(playerToAffect), "player already affected", this)) { return(false); } if (!IsActiveAndEnabled()) { Debug.LogWarning($"Override {gameObject.name} is not enabled for {playerToAffect.displayName}"); return(true); } if (!udonDebug.Assert(Utilities.IsValid(betterPlayerAudio), "betterPlayerAudio invalid", this)) { return(false); } var success = true; if (!betterPlayerAudio.OverridePlayerSettings(this, playerToAffect)) { if (playerList.players != null) { var listContainedInvalidPlayer = playerList.players.Length > playerList.DiscardInvalid(); if (listContainedInvalidPlayer) { Debug.LogWarning("Player list contained invalid player (has left the world)"); } success = listContainedInvalidPlayer; } else { Debug.LogWarning( $"Player {playerToAffect.displayName} already affected by {gameObject.name} (caused by ownership race)"); success = false; } } if (playerToAffect.isLocal) { // ActivateReverb(); Notify(localPlayerAddedListeners, localPlayerAddedEvent); } return(success); }
void Awake() { if (!(_playerList && _leaveBtn && _challengePlayerCanvas && _abortChallengeBtn && _respondToChallengeCanvas && _acceptChallengeBtn && _declineChallengeBtn)) { Destroy(gameObject); return; } if (Game.Client == null) { Game.LoadMainMenu(); return; } _leaveBtn.Click += Leave; _playerList.PlayerChallenged += player => Dispatcher.Instance.Enqueue(() => ChallengePlayer(player)); _abortChallengeBtn.Click += () => Dispatcher.Instance.Enqueue(AbortChallenge); _acceptChallengeBtn.Click += () => Dispatcher.Instance.Enqueue(AcceptChallenge); _declineChallengeBtn.Click += () => Dispatcher.Instance.Enqueue(DeclineChallenge); Game.Client.PlayerAdded += player => Dispatcher.Instance.Enqueue(() => _playerList.AddPlayer(player)); Game.Client.PlayerRemoved += player => Dispatcher.Instance.Enqueue(() => _playerList.RemovePlayer(player)); Game.Client.PlayerChallenged += challenge => Dispatcher.Instance.Enqueue(() => OnPlayerChallenged(challenge)); }
/// <summary> /// Reads incoming messages from the server and reacts accordingly /// </summary> /// <param name="data">Message that was received from server</param> private void OnIncomingData(string data) { // Splits message into tokens string[] tokens = data.Split('~'); switch (tokens[0]) { case "SPONG": receivedPingReply = true; break; case "SMOV": OthelloBoard.Instance.MakeMove(int.Parse(tokens[1]), int.Parse(tokens[2]), OthelloBoard.Instance.isWhiteTurn); break; case "SADDP": GameObject playerListObject = GameObject.Find("PlayerList"); if (playerListObject != null) { PlayerList playerList = GameObject.Find("PlayerList").GetComponent <PlayerList>(); playerList.AddPlayer(tokens[1], PlayerListItem.PlayerState.kReady); } GameManager.Instance.players.Add(tokens[1], PlayerListItem.PlayerState.kReady); break; case "SDELP": playerListObject = GameObject.Find("PlayerList"); if (playerListObject != null) { PlayerList playerList = GameObject.Find("PlayerList").GetComponent <PlayerList>(); playerList.DeletePlayer(tokens[1]); } GameManager.Instance.players.Remove(tokens[1]); break; case "SUPS": if (tokens[2] == "READY") { GameManager.Instance.players[tokens[1]] = PlayerListItem.PlayerState.kReady; playerListObject = GameObject.Find("PlayerList"); if (playerListObject != null) { PlayerList playerList = GameObject.Find("PlayerList").GetComponent <PlayerList>(); playerList.UpdatePlayer(tokens[1], PlayerListItem.PlayerState.kReady); } } else { GameManager.Instance.players[tokens[1]] = PlayerListItem.PlayerState.kBusy; playerListObject = GameObject.Find("PlayerList"); if (playerListObject != null) { PlayerList playerList = GameObject.Find("PlayerList").GetComponent <PlayerList>(); playerList.UpdatePlayer(tokens[1], PlayerListItem.PlayerState.kBusy); } } break; case "SREQ": Lobby lobby = GameObject.Find("Lobby").GetComponent <Lobby>(); lobby.OpenPopupWindow(tokens[1]); break; case "SREQC": lobby = GameObject.Find("Lobby").GetComponent <Lobby>(); lobby.closeWaitForOtherPlayer(); lobby.closeRequestWindow(); break; case "SRECOV": GameManager.Instance.RecoverGame(tokens[1], tokens[2] == "1", tokens[3] == "1"); break; case "SSTARTG": GameManager.Instance.StartGame(); break; case "SGAMEC": GameManager.Instance.EndGame(); break; case "SGAMEI": OthelloBoard board = GameObject.Find("Board").GetComponent <OthelloBoard>(); board.Alert(tokens[1]); break; default: break; } }