Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.30 KB | None | 0 0
  1. #region Usings
  2.  
  3. using Microsoft.Xna.Framework;
  4. using Rite_of_passage.Globals;
  5. using Rite_of_passage.Models.GUI.Elements.AnimatedPanels;
  6. using Rite_of_passage.Models.GUI.Models;
  7. using Rite_of_passage.Tools;
  8.  
  9. #endregion
  10.  
  11. namespace Rite_of_passage.Models.GUI.Menus
  12. {
  13.     public class GuiMainMenu : GuiTemplate
  14.     {
  15.         #region Load
  16.  
  17.         public override void LoadContent()
  18.         {
  19.             LoadSplashScreen();
  20.  
  21.             LoadMainMenu();
  22.  
  23.             LoadOptionsMenu();
  24.  
  25.             LoadFullScreen();
  26.  
  27.             LoadQuitMenu();
  28.  
  29.             SelectMenu("SplashScreen");
  30.  
  31.             base.LoadContent();
  32.         }
  33.  
  34.         private void LoadFullScreen()
  35.         {
  36.             var yes = new TextPanel("< Yes >",
  37.                 new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
  38.                 MediumFont,
  39.                 Color.White, true);
  40.  
  41.             var no = new TextPanel("< No >",
  42.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
  43.                 MediumFont,
  44.                 Color.White, true);
  45.  
  46.             var back = new TextPanel("< Back >",
  47.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing * 2f),
  48.                 MediumFont,
  49.                 Color.White, true);
  50.  
  51.             var title = new TextPanel("-- Are you sure? --",
  52.                 new Vector2(Screen.Center.X, yes.Position.Y - VerticalSpacing * 2),
  53.                 MediumFont,
  54.                 Color.White, true);
  55.  
  56.             GuiGroup newGroup = new GuiGroup();
  57.  
  58.             newGroup.Add(yes);
  59.             newGroup.Add(no);
  60.             newGroup.Add(back);
  61.             newGroup.SetTitle(title);
  62.  
  63.             DicoGroups.Add("FullScreen", newGroup);
  64.         }
  65.  
  66.         private void LoadOptionsMenu()
  67.         {
  68.             var reDefKeys = new TextPanel("< Redefine Keys >",
  69.                 new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
  70.                 MediumFont,
  71.                 Color.White, true);
  72.  
  73.             var fullScreen = new TextPanel("< Toggle FullScreen >",
  74.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
  75.                 MediumFont,
  76.                 Color.White, true);
  77.  
  78.             var back = new TextPanel("< Back >",
  79.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing * 2f),
  80.                 MediumFont,
  81.                 Color.White, true);
  82.  
  83.             var title = new TextPanel("-- Options --",
  84.                 new Vector2(Screen.Center.X, reDefKeys.Position.Y - VerticalSpacing * 2),
  85.                 MediumFont,
  86.                 Color.White, true);
  87.  
  88.             GuiGroup newGroup = new GuiGroup();
  89.  
  90.             newGroup.Add(reDefKeys);
  91.             newGroup.Add(fullScreen);
  92.             newGroup.Add(back);
  93.             newGroup.SetTitle(title);
  94.  
  95.             DicoGroups.Add("Options", newGroup);
  96.         }
  97.  
  98.         private void LoadQuitMenu()
  99.         {
  100.             var yes = new TextPanel("< Yes >",
  101.                 new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
  102.                 MediumFont,
  103.                 Color.White, true);
  104.  
  105.             var no = new TextPanel("< No >",
  106.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
  107.                 MediumFont,
  108.                 Color.White, true);
  109.  
  110.             var title = new TextPanel("-- Are you sure? --",
  111.                 new Vector2(Screen.Center.X, yes.Position.Y - VerticalSpacing * 2),
  112.                 MediumFont,
  113.                 Color.White, true);
  114.  
  115.             GuiGroup newGroup = new GuiGroup();
  116.  
  117.             newGroup.Add(yes);
  118.             newGroup.Add(no);
  119.             newGroup.SetTitle(title);
  120.  
  121.             DicoGroups.Add("Quit", newGroup);
  122.         }
  123.  
  124.         private void LoadMainMenu()
  125.         {
  126.  
  127.             var start = new TextPanel("< Start >",
  128.                 new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
  129.                 MediumFont,
  130.                 Color.White, true);
  131.  
  132.             var options = new TextPanel("< Options >",
  133.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
  134.                 MediumFont,
  135.                 Color.White, true);
  136.  
  137.             var quit = new TextPanel("< Quit >",
  138.                 new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing * 2f),
  139.                 MediumFont,
  140.                 Color.White, true);
  141.  
  142.             var title = new TextPanel("-- Main Menu --",
  143.                 new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing * 2),
  144.                 MediumFont,
  145.                 Color.White, true);
  146.  
  147.  
  148.             GuiGroup newGroup = new GuiGroup();
  149.  
  150.             newGroup.Add(start);
  151.             newGroup.Add(options);
  152.             newGroup.Add(quit);
  153.             newGroup.SetTitle(title);
  154.             newGroup.SetAlpha(0);
  155.             newGroup.TurnOn();
  156.  
  157.             DicoGroups.Add("MainMenu", newGroup);
  158.         }
  159.  
  160.         private void LoadSplashScreen()
  161.         {
  162.             string textPanelString = "< Press Space >";
  163.  
  164.             var textPanel = new TextPanel(textPanelString,
  165.                 Screen.Center,
  166.                 BigFont,
  167.                 Color.White, true);
  168.  
  169.             textPanel.SetStep(0.02f);
  170.             textPanel.Blink(true);
  171.  
  172.             GuiGroup newGroup = new GuiGroup { IsActive = true };
  173.             newGroup.Add(textPanel);
  174.             newGroup.IsCursor = false;
  175.  
  176.             DicoGroups.Add("SplashScreen", newGroup);
  177.         }
  178.  
  179.         #endregion
  180.  
  181.         public override void Confirm()
  182.         {
  183.             switch (CurrentMenu)
  184.             {
  185.                 case "SplashScreen":
  186.                     EmitConfirmSound();
  187.                     SelectMenu("MainMenu");
  188.                     ResetCursorPos();
  189.                     break;
  190.  
  191.                 case "MainMenu":
  192.                     if (Selection == 0)
  193.                     {
  194.                         EmitConfirmSound();
  195.                         OnStart?.Invoke();
  196.                     }
  197.                     else if (Selection == 1)
  198.                     {
  199.                         EmitClickSound();
  200.                         SelectMenu("Options");
  201.                         ResetCursorPos();
  202.                     }
  203.                     else if (Selection == 2)
  204.                     {
  205.                         EmitClickSound();
  206.                         SelectMenu("Quit");
  207.                         ResetCursorPos();
  208.                     }
  209.                     break;
  210.  
  211.                 case "Options":
  212.                     if (Selection == 0)
  213.                     {
  214.                         World.Camera.Shake(Camera.Impact.Small);
  215.                         EmitErrorSound();
  216.                     }
  217.                     else if (Selection == 1)
  218.                     {
  219.                         EmitClickSound();
  220.                         SelectMenu("FullScreen");
  221.                         ResetCursorPos();
  222.                     }
  223.                     else if (Selection == 2)
  224.                     {
  225.                         EmitCancelSound();
  226.                         SelectMenu("MainMenu");
  227.                         ResetCursorPos();
  228.                     }
  229.                     break;
  230.  
  231.                 case "Quit":
  232.                     if (Selection == 0)
  233.                         OnQuit?.Invoke();
  234.                     else if (Selection == 1)
  235.                     {
  236.                         EmitCancelSound();
  237.                         SelectMenu("MainMenu");
  238.                         ResetCursorPos();
  239.                     }
  240.                     break;
  241.  
  242.                 case "FullScreen":
  243.                     if (Selection == 0)
  244.                     {
  245.                         if (!Screen.IsFullScreen)
  246.                         {
  247.                             EmitClickSound();
  248.                             Screen.SetFullScreen(true);
  249.                         }
  250.                     }
  251.                     else if (Selection == 1)
  252.                     {
  253.                         if (Screen.IsFullScreen)
  254.                         {
  255.                             EmitClickSound();
  256.                             Screen.SetFullScreen(false);
  257.                         }
  258.                     }
  259.                     else if (Selection == 2)
  260.                     {
  261.                         EmitCancelSound();
  262.                         SelectMenu("Options");
  263.                         ResetCursorPos();
  264.                     }
  265.                     break;
  266.             }
  267.  
  268.             base.Confirm();
  269.         }
  270.  
  271.         public override void Cancel()
  272.         {
  273.             switch (CurrentMenu)
  274.             {
  275.                 case "SplashScreen":
  276.                     break;
  277.  
  278.                 case "MainMenu":
  279.                     SelectMenu("SplashScreen");
  280.                     break;
  281.  
  282.                 case "Options":
  283.                     SelectMenu("MainMenu");
  284.                     ResetCursorPos();
  285.                     break;
  286.  
  287.                 case "FullScreen":
  288.                     SelectMenu("Options");
  289.                     ResetCursorPos();
  290.                     break;
  291.  
  292.                 case "Quit":
  293.                     SelectMenu("MainMenu");
  294.                     ResetCursorPos();
  295.                     break;
  296.             }
  297.  
  298.             if (CurrentMenu != "SplashScreen")
  299.                 EmitCancelSound();
  300.  
  301.             base.Cancel();
  302.         }
  303.     }
  304. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement