protected override void OnStateEntered() { LobbyArenaLoaded = false; RegisteredPlayersUtil.UnregisterAIPlayers(); RegisteredPlayers.BeginPlayerRegistration(); PlayerCustomizationView.Show(Continue); InGameConstants.BattlePlayerPartsFade = true; PlayerSpawner.ShouldRespawn = true; delayedBackToMainMenuView_ = CornerDelayedActionView.Show("BACK TO MAIN MENU", CornerPoint.TopLeft, ActionType.Negative, GoBack); // in case where no players to customize - continue if (RegisteredPlayers.AllPlayers.Count <= 0) { Continue(); return; } else { ArenaManager.Instance.AnimateLoadArena(GameConstants.Instance.PlayerCustomizationLobbyArena, callback: () => { LobbyArenaLoaded = true; }); } }
void Start() { // TO DO RE-ADD RINGS _loadingScreen = GameObject.Instantiate(loadingScreenPrefab, new Vector3(8000, 8000, 8000), Quaternion.identity); _loadingScreen.gameObject.SetActive(false); stages = Resources.LoadAll("Scriptable Objects/Stages").Select(x => (SO_StageSelect)x).ToArray(); slotTexts = new Text[stages.Length]; var stageSpacing = Camera.main.pixelWidth / stages.Length; for (int i = 0; i < slotTexts.Length; i++) { slotTexts[i] = Instantiate(templateSlot, templateSlot.transform.parent).GetComponent <Text>(); //Pos = -half + index+1 //slotTexts[i].rectTransform.position = new Vector3(Camera.main.pixelWidth / 2 + stageSpacing / 2 + stageSpacing * (Mathf.Ceil(-stages.Length / 2f) + i), slotTexts[i].rectTransform.position.y, slotTexts[i].rectTransform.position.z); slotTexts[i].gameObject.SetActive(true); slotTexts[i].text = "<b>" + stages[i].name + "</b> \n\n" + stages[i].description; slotTexts[i].GetComponentInChildren <Image>().sprite = stages[i].stageImage; } playerInfo = Serializacion.LoadJsonFromDisk <RegisteredPlayers>("Registered Players"); selector = playerInfo.playerControllers[Random.Range(0, playerInfo.playerControllers.Length - 1)]; titleText.text = "Player <b>" + (selector + 1) + "</b>, please select a stage"; lastAnalogValue = Vector2.zero; currentGamePad = new GamePadState(); currentGamePad = new GamePadState(); }
// PRAGMA MARK - Internal protected override void Init() { if (string.IsNullOrEmpty(Player_.Nickname)) { Player_.Nickname = RegisteredPlayers.GetDefaultNicknameFor(Player_); } Player_.Skin = null; ObjectPoolManager.Create(GamePrefabs.Instance.CanJoinViewPrefab, parent: Container_); }
public Startup() { MemoryEventStore = new MemoryEventStore(); QuizUseCases = new QuizUseCases(MemoryEventStore); ProcesManager = new QuizCreationCancellationPolicy(QuizUseCases); var r = new RegisteredPlayers(); MemoryEventStore.SubscribeToAll(ProcesManager.HandleEvent); MemoryEventStore.SubscribeToAll(r.HandleEvent); }
protected override void OnStateExited() { dynamicGroup_.Enabled = false; BattleCamera.SetDepthOfFieldEnabled(false, animate: true); InGameConstants.BattlePlayerPartsFade = false; PlayerScores.Clear(); RegisteredPlayers.Clear(); PlayerSpawner.ShouldRespawn = false; PlayerSpawner.CleanupAllPlayers(); CleanupMainMenu(); }
public void HandleOkButtonPressed() { if (string.IsNullOrEmpty(Nickname_)) { player_.Nickname = RegisteredPlayers.GetDefaultNicknameFor(player_); } else { player_.Nickname = Nickname_; } onFinishCustomization_.Invoke(); AudioConstants.Instance.UIBeep.PlaySFX(); }
public void ThenNoPlayersRegistered() { //Given var testRegisteredPlayers = new RegisteredPlayers(); var testHowManyPlayersRegistered = new HowManyPlayersRegistered(); //When //testRegisteredPlayers.Stream(new IEvent[0]); var result = testRegisteredPlayers.Query(testHowManyPlayersRegistered); //Then Assert.AreEqual(0, result); }
void Start() { _loadingScreen = GameObject.Instantiate(loadingScreenPrefab, new Vector3(8000, 8000, 8000), Quaternion.identity); _loadingScreen.gameObject.SetActive(false); playerInfo = Serializacion.LoadJsonFromDisk <RegisteredPlayers>("Registered Players"); LoadPlayers(); ApplyTexts(); ActivateCamera(true); fader.gameObject.SetActive(true); _inputsAllowed = true; }
public void ThenNumberOfRegisteredPlayersIsReturned() { //Given var testRegisteredPlayers = new RegisteredPlayers(); var testHowManyPlayersRegistered = new HowManyPlayersRegistered(); //When //testRegisteredPlayers.Stream(new IEvent[] { new PlayerHasRegisteredEvent(), new PlayerHasRegisteredEvent(), new QuizWasCreatedEvent() }); var result = testRegisteredPlayers.Query(testHowManyPlayersRegistered); //Then Assert.AreEqual(2, result); }
private void LeavePlayerCustomization() { // unregister all players who aren't ready foreach (IndividualPlayerCustomizationView view in views_.Where(v => !v.IsReady)) { RegisteredPlayers.Remove(view.Player); } viewTransition_.AnimateOut(() => { if (continueCallback_ != null) { continueCallback_.Invoke(); continueCallback_ = null; } }); controlsTransition_.AnimateOut(); AnimateOutReadyToFight(); }
protected override void OnStateExited() { BattleRecyclables.Clear(); PlayerSpawner.CleanupAllPlayers(); InGameConstants.BattlePlayerPartsFade = false; PlayerSpawner.ShouldRespawn = false; LobbyArenaLoaded = false; PlayerCustomizationView.Hide(); RegisteredPlayers.FinishPlayerRegistration(); StatsManager.ClearAllStats(); if (delayedBackToMainMenuView_ != null) { delayedBackToMainMenuView_.AnimateOutAndRecycle(); delayedBackToMainMenuView_ = null; } }
void OnAddPlayerSelection() { if (RegisteredPlayersCount >= MaxLocalPlayers) { return; } DrawableString playerString = new DrawableString(new DrawingOptions() { Position = new Vector2(0, 0) }); PlayerEntry entry = new PlayerEntry(RegisteredPlayersCount, playerString); RegistrationSelection.ListEntries.Insert(RegisteredPlayersCount, new SelectionEntry(playerString, new Selector())); RegisteredPlayers.Add(entry); UpdateAfterAddPlayer(); UpdateEntryPositions(); }
protected override void OnStateEntered() { dynamicGroup_.Enabled = true; #if DEMO PHASERBEAKDebug.ResetAllThings(); #endif BattleCamera.SetDepthOfFieldEnabled(true); InGameConstants.BattlePlayerPartsFade = true; RegisteredPlayers.Clear(); ArenaManager.Instance.AnimateLoadRandomArena(() => { RegisteredPlayersUtil.RegisterAIPlayers(4); PlayerSpawner.ShouldRespawn = true; PlayerSpawner.SpawnAllPlayers(); }); CreateMainMenu(); }
public void OnDeleteKey() { if (RegisteredPlayersCount <= 1) { return; } int removedIndex = RegisteredPlayersCount - 1; RegisteredPlayers.RemoveAt(removedIndex); RegistrationSelection.ListEntries.RemoveAt(removedIndex); if (RegisteredPlayersCount == MaxLocalPlayers - 1) { InsertAddPlayerString(); } else if (Selection > 0 && !(Selection < removedIndex)) { Selection--; } UpdateEntryPositions(); }
public RegisterPlayer RegisterPlayer(RegisterPlayer player) { var playerFound = (from register in snookerEnt.RegisteredPlayers where register.email == player.Email && register.nickName == player.NickName select register).SingleOrDefault(); if (playerFound == null) { var newRegistration = new RegisteredPlayers { firstName = player.FirstName, lastName = player.LastName, nickName = player.NickName, email = player.Email, password = player.Password }; snookerEnt.RegisteredPlayers.Add(newRegistration); snookerEnt.SaveChanges(); } return(player); }
protected override void Init() { if (string.IsNullOrEmpty(Player_.Nickname)) { Player_.Nickname = RegisteredPlayers.GetDefaultNicknameFor(Player_); } if (Player_.Skin == null) { Player_.Skin = RegisteredPlayersUtil.GetBestRandomSkin(); } GameObject skinSelectionContainer = GameObjectUtil.FindRequired("SkinSelectionContainer"); SkinSelectable currentSelectable = skinSelectionContainer.GetComponentsInChildren <SkinSelectable>().First(s => s.Skin == Player_.Skin); selectionView_ = ObjectPoolManager.CreateView <ElementSelectionView>(GamePrefabs.Instance.ElementSelectionViewPrefab); selectionView_.Init(Player_, skinSelectionContainer, startSelectable: currentSelectable); selectionView_.OnSelectableHover += HandleSelectableHover; selectionView_.OnSelectableSelected += HandleSelectableSelected; // we're selecting skins right now selectingSkinMap_[Player_] = true; OnSelectedSkinsDirty.Invoke(); }
public void Register(IPlayer player) { RegisteredPlayers.Add(player); }
void OnGUI() { if (titleStyle == null) { titleStyle = new GUIStyle(); } titleStyle.fontStyle = FontStyle.Bold; if (reg == null) { //RegisteredPlayers reg = Serializacion.LoadJsonFromDisk <RegisteredPlayers>("Registered Players"); if (reg == null || reg.fileRegVersion < RegisteredPlayers.latestRegVersion) { reg = new RegisteredPlayers(); } else { regPlayers = reg.playerControllers.ToList(); allModes = Resources.LoadAll <SO_GameRules>("Scriptable Objects").Select(a => a.name.Substring(9)).ToArray(); int sceneCount = SceneManager.sceneCountInBuildSettings; allStages = new string[sceneCount]; for (int i = 0; i < sceneCount; i++) { allStages[i] = System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i)); } allStages = allStages.Where(a => a.Split('_')[0] == "Stage").Select(a => a.Split('_')[1]).ToArray(); currentModeIndex = Mathf.Max(System.Array.IndexOf(allModes, reg.gameMode), 0); //currentStageIndex = Mathf.Max(System.Array.IndexOf(allStages, reg.stage.Split('_')[1]), 0); } } EditorGUILayout.LabelField("Game Configuration", titleStyle); EditorGUILayout.LabelField("Current Reg version: " + RegisteredPlayers.latestRegVersion); if (GUILayout.Button("Show Help")) { showRegHelp = !showRegHelp; } if (showRegHelp) { EditorGUILayout.HelpBox("This is the Game Configuration Window. Here, you can edit the amount of players and their respective controllers, as well as the game mode. Please remember that, when setting up the controllers, you must substract 1 from the actual controller number. For example, write 0 for controller 1", MessageType.Info); } if (regPlayers == null) { regPlayers = new List <int> { 0, 0 } } ; for (int i = 0; i < regPlayers.Count; i++) { EditorGUILayout.BeginHorizontal(); regPlayers[i] = EditorGUILayout.IntField("Player " + (i + 1) + " Controller", regPlayers[i]); if (regPlayers.Count > 2) { if (GUILayout.Button("Remove")) { regPlayers.RemoveAt(i); } } EditorGUILayout.EndHorizontal(); } if (regPlayers.Count < 4) { if (GUILayout.Button("Add")) { regPlayers.Add(0); } } if (allModes == null) { allModes = Resources.LoadAll <SO_GameRules>("Scriptable Objects").Select(a => a.name.Substring(9)).ToArray(); } if (modeIndexes == null) { modeIndexes = new int[allModes.Length]; for (int i = 0; i < modeIndexes.Length; i++) { modeIndexes[i] = i; } } currentModeIndex = EditorGUILayout.IntPopup("Mode:", currentModeIndex, allModes, modeIndexes); if (allStages == null) { int sceneCount = SceneManager.sceneCountInBuildSettings; allStages = new string[sceneCount]; for (int i = 0; i < sceneCount; i++) { allStages[i] = System.IO.Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i)); } allStages = allStages.Where(a => a.Split('_')[0] == "Stage").Select(a => a.Split('_')[1]).ToArray(); } if (stageIndexes == null) { stageIndexes = new int[allStages.Length]; for (int i = 0; i < stageIndexes.Length; i++) { stageIndexes[i] = i; } } currentStageIndex = EditorGUILayout.IntPopup("Stage:", currentStageIndex, allStages, stageIndexes); Debug.Log("stage: " + currentStageIndex); if (GUILayout.Button("Save Game Configuration")) { reg.playerControllers = new int[regPlayers.Count]; for (int i = 0; i < regPlayers.Count; i++) { reg.playerControllers[i] = regPlayers[i]; } reg.gameMode = allModes[currentModeIndex]; //Fix //reg.stage = "Stage_" + allStages[currentStageIndex]; Serializacion.SaveJsonToDisk(reg, "Registered Players"); } } }
public void RegisterPlayer(BattleshipPlayer player) { RegisteredPlayers.Add(player); }
void Awake() { if (!Application.isEditor) { Cursor.visible = false; Cursor.lockState = CursorLockMode.Locked; } _loadingScreen = GameObject.Instantiate(loadingScreenPrefab, new Vector3(8000, 8000, 8000), Quaternion.identity); _loadingScreen.gameObject.SetActive(false); _winPopup = GameObject.Instantiate(winPopupPrefab, Vector3.zero, Quaternion.identity); _winPopup.gameObject.SetActive(false); spawns = StageManager.instance.transform.Find("SpawnPoints").GetComponentsInChildren <Transform>().Where(x => x.name != "SpawnPoints").ToArray(); playerInfo = Serializacion.LoadJsonFromDisk <RegisteredPlayers>("Registered Players"); playerInfo.playerStats = new PlayerStats[playerInfo.playerControllers.Length]; playerCameras[playerInfo.playerControllers.Length - 2].SetActive(true); if (playerInfo.playerControllers.Length == 2) { for (int i = 0; i < 2; i++) { Camera c = GameObject.Find("Camera_P" + (i + 1)).GetComponent <Camera>(); cameraTexturesForTwoPlayers[i].width = 1280; c.rect = new Rect(0, 0, 2, 1); } } else { for (int i = 0; i < 2; i++) { Camera c = GameObject.Find("Camera_P" + (i + 1)).GetComponent <Camera>(); cameraTexturesForTwoPlayers[i].width = 640; c.rect = new Rect(0, 0, 1, 1); } } //Setting the mode! gameRules = Resources.Load("Scriptable Objects/GameMode_" + playerInfo.gameMode) as SO_GameRules; //get all the cameras var allCams = GameObject.FindObjectsOfType <CamFollow>().ToList(); Utility.KnuthShuffle(spawns); for (int i = 0; i < playerInfo.playerControllers.Length; i++) { var URLs = Serializacion.LoadJsonFromDisk <CharacterURLs>("Player " + (playerInfo.playerControllers[i] + 1)); //Dejo los objetos ccomo children del body por cuestiones de carga de los scripts. Assembler no debería generar problemas, ya que su parent objetivo sería el mismo. var player = Instantiate(Resources.Load <GameObject>("Prefabs/Bodies/" + URLs.bodyURL), spawns[i].transform.position, Quaternion.identity).GetComponent <Player>(); var weapon = Instantiate(Resources.Load <GameObject>("Prefabs/Weapons/" + URLs.weaponURL), player.transform.position, Quaternion.identity, player.transform); var comp1 = Instantiate(Resources.Load <GameObject>("Prefabs/Skills/Complementary/" + URLs.complementaryURL[0]), player.transform.position, Quaternion.identity, player.transform); var comp2 = Instantiate(Resources.Load <GameObject>("Prefabs/Skills/Complementary/" + URLs.complementaryURL[1]), player.transform.position, Quaternion.identity, player.transform); var def = Instantiate(Resources.Load <GameObject>("Prefabs/Skills/Defensive/" + URLs.defensiveURL), player.transform.position, Quaternion.identity, player.transform); CharacterAssembler.Assemble(player.gameObject, def, comp1, comp2, weapon); player.transform.forward = spawns[i].forward; comp1.GetComponent <ComplementarySkillBase>().RegisterInput(0); comp2.GetComponent <ComplementarySkillBase>().RegisterInput(1); player.gameObject.layer = LayerMask.NameToLayer("Player" + (playerInfo.playerControllers[i] + 1)); player.gameObject.tag = "Player " + (playerInfo.playerControllers[i] + 1); foreach (Transform t in player.transform) { t.gameObject.layer = LayerMask.NameToLayer("Player" + (playerInfo.playerControllers[i] + 1)); t.gameObject.tag = "Player " + (playerInfo.playerControllers[i] + 1); } player.Stats.Score = 0; player.lockedByGame = true; player.LightsModule.SetPlayerColor(playerColors[playerInfo.playerControllers[i]]); CamFollow cam = allCams.Where(x => x.name == "Camera_P" + (i + 1)).First(); allCams.Remove(cam); if (player.ControlModule.playerType == PlayerControlModule.PlayerType.DRONE) { cam.AssignTarget(player, player.GetCameraOffset()); } else { var castedControlModule = player.ControlModule as QuadrupedControlModule; cam.AssignTarget(player, player.GetCameraOffset(), castedControlModule.HardcodeForCameraForward); } } //disable cams that are not being used foreach (var item in allCams) { item.gameObject.SetActive(false); } AddEvents(); UIManager.Instance.Initialize(Players, StartFirstRound, gameRules.pointsToWin[playerInfo.playerControllers.Length - 2]); }
public void Initialize() { Subject = new RegisteredPlayers(); _memoryEventStore = new MemoryEventStore(); _memoryEventStore.SubscribeToAll(Subject.HandleEvent); }
public void Unregister(IPlayer player) { RegisteredPlayers.Remove(player); }