示例#1
0
        public StartScreenState(Game game) : base(game, "levels/startscreen.level", LevelOptions.Menu)
        {
            // Create camera
            m_animatedCamera = new AnimatedCameraController(Level.TimeMachine);

            // Create GUI
            var texture = Texture.Get("gui/logo.png", true);

            m_logo               = new Image(texture, Quad.UnitSquare, game.Screen.Width, game.Screen.Width * ((float)texture.Height / (float)texture.Width));
            m_logo.Anchor        = Anchor.CentreMiddle;
            m_logo.LocalPosition = new Vector2(-0.5f * m_logo.Width, -0.5f * m_logo.Height - 8.0f);

            m_instruction               = new Text(UIFonts.Smaller, GetInstructionText(), UIColours.Text, TextAlignment.Center);
            m_instruction.Anchor        = Anchor.BottomMiddle;
            m_instruction.LocalPosition = new Vector2(0.0f, -36.0f - m_instruction.Height);

            var copyrightText = (char)169 + "2016 Daniel Ratcliffe"; // Copyright symbol

            m_copyright               = new Text(UIFonts.Smallest, copyrightText, UIColours.Grey, TextAlignment.Center);
            m_copyright.Anchor        = Anchor.BottomMiddle;
            m_copyright.Scale         = 0.75f;
            m_copyright.LocalPosition = new Vector2(0.0f, -8.0f - m_copyright.Height);

            m_logoSize = 0.0f;
            UpdateLogoSize();
        }
示例#2
0
        public CutsceneState(Game game, Mod mod, string path, CutsceneContext context, Playthrough playthrough = null) : base(game, path, LevelOptions.Cutscene)
        {
            m_mod             = mod;
            m_context         = context;
            m_playthrough     = playthrough;
            m_initialShotPath = path;

            m_border         = new CutsceneBorder(true);
            m_animatedCamera = new AnimatedCameraController(Level.TimeMachine);

            m_skipPrompt                       = new InputPrompt(UIFonts.Smaller, game.Language.Translate("menus.skip"), TextAlignment.Right);
            m_skipPrompt.Anchor                = Anchor.BottomRight;
            m_skipPrompt.LocalPosition         = new Vector2(-16.0f, -16.0f - m_skipPrompt.Font.Height);
            m_skipPrompt.GamepadButton         = GamepadButton.A;
            m_skipPrompt.SteamControllerButton = SteamControllerButton.MenuSelect;
            m_skipPrompt.MouseButton           = MouseButton.Left;
            m_skipPrompt.Key                   = Key.Return;
            m_skipPrompt.OnClick              += delegate(object sender, EventArgs e)
            {
                Continue();
            };

            m_loopingSounds = new Dictionary <string, IStoppable>();

            var termFont     = UIFonts.Smaller;
            var screenHeight = game.Screen.Height - 2.0f * m_border.BarHeight;
            var numLines     = (int)(screenHeight / termFont.Height);
            var screenWidth  = game.Screen.Width - (game.Screen.Height - numLines * termFont.Height);

            m_terminal               = new Terminal(termFont, UIColours.White, screenWidth, numLines);
            m_terminal.Anchor        = Anchor.CentreMiddle;
            m_terminal.LocalPosition = new Vector2(-0.5f * m_terminal.Width, -0.5f * m_terminal.Height);
        }
示例#3
0
        protected MenuState(Game game, string title, string level, MenuArrangement arrangement) : base(game, level, LevelOptions.Menu)
        {
            m_unlocalisedTitle     = title;
            m_unlocalisedBack      = "menus.back";
            m_unlocalisedAltSelect = "menus.select";

            // Create camera
            m_animatedCamera = new AnimatedCameraController(Level.TimeMachine);

            // Create title menu
            {
                m_titleMenu = new TextMenu(UIFonts.Default, new string[] {
                    Game.Language.Translate(title),
                }, TextAlignment.Center, MenuDirection.Vertical);
                if (arrangement == MenuArrangement.RobotScreen)
                {
                    m_titleMenu.Anchor        = Anchor.TopMiddle;
                    m_titleMenu.LocalPosition = new Vector2(0.0f, 40.0f);
                }
                else
                {
                    m_titleMenu.Anchor        = Anchor.TopMiddle;
                    m_titleMenu.LocalPosition = new Vector2(0.0f, 32.0f);
                }
                m_titleMenu.TextColour = UIColours.Title;
                m_titleMenu.Enabled    = false;
                m_titleMenu.MouseOnly  = true;
                m_titleMenu.OnClicked += delegate(object sender, TextMenuClickedEventArgs e)
                {
                    if (Dialog == null)
                    {
                        OnTitleClicked();
                    }
                };
            }

            // Create prompts
            {
                m_backPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate(m_unlocalisedBack), TextAlignment.Right);
                m_backPrompt.Key                   = Key.Escape;
                m_backPrompt.MouseButton           = MouseButton.Left;
                m_backPrompt.GamepadButton         = GamepadButton.B;
                m_backPrompt.SteamControllerButton = SteamControllerButton.MenuBack;
                if (arrangement == MenuArrangement.RobotScreen)
                {
                    m_backPrompt.Anchor        = Anchor.BottomMiddle;
                    m_backPrompt.LocalPosition = new Vector2(225.0f, -40.0f - m_backPrompt.Font.Height);
                }
                else
                {
                    m_backPrompt.Anchor        = Anchor.BottomRight;
                    m_backPrompt.LocalPosition = new Vector2(-16.0f, -16.0f - m_backPrompt.Font.Height);
                }
                m_backPrompt.OnClick += delegate(object sender, EventArgs e)
                {
                    GoBack();
                };
            }
            {
                m_selectPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate("menus.select"), TextAlignment.Left);
                m_selectPrompt.Key                   = Key.Return;
                m_selectPrompt.GamepadButton         = GamepadButton.A;
                m_selectPrompt.SteamControllerButton = SteamControllerButton.MenuSelect;
                if (arrangement == MenuArrangement.RobotScreen)
                {
                    m_selectPrompt.Anchor        = Anchor.BottomMiddle;
                    m_selectPrompt.LocalPosition = new Vector2(-224.0f, -40.0f - m_selectPrompt.Font.Height);
                }
                else
                {
                    m_selectPrompt.Anchor        = Anchor.BottomLeft;
                    m_selectPrompt.LocalPosition = new Vector2(16.0f, -16.0f - m_selectPrompt.Font.Height);
                }
                m_selectPrompt.Visible = false;
            }
            {
                m_altSelectPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate(m_unlocalisedAltSelect), TextAlignment.Left);
                m_altSelectPrompt.Key                   = Key.Tab;
                m_altSelectPrompt.GamepadButton         = GamepadButton.Y;
                m_altSelectPrompt.SteamControllerButton = SteamControllerButton.MenuAltSelect;
                m_altSelectPrompt.Anchor                = m_selectPrompt.Anchor;
                m_altSelectPrompt.LocalPosition         = m_selectPrompt.LocalPosition + new Vector2(0.0f, -m_altSelectPrompt.Font.Height);
                m_altSelectPrompt.Visible               = false;
            }
        }
示例#4
0
 public MainMenuState(Game game) : base(game, "levels/startscreen.level", LevelOptions.Menu)
 {
     // Create camera
     m_animatedCamera = new AnimatedCameraController(Level.TimeMachine);
 }