private void InitializeControls() { var buttonsX = Width / 2 - 10; startNewGameButton = new StandardButton(20) { Position = new Point(buttonsX, 16), Text = "Start New Game" }; startNewGameButton.Click += (sender, args) => StartNewGame?.Invoke(this, EventArgs.Empty); Add(startNewGameButton); backToMenuButton = new StandardButton(20) { Position = new Point(buttonsX, 20), Text = "Back t0 Menu" }; backToMenuButton.Click += (sender, args) => ExitToMenu?.Invoke(this, EventArgs.Empty); Add(backToMenuButton); exitGameButton = new StandardButton(20) { Position = new Point(buttonsX, 24), Text = "Ex1t Game" }; exitGameButton.Click += (sender, args) => Exit?.Invoke(this, EventArgs.Empty); Add(exitGameButton); }
protected virtual void OnStartNewGame() { if (StartNewGame != null) { StartNewGame.Invoke(); } }
public override void Update(GameTime gameTime) { if (Keyboard.GetState().IsKeyDown(Keys.Space)) { StartNewGame?.Invoke(this, null); } }
private void startANewGameToolStripMenuItem_Click(object sender, EventArgs e) { if (StartNewGame != null) { StartNewGame.Invoke(sender, e); } }
public void FullShortGameTest() { var mockCircleRepository = new MockCircleRepository(); var mockGameRepository = new MockGameRepository(); var mockPhraseRepository = new MockPhraseRepository(); var mockRandomProvider = new MockRandomProvider(); mockCircleRepository.Circle = GetCircle(); mockPhraseRepository.Phrase = "Short Game Test"; const int indexOneThousand = 7; mockRandomProvider.Values.Add((0, 13), indexOneThousand); var startNewGamePresenter = new Presenter <StartNewGame.ResponseModel>(); var startNewGameInteractor = new StartNewGame(mockPhraseRepository, mockGameRepository); startNewGameInteractor.HandleRequest(new StartNewGame.RequestModel() { PlayerNames = new string[] { "Alice", "Bob", "Charlie" } }, startNewGamePresenter); var spinCirclePresenter = new Presenter <SpinCircle.ResponseModel>(); var spinCircleInteractor = new SpinCircle(mockGameRepository, mockCircleRepository, mockRandomProvider); spinCircleInteractor.HandleRequest(new SpinCircle.RequestModel() { GameIdentifier = startNewGamePresenter.ResponseModel.GameIdentifier }, spinCirclePresenter); var pickLetterPresenter = new Presenter <PickLetter.ResponseModel>(); var pickLetterInteractor = new PickLetter(mockGameRepository); pickLetterInteractor.HandleRequest(new PickLetter.RequestModel() { GameIdentifier = startNewGamePresenter.ResponseModel.GameIdentifier, Letter = 'e' }, pickLetterPresenter); var guessPhrasePresenter = new Presenter <GuessPhrase.ResponseModel>(); var guessPhraseInteractor = new GuessPhrase(mockGameRepository); guessPhraseInteractor.HandleRequest(new GuessPhrase.RequestModel() { GameIdentifier = startNewGamePresenter.ResponseModel.GameIdentifier, Guess = "Short Game Test" }, guessPhrasePresenter); Assert.Equal("Short Game Test", guessPhrasePresenter.ResponseModel.Phrase); Assert.Equal("Alice", guessPhrasePresenter.ResponseModel.CurrentPlayerName); Assert.Equal(2000, guessPhrasePresenter.ResponseModel.Reward); Assert.True(mockGameRepository.Games.Single().Value.IsOver); }
public async void TwoPlayerMatch_StartNewGame_Success() { Dictionary <string, StringValues> reqParams = new Dictionary <string, StringValues>(); HttpRequest request; OkObjectResult response; using (FileStream fs = File.OpenRead(initialBody)) { request = TestFactory.CreateHttpRequest(reqParams, fs); response = (OkObjectResult)await StartNewGame.Run(request, "2b35924a-1f53-487b-814d-035c38c841ed", logger); } var expected = File.ReadAllText(@"testData/TwoPlayerMatch_newgamestarted.json"); Assert.Equal(expected, response.Value); }
public void Init(AddNewPlayer addNewPlayer, StartNewGame startNewGame, InitDefusing initDefusing, SetNewDefuseAttempt setNewDefuseAttempt, TryToDefuse tryToDefuse, ChangeCurrentView changeCurrentView, AllPlayerControllers allPlayerControllers, IUIController uiController, NetworkBehaviourChecker networkBehaviourChecker, ISpotTheDefuserNetworkDiscovery spotTheDefuserNetworkDiscovery) { _initDefusing = initDefusing; _setNewDefuseAttempt = setNewDefuseAttempt; _spotTheDefuserNetworkDiscovery = spotTheDefuserNetworkDiscovery; _networkBehaviourChecker = networkBehaviourChecker; _changeCurrentView = changeCurrentView; _startNewGame = startNewGame; _addNewPlayer = addNewPlayer; _tryToDefuse = tryToDefuse; _allPlayerControllers = allPlayerControllers; _uiController = uiController; }
private void InitializeControls() { var xPosition = GetLabelPosition(); gameLabel = new GameLogoControl { Position = new Point(xPosition, 4) }; Add(gameLabel); continueGameButton = new StandardButton(20) { Position = new Point(xPosition - 2, 9), Text = "C0nt1nue Game" }; continueGameButton.Click += (sender, args) => ContinueGame?.Invoke(this, EventArgs.Empty); Add(continueGameButton); startGameButton = new StandardButton(20) { Position = new Point(xPosition - 2, 13), Text = "Start New Game" }; startGameButton.Click += (sender, args) => StartNewGame?.Invoke(this, EventArgs.Empty); Add(startGameButton); exitToMenuButton = new StandardButton(20) { Position = new Point(xPosition - 2, 17), Text = "Ex1t t0 Menu" }; exitToMenuButton.Click += (sender, args) => ExitToMenu?.Invoke(this, EventArgs.Empty); Add(exitToMenuButton); exitButton = new StandardButton(20) { Position = new Point(xPosition - 2, 21), Text = "Ex1t" }; exitButton.Click += (sender, args) => Exit?.Invoke(this, EventArgs.Empty); Add(exitButton); }
public void StartsNewGameCorrectly() { var mockPhraseRepository = new MockPhraseRepository(); var mockGameRepository = new MockGameRepository(); var interactor = new StartNewGame(mockPhraseRepository, mockGameRepository); mockPhraseRepository.Phrase = "Small Test Phrase"; mockGameRepository.GameIdentifier = Guid.Parse("00000000-0000-0000-0000-000000000001"); var requestModel = new StartNewGame.RequestModel() { PlayerNames = new string[] { "Alice", "Bob", "Charlie" } }; var presenter = new Presenter <StartNewGame.ResponseModel>(); interactor.HandleRequest(requestModel, presenter); var responseModel = presenter.ResponseModel; Assert.Equal(Guid.Parse("00000000-0000-0000-0000-000000000001"), responseModel.GameIdentifier); Assert.Equal("_____ ____ ______", responseModel.Phrase); Assert.Equal("Alice", responseModel.CurrentPlayerName); }
public void Init() { var allPlayers = Substitute.For <AllPlayers>(); var defusingTime = Substitute.For <IDefusingTime>(); var defusingTimerUpdatedListener = Substitute.For <IDefusingTimerUpdatedListener>(); var defuseFailedListener = Substitute.For <IDefuseFailedListener>(); var defuseSucceededListener = Substitute.For <IDefuseSucceededListener>(); var defusingState = Substitute.For <DefusingState>( defusingTime, defusingTimerUpdatedListener, defuseFailedListener ); var stdRandom = Substitute.For <IRandom>(); var deviceInfo = Substitute.For <IDeviceInfo>(); _uiController = Substitute.For <IUIController>(); _addNewPlayer = Substitute.For <AddNewPlayer>(allPlayers, null); _setNewDefuseAttempt = Substitute.For <SetNewDefuseAttempt>(stdRandom, allPlayers, Substitute.For <AllBombs>(stdRandom, new IBomb[0], deviceInfo), defusingState, new DefuserCounter(), Substitute.For <INewDefuseAttemptSetListener>()); _initDefusing = Substitute.For <InitDefusing>(defusingState); _startNewGame = Substitute.For <StartNewGame>(Substitute.For <INewGameStartedListener>()); _tryToDefuse = Substitute.For <TryToDefuse>( defusingState, defuseSucceededListener, defuseFailedListener, Substitute.For <IAnalyticsSubmitter>() ); _changeCurrentView = Substitute.For <ChangeCurrentView>(Substitute.For <IViewManager>()); _networkBehaviourChecker = Substitute.For <NetworkBehaviourChecker>(); _allPlayerControllers = new AllPlayerControllers(allPlayers); _spotTheDefuserNetworkDiscovery = Substitute.For <ISpotTheDefuserNetworkDiscovery>(); _playerController = new GameObject().AddComponent <PlayerController>(); _playerController.Init(_addNewPlayer, _startNewGame, _initDefusing, _setNewDefuseAttempt, _tryToDefuse, _changeCurrentView, _allPlayerControllers, _uiController, _networkBehaviourChecker, _spotTheDefuserNetworkDiscovery); }
public MultiPlayerCampaignSetupUI(GUIComponent newGameContainer, GUIComponent loadGameContainer, IEnumerable <SubmarineInfo> submarines, IEnumerable <string> saveFiles = null) : base(newGameContainer, loadGameContainer) { var columnContainer = new GUILayoutGroup(new RectTransform(Vector2.One, newGameContainer.RectTransform), isHorizontal: true) { Stretch = true, RelativeSpacing = 0.0f }; var leftColumn = new GUILayoutGroup(new RectTransform(Vector2.One, columnContainer.RectTransform)) { Stretch = true, RelativeSpacing = 0.015f }; var rightColumn = new GUILayoutGroup(new RectTransform(Vector2.Zero, columnContainer.RectTransform)) { Stretch = true, RelativeSpacing = 0.015f }; columnContainer.Recalculate(); // New game left side new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.02f), leftColumn.RectTransform) { MinSize = new Point(0, 20) }, TextManager.Get("SaveName"), font: GUI.SubHeadingFont); saveNameBox = new GUITextBox(new RectTransform(new Vector2(1.0f, 0.05f), leftColumn.RectTransform) { MinSize = new Point(0, 20) }, string.Empty) { textFilterFunction = (string str) => { return(ToolBox.RemoveInvalidFileNameChars(str)); } }; new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.02f), leftColumn.RectTransform) { MinSize = new Point(0, 20) }, TextManager.Get("MapSeed"), font: GUI.SubHeadingFont); seedBox = new GUITextBox(new RectTransform(new Vector2(1.0f, 0.05f), leftColumn.RectTransform) { MinSize = new Point(0, 20) }, ToolBox.RandomSeed(8)); // Spacing to fix the multiplayer campaign setup layout CreateMultiplayerCampaignSubList(leftColumn.RectTransform); //spacing //new GUIFrame(new RectTransform(new Vector2(1.0f, 0.25f), leftColumn.RectTransform), style: null); // New game right side subPreviewContainer = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 1.0f), rightColumn.RectTransform)) { Stretch = true }; var buttonContainer = new GUILayoutGroup(new RectTransform(new Vector2(1f, 0.12f), leftColumn.RectTransform) { MaxSize = new Point(int.MaxValue, 60) }, childAnchor: Anchor.BottomRight, isHorizontal: true); StartButton = new GUIButton(new RectTransform(new Vector2(0.4f, 1f), buttonContainer.RectTransform, Anchor.BottomRight) { MaxSize = new Point(350, 60) }, TextManager.Get("StartCampaignButton")) { OnClicked = (GUIButton btn, object userData) => { if (string.IsNullOrWhiteSpace(saveNameBox.Text)) { saveNameBox.Flash(GUI.Style.Red); return(false); } SubmarineInfo selectedSub = null; if (GameMain.NetLobbyScreen.SelectedSub == null) { return(false); } selectedSub = GameMain.NetLobbyScreen.SelectedSub; if (selectedSub.SubmarineClass == SubmarineClass.Undefined) { new GUIMessageBox(TextManager.Get("error"), TextManager.Get("undefinedsubmarineselected")); return(false); } if (string.IsNullOrEmpty(selectedSub.MD5Hash.Hash)) { ((GUITextBlock)subList.SelectedComponent).TextColor = Color.DarkRed * 0.8f; subList.SelectedComponent.CanBeFocused = false; subList.Deselect(); return(false); } string savePath = SaveUtil.CreateSavePath(SaveUtil.SaveType.Multiplayer, saveNameBox.Text); bool hasRequiredContentPackages = selectedSub.RequiredContentPackagesInstalled; CampaignSettings settings = new CampaignSettings(); settings.RadiationEnabled = GameMain.NetLobbyScreen.IsRadiationEnabled(); settings.MaxMissionCount = GameMain.NetLobbyScreen.GetMaxMissionCount(); if (selectedSub.HasTag(SubmarineTag.Shuttle) || !hasRequiredContentPackages) { if (!hasRequiredContentPackages) { var msgBox = new GUIMessageBox(TextManager.Get("ContentPackageMismatch"), TextManager.GetWithVariable("ContentPackageMismatchWarning", "[requiredcontentpackages]", string.Join(", ", selectedSub.RequiredContentPackages)), new string[] { TextManager.Get("Yes"), TextManager.Get("No") }); msgBox.Buttons[0].OnClicked = msgBox.Close; msgBox.Buttons[0].OnClicked += (button, obj) => { if (GUIMessageBox.MessageBoxes.Count == 0) { StartNewGame?.Invoke(selectedSub, savePath, seedBox.Text, settings); CoroutineManager.StartCoroutine(WaitForCampaignSetup(), "WaitForCampaignSetup"); } return(true); }; msgBox.Buttons[1].OnClicked = msgBox.Close; } if (selectedSub.HasTag(SubmarineTag.Shuttle)) { var msgBox = new GUIMessageBox(TextManager.Get("ShuttleSelected"), TextManager.Get("ShuttleWarning"), new string[] { TextManager.Get("Yes"), TextManager.Get("No") }); msgBox.Buttons[0].OnClicked = (button, obj) => { StartNewGame?.Invoke(selectedSub, savePath, seedBox.Text, settings); CoroutineManager.StartCoroutine(WaitForCampaignSetup(), "WaitForCampaignSetup"); return(true); }; msgBox.Buttons[0].OnClicked += msgBox.Close; msgBox.Buttons[1].OnClicked = msgBox.Close; return(false); } } else { StartNewGame?.Invoke(selectedSub, savePath, seedBox.Text, settings); CoroutineManager.StartCoroutine(WaitForCampaignSetup(), "WaitForCampaignSetup"); } return(true); } }; InitialMoneyText = new GUITextBlock(new RectTransform(new Vector2(0.6f, 1f), buttonContainer.RectTransform), "", font: GUI.Style.SmallFont, textColor: GUI.Style.Green) { TextGetter = () => { int initialMoney = CampaignMode.InitialMoney; if (GameMain.NetLobbyScreen.SelectedSub != null) { initialMoney -= GameMain.NetLobbyScreen.SelectedSub.Price; } initialMoney = Math.Max(initialMoney, MultiPlayerCampaign.MinimumInitialMoney); return(TextManager.GetWithVariable("campaignstartingmoney", "[money]", string.Format(CultureInfo.InvariantCulture, "{0:N0}", initialMoney))); } }; columnContainer.Recalculate(); leftColumn.Recalculate(); rightColumn.Recalculate(); if (submarines != null) { UpdateSubList(submarines); } UpdateLoadMenu(saveFiles); }
public void Init() { _newGameStartedListener = Substitute.For <INewGameStartedListener>(); _startNewGame = new StartNewGame(_newGameStartedListener); }
private bool FinishSetup(GUIButton btn, object userdata) { if (string.IsNullOrWhiteSpace(saveNameBox.Text)) { saveNameBox.Flash(GUI.Style.Red); return(false); } SubmarineInfo selectedSub = null; if (!(subList.SelectedData is SubmarineInfo)) { return(false); } selectedSub = subList.SelectedData as SubmarineInfo; if (selectedSub.SubmarineClass == SubmarineClass.Undefined) { new GUIMessageBox(TextManager.Get("error"), TextManager.Get("undefinedsubmarineselected")); return(false); } if (string.IsNullOrEmpty(selectedSub.MD5Hash.Hash)) { ((GUITextBlock)subList.SelectedComponent).TextColor = Color.DarkRed * 0.8f; subList.SelectedComponent.CanBeFocused = false; subList.Deselect(); return(false); } string savePath = SaveUtil.CreateSavePath(SaveUtil.SaveType.Singleplayer, saveNameBox.Text); bool hasRequiredContentPackages = selectedSub.RequiredContentPackagesInstalled; CampaignSettings settings = new CampaignSettings(); settings.RadiationEnabled = EnableRadiationToggle?.Selected ?? false; if (MaxMissionCountText != null && Int32.TryParse(MaxMissionCountText.Text, out int missionCount)) { settings.MaxMissionCount = missionCount; } else { settings.MaxMissionCount = CampaignSettings.DefaultMaxMissionCount; } if (selectedSub.HasTag(SubmarineTag.Shuttle) || !hasRequiredContentPackages) { if (!hasRequiredContentPackages) { var msgBox = new GUIMessageBox(TextManager.Get("ContentPackageMismatch"), TextManager.GetWithVariable("ContentPackageMismatchWarning", "[requiredcontentpackages]", string.Join(", ", selectedSub.RequiredContentPackages)), new string[] { TextManager.Get("Yes"), TextManager.Get("No") }); msgBox.Buttons[0].OnClicked = msgBox.Close; msgBox.Buttons[0].OnClicked += (button, obj) => { if (GUIMessageBox.MessageBoxes.Count == 0) { StartNewGame?.Invoke(selectedSub, savePath, seedBox.Text, settings); } return(true); }; msgBox.Buttons[1].OnClicked = msgBox.Close; } if (selectedSub.HasTag(SubmarineTag.Shuttle)) { var msgBox = new GUIMessageBox(TextManager.Get("ShuttleSelected"), TextManager.Get("ShuttleWarning"), new string[] { TextManager.Get("Yes"), TextManager.Get("No") }); msgBox.Buttons[0].OnClicked = (button, obj) => { StartNewGame?.Invoke(selectedSub, savePath, seedBox.Text, settings); return(true); }; msgBox.Buttons[0].OnClicked += msgBox.Close; msgBox.Buttons[1].OnClicked = msgBox.Close; return(false); } } else { StartNewGame?.Invoke(selectedSub, savePath, seedBox.Text, settings); } return(true); }
public void StartGame(Game game, User you) { _mainWindowViewModel.LobyViewModelProp._lobyView.Visibility = System.Windows.Visibility.Hidden; StartNewGame.StartNewGameGo(game, you); _mainWindowViewModel.LobyViewModelProp._lobyView.Close(); }
private void StartNewGameMethod(StartNewGame message) { GameStatus = new GameEvent(message.CreateGameRequest.Id, message.CreateGameRequest.PlayerInfo); Context.Parent.Tell(new GameRegister(GameStatus)); }