コード例 #1
0
        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;
                });
            }
        }
コード例 #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();
    }
コード例 #3
0
ファイル: StateCanJoin.cs プロジェクト: shuaibimran/laserbeak
        // 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_);
        }
コード例 #4
0
ファイル: Startup.cs プロジェクト: collenbrecht/UPcqrs
        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);
        }
コード例 #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();
        }
コード例 #6
0
        public void HandleOkButtonPressed()
        {
            if (string.IsNullOrEmpty(Nickname_))
            {
                player_.Nickname = RegisteredPlayers.GetDefaultNicknameFor(player_);
            }
            else
            {
                player_.Nickname = Nickname_;
            }

            onFinishCustomization_.Invoke();
            AudioConstants.Instance.UIBeep.PlaySFX();
        }
コード例 #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);
        }
コード例 #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;
    }
コード例 #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);
        }
コード例 #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();
        }
コード例 #11
0
        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;
            }
        }
コード例 #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();
        }
コード例 #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();
        }
コード例 #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();
        }
コード例 #15
0
        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);
        }
コード例 #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();
        }
コード例 #17
0
 public void Register(IPlayer player)
 {
     RegisteredPlayers.Add(player);
 }
コード例 #18
0
    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");
        }
    }
}
コード例 #19
0
 public void RegisterPlayer(BattleshipPlayer player)
 {
     RegisteredPlayers.Add(player);
 }
コード例 #20
0
ファイル: GameManager.cs プロジェクト: Daydam/Seminario-2.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]);
    }
コード例 #21
0
 public void Initialize()
 {
     Subject           = new RegisteredPlayers();
     _memoryEventStore = new MemoryEventStore();
     _memoryEventStore.SubscribeToAll(Subject.HandleEvent);
 }
コード例 #22
0
 public void Unregister(IPlayer player)
 {
     RegisteredPlayers.Remove(player);
 }