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;
                });
            }
        }
Beispiel #2
0
    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();
    }
Beispiel #3
0
        // 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_);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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();
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
    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;
    }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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;
            }
        }
Beispiel #12
0
        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();
        }
Beispiel #13
0
        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();
        }
Beispiel #14
0
        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);
        }
Beispiel #16
0
        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();
        }
Beispiel #17
0
 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");
        }
    }
}
Beispiel #19
0
 public void RegisterPlayer(BattleshipPlayer player)
 {
     RegisteredPlayers.Add(player);
 }
Beispiel #20
0
    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]);
    }
Beispiel #21
0
 public void Initialize()
 {
     Subject           = new RegisteredPlayers();
     _memoryEventStore = new MemoryEventStore();
     _memoryEventStore.SubscribeToAll(Subject.HandleEvent);
 }
Beispiel #22
0
 public void Unregister(IPlayer player)
 {
     RegisteredPlayers.Remove(player);
 }