public override void Construct(MultiformTransmissionData args) { RegisterForm(MouseTrailFormName, new MouseTrailForm()); RegisterForm(MouseCursorFormName, new MouseCursorForm()); // Nothing special happens in either of these so we just use defaults. SetUpdater(() => { UpdateForms(); }); SetRenderer(() => { RenderForms(); }); }
/// <summary> /// Return to the level multiform. The "increment" argument indicates whether /// we stay on the same level, go to the previous level, or go to the next level. /// </summary> /// <param name="increment"></param> public void ReturnToLevel(int increment) { var data = new MultiformTransmissionData(MultiformName); if (increment == NEXT_LEVEL) LevelNameInfo.IncrementLevel(); else if (increment == PREV_LEVEL) LevelNameInfo.DecrementLevel(); data.SetAttr<LevelNameInfo>("LevelNameInfo", LevelNameInfo); FadeOutAndClose(20, Color.White, LevelLoadMultiform.MultiformName, data, false, () => { UpdateForms(); }, () => { RenderForms(); }); }
public override void Construct(MultiformTransmissionData args) { if (args.SenderName == LevelMultiform.MultiformName) { LevelNameInfo = args.GetAttr<LevelNameInfo>("LevelNameInfo"); } else { throw new MultiformException( String.Format("Unknown multiform layout: '{0}' -> '{1}'.", args.SenderName, MultiformName) ); } Construct_Text(); Construct_Buttons(); RegisterForm(new ClickParticleSpawnerForm()); FadeIn(20, Color.White, Update_Main, Render_Main); }
public void Update_Main() { base.UpdateTime(); if (KeyboardInput.IsReleased(Keys.Escape)) { Paused ^= true; } if (!Paused) { UpdateForms(); var form = GetForm<BoardForm>(BoardFormName); if (form.LevelComplete) { if (LevelNameInfo.Sequential) { if (LevelNameInfo.LevelNumber.Value == LoadedLevelManager.HighestUnlockedLevel) LoadedLevelManager.HighestUnlockedLevel++; } var data = new MultiformTransmissionData(MultiformName); data.SetAttr<LevelNameInfo>("LevelNameInfo", LevelNameInfo); data.SetAttr<LevelInfo>("LevelInfo", LevelInfo); FadeOutAndClose( 20, Color.White, LevelCompleteMultiform.MultiformName, data, true, () => { UpdateForms(); }, Render_Main); } else if (GetForm<GUIButton>(BackButtonFormName).IsReleased(MouseButtons.Left)) { FadeOutAndClose( 20, Color.White, LevelSelectMultiform.MultiformName, null, true, () => { UpdateForms(); }, Render_Main); } } }
public override void Construct(MultiformTransmissionData args) { LevelNameInfo = args == null ? new LevelNameInfo(0) : args.GetAttr<LevelNameInfo>("LevelNameInfo"); LevelInfo = args.GetAttr<LevelInfo>("LevelInfo"); RegisterForm(BoardFormName, new BoardForm(LevelInfo)); RegisterForm(InventoryFormName, new InventoryForm(LevelInfo)); RegisterForm(BackButtonFormName, new GUIButton( BackButtonInfo, BackButtonBottomLeft, PositionType.BottomLeft)); HasTutorialForm = LevelInfo.TutorialNumber.HasValue; if (HasTutorialForm) { var num = LevelInfo.TutorialNumber.Value; RegisterForm(TutorialFormName, TutorialManager.GetTutorial(num)); } FadeIn(20, Color.White, Update_Main, Render_Main); }
public override void Construct(MultiformTransmissionData args) { // We have to set this value to false so that it doesn't automatically start out as // true when we reconstruct this multiform, which would cause the player to automatically // go back into the last level they selected. buttonPressed = false; HasScrollBar = false; int BUTTON_WIDTH = Assets.LevelSelect.Images.ClearedLevelButton.Width; int BUTTON_HEIGHT = Assets.LevelSelect.Images.ClearedLevelButton.Height; int xOffset = INITIAL_LEVEL_SELECT_X_OFFSET; int yOffset = INITIAL_LEVEL_SELECT_Y_OFFSET; int rowNum = LoadedLevelManager.SequentialLevels.Length / BUTTONS_PER_ROW, totalWidth = (BUTTON_WIDTH + LEVEL_SELECT_BUTTON_GAP_X - 2) * BUTTONS_PER_ROW, totalHeight = rowNum * BUTTON_HEIGHT + (rowNum - 1) * LEVEL_SELECT_BUTTON_GAP_Y + 200, scrollBarHeight = DisplayManager.WindowResolution.Height - 2 * INITIAL_LEVEL_SELECT_Y_OFFSET; LevelSelectScrollBar scrollBar = null; // We only add a scrollbar if there is not enough room onscreen to fit everything. This occurs // when the total vertical space taken up by the level select buttons is greater than that which // would've been taken up by the scrollbar. if (totalHeight > scrollBarHeight) { var topLeft = new Vector2(xOffset + totalWidth + 20, yOffset - 10); scrollBar = new LevelSelectScrollBar(topLeft, scrollBarHeight, totalHeight, 12, true); RegisterForm(ScrollBarFormName, scrollBar); HasScrollBar = true; } // Construct all the buttons. int xIndex, yIndex; LevelSelectButton button; for (int i = 0; i < LoadedLevelManager.SequentialLevels.Length; i++) { xIndex = i % BUTTONS_PER_ROW; yIndex = i / BUTTONS_PER_ROW; button = new LevelSelectButton( new RectCollider( xOffset + xIndex * (BUTTON_WIDTH + LEVEL_SELECT_BUTTON_GAP_X), yOffset + yIndex * (BUTTON_HEIGHT + LEVEL_SELECT_BUTTON_GAP_Y), BUTTON_WIDTH, BUTTON_HEIGHT), scrollBar, i); RegisterForm(button); } RegisterForm(BackButtonFormName, new GUIButton(BackButtonInfo, BackButtonBottomLeft, PositionType.BottomLeft)); RegisterForm(new ClickParticleSpawnerForm()); FadeIn(20, Color.White, Update_Main, Render_Main); }
public void Update_Main() { if (HasScrollBar) { UpdateForm(ScrollBarFormName); } UpdateFormsExcept(ScrollBarFormName); if (buttonPressed) { var data = new MultiformTransmissionData(MultiformName); var LevelNameInfo = new LevelNameInfo(selectedLevelNumber); data.SetAttr<LevelNameInfo>("LevelNameInfo", LevelNameInfo); FadeOutAndClose( 20, Color.White, LevelLoadMultiform.MultiformName, data, true, () => { UpdateForms(); }, Render_Main); } else if (GetForm<GUIButton>(BackButtonFormName).IsReleased(MouseButtons.Left)) { FadeOutAndClose( 20, Color.White, MainMenu.MainMenuMultiform.MultiformName, new MultiformTransmissionData(MultiformName), true, () => { UpdateForms(); }, Render_Main); } }
protected void FadeOutAndClose( int duration, Color colour, string multiformName, MultiformTransmissionData data = null, bool clearForms = true, Action backgroundUpdater = null, Action backgroundRenderer = null, bool hideMouseTrail = true) { FadeAlpha = 0f; FadeDuration = duration; FadeColour = colour; multiformToConstruct = multiformName; transmissionData = data; this.clearForms = clearForms; updater = backgroundUpdater; renderer = backgroundRenderer; SetUpdater(Update_FadeOut); SetRenderer(Render_Fade); if (hideMouseTrail) { // Hide the mouse cursor trail. The way the trail is rendered makes it // look strange on top of backgrounds of certain colours. Manager.GetActiveMultiform<ForegroundContentMultiform>(ForegroundContentMultiform.MultiformName) .GetForm<MouseTrailForm>(ForegroundContentMultiform.MouseTrailFormName).Hide(); } }
public override void Construct(MultiformTransmissionData args) { // Reinitialize variables that may have been carried over from the last // time the multiform was loaded. TimeOfMessagesCopied = -1; ResetTime(); WarningMessages.Clear(); RegisteredTextForms.Clear(); LevelNameInfo = args.GetAttr<LevelNameInfo>("LevelNameInfo"); LevelInfo = new LevelInfo(LevelNameInfo.LevelName); FatalError = LevelInfo.Exception != null; if (FatalError) { ErrorMessage = LevelInfo.Exception.Message; } if (LevelInfo != null && LevelInfo.WarningMessages.Count > 0) { WarningMessages.AddRange(LevelInfo.WarningMessages); } TransmissionData = new MultiformTransmissionData(MultiformName); TransmissionData.SetAttr<LevelNameInfo>("LevelNameInfo", LevelNameInfo); TransmissionData.SetAttr<LevelInfo>("LevelInfo", LevelInfo); ConstructMessageForms(); SetUpdater(Update_Main); SetRenderer(Render_Main); }
public override void Construct(MultiformTransmissionData args) { LevelNameInfo = args == null ? new LevelNameInfo(0) : args.GetAttr<LevelNameInfo>("LevelNameInfo"); LevelInfo = args.GetAttr<LevelInfo>("LevelInfo"); RegisterForm(BoardFormName, new BoardForm(LevelInfo)); RegisterForm(InventoryFormName, new InventoryForm(LevelInfo)); RegisterForm(BackButtonFormName, new GUIButton( BackButtonInfo, BackButtonBottomLeft, PositionType.BottomLeft)); FadeIn(20, Color.White, Update_Main, Render_Main); }
public override void Construct(MultiformTransmissionData args) { SetUpdater(Update_Main); SetRenderer(Render_Main); BackgroundTexture = Assets.Shared.Images.Background; }
public override void Construct(MultiformTransmissionData args) { RegisterForm(PlayButtonFormName, new GUIButton(PlayButtonInfo, PlayButtonCenter)); RegisterForm(OptionsButtonFormName, new GUIButton(OptionsButtonInfo, OptionsButtonCenter)); RegisterForm(CreditsButtonFormName, new GUIButton(CreditsButtonInfo, CreditsButtonCenter)); var navigLeft = new[] { Keys.Up, Keys.Left }; var navigRight = new[] { Keys.Down, Keys.Right }; var buttons = new[] { PlayButtonFormName, OptionsButtonFormName, CreditsButtonFormName }; RegisterForm( KeyboardButtonNavigatorFormName, new KeyboardButtonNavigatorForm(buttons, navigLeft, navigRight, new List<Keys>() { Keys.Escape })); RegisterForm(new ClickParticleSpawnerForm()); if (args != null && args.SenderName == LevelSelectMultiform.MultiformName) { FadeIn(20, Color.White, Update_Main, Render_Main); } else { SetUpdater(Update_Main); SetRenderer(Render_Main); } }