/// <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 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); } }
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) { // 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); }