Esempio n. 1
0
 private void ShowDiskSelect()
 {
     if (m_diskSelector == null)
     {
         m_diskSelector           = new DiskSelector(Game.Screen, (m_activeDisk != null) ? m_activeDisk.Path : null, m_activeDiskMod, Game.User.Progress);
         m_diskSelector.OnSelect += delegate(object o, DiskSelectEventArgs args)
         {
             // Reboot computer with new disk
             m_computer.TurnOff();
             SelectDisk(args.Disk, args.Mod);
             m_computer.TurnOn();
             UpdateDisplay();
         };
         m_diskSelector.OnBrowseWorkshop += delegate(object o, EventArgs args)
         {
             Game.Network.OpenWorkshopHub(new string[] { "Arcade Games" });
         };
         m_diskSelector.OnClose += delegate(object o, EventArgs args)
         {
             if (m_diskSelector == o)
             {
                 Game.Screen.Elements.Remove(m_diskSelector);
                 m_diskSelector.Dispose();
                 m_diskSelector = null;
             }
         };
         Game.Screen.Elements.Add(m_diskSelector);
     }
 }
Esempio n. 2
0
        protected override void OnShutdown()
        {
            base.OnShutdown();

            // Steam controller
            if (Game.ActiveSteamController != null)
            {
                Game.ActiveSteamController.ActionSet = SteamControllerActionSet.Menu.GetID();
            }

            // Shutdown the computer
            m_computer.Dispose();
            m_computer = null;

            // Stop audio
            if (m_speakerOutput != null)
            {
                m_speakerOutput.Stop();
            }

            // Dispose elements
            m_displayTexture.Dispose();
            m_displayBitmap.Dispose();

            Game.Screen.Elements.Remove(m_backPrompt);
            m_backPrompt.Dispose();

            Game.Screen.Elements.Remove(m_diskSelectPrompt);
            m_diskSelectPrompt.Dispose();

            Game.Screen.Elements.Remove(m_aPrompt);
            m_aPrompt.Dispose();

            Game.Screen.Elements.Remove(m_bPrompt);
            m_bPrompt.Dispose();

            // Remove disk selector
            if (m_diskSelector != null)
            {
                Game.Screen.Elements.Remove(m_diskSelector);
                m_diskSelector.Dispose();
                m_diskSelector = null;
            }
        }
Esempio n. 3
0
        public ArcadeState(Game.Game game) : base(game, "levels/startscreen.level", LevelOptions.Menu)
        {
            // Create computer
            m_computer = new Computer(GetComputerID());
            m_computer.Memory.TotalMemory = RAM;
            m_computer.Host        = App.Info.Title + " " + App.Info.Version;
            m_computer.Output      = new LogWriter(LogLevel.User);
            m_computer.ErrorOutput = new LogWriter(LogLevel.Error);
            m_computer.SetPowerStatus(PowerStatus.Charged, 1.0);

            m_devices = new RobotDevices();
            m_computer.Ports.Add(m_devices);

            // Create some textures
            m_displayBitmap  = new Bitmap(m_devices.Display.Width, m_devices.Display.Height);
            m_displayTexture = new BitmapTexture(m_displayBitmap);
            UpdateDisplay();

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

            // Create prompts
            {
                m_zKey = Key.Z.RemapToLocal();
                m_xKey = Key.X.RemapToLocal();
                m_wKey = Key.W.RemapToLocal();
                m_sKey = Key.S.RemapToLocal();
                m_aKey = Key.A.RemapToLocal();
                m_dKey = Key.D.RemapToLocal();

                m_backPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate("menus.back"), TextAlignment.Right);
                m_backPrompt.MouseButton           = MouseButton.Left;
                m_backPrompt.Key                   = Key.Escape;
                m_backPrompt.GamepadButton         = GamepadButton.Back;
                m_backPrompt.SteamControllerButton = SteamControllerButton.ArcadeBack;
                m_backPrompt.Anchor                = Anchor.BottomRight;
                m_backPrompt.LocalPosition         = new Vector2(-16.0f, -16.0f - m_backPrompt.Font.Height);
                m_backPrompt.OnClick              += delegate
                {
                    GoBack();
                };

                m_diskSelectPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate("menus.arcade.swap_disk"), TextAlignment.Right);
                m_diskSelectPrompt.Key                   = Key.Tab;
                m_diskSelectPrompt.GamepadButton         = GamepadButton.Start;
                m_diskSelectPrompt.SteamControllerButton = SteamControllerButton.ArcadeSwapDisk;
                m_diskSelectPrompt.Anchor                = Anchor.BottomRight;
                m_diskSelectPrompt.LocalPosition         = new Vector2(-16.0f, -16.0f - m_backPrompt.Font.Height - m_diskSelectPrompt.Height);

                m_bPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate("menus.arcade.b"), TextAlignment.Left);
                m_bPrompt.Key                   = m_xKey;
                m_bPrompt.GamepadButton         = GamepadButton.B;
                m_bPrompt.SteamControllerButton = SteamControllerButton.ArcadeB;
                m_bPrompt.Anchor                = Anchor.BottomLeft;
                m_bPrompt.LocalPosition         = new Vector2(16.0f, -16.0f - m_bPrompt.Height);

                m_aPrompt                       = new InputPrompt(UIFonts.Smaller, Game.Language.Translate("menus.arcade.a"), TextAlignment.Left);
                m_aPrompt.Key                   = m_zKey;
                m_aPrompt.GamepadButton         = GamepadButton.A;
                m_aPrompt.SteamControllerButton = SteamControllerButton.ArcadeA;
                m_aPrompt.Anchor                = Anchor.BottomLeft;
                m_aPrompt.LocalPosition         = new Vector2(16.0f, -16.0f - 2.0f * m_bPrompt.Height);
            }

            // Create disk selector
            m_diskSelector  = null;
            m_activeDisk    = null;
            m_activeDiskMod = null;
            m_cachedScore   = 0;
        }