Ejemplo n.º 1
0
 public DeconstructSellable(ActorInitializer init, DeconstructSellableInfo info)
     : base(info)
 {
     this.info     = info;
     developerMode = init.Self.Owner.PlayerActor.Trait <DeveloperMode>();
     wsb           = init.Self.Trait <WithSpriteBody>();
 }
Ejemplo n.º 2
0
        public static ICommand Analyze(string arg)
        {
            ICommand resultCommand = null;
            //DeveloperMode.Print(arg);
            char firstChar = arg.ToCharArray()[0];

            switch (firstChar)
            {
            case '+':
                DeveloperMode.Print("START SUM");
                resultCommand = new SumCommand();
                DeveloperMode.Print("END SUM");
                break;

            case 'x':
                DeveloperMode.Print("START VARIABLE");
                resultCommand = new Variable();
                DeveloperMode.Print("END VARIABLE");
                break;
            }

            if (resultCommand == null)
            {
                DeveloperMode.Print("START NUMBER");
                double number = double.Parse(arg);
                resultCommand = new Constant(number);
                DeveloperMode.Print("END NUMBER");
            }

            return(resultCommand);
        }
Ejemplo n.º 3
0
 public BaseProvider(Actor self, BaseProviderInfo info)
 {
     Info      = info;
     this.self = self;
     devMode   = self.Owner.PlayerActor.Trait <DeveloperMode>();
     progress  = total = info.InitialDelay;
 }
Ejemplo n.º 4
0
        private static string RemoveCommandAndParentheses(string formula)
        {
            string result = "NOTHING HERE";

            DeveloperMode.Print(formula);
            int index = formula.IndexOf('(');

            if (index != -1)
            {
                formula = formula.Remove(0, index + 1);
//                result = result.Remove(result.Length - 1, 1);
                int counterBrakets = 1;
                int counterLoop    = 0;
                foreach (char c in formula)
                {
                    switch (c)
                    {
                    case '(':
                        counterBrakets++;
                        break;

                    case ')':
                        counterBrakets--;
                        break;
                    }
                    if (counterBrakets == 0)
                    {
                        result = formula.Remove(counterLoop, 1);
                    }
                    counterLoop++;
                }
            }
            DeveloperMode.Print(result);
            return(result);
        }
Ejemplo n.º 5
0
        public void WorldLoaded(World w, WorldRenderer wr)
        {
            var world = w;

            debugVis = world.WorldActor.TraitOrDefault <DebugVisualizations>();

            if (world.LocalPlayer != null)
            {
                devMode = world.LocalPlayer.PlayerActor.Trait <DeveloperMode>();
            }

            if (debugVis == null)
            {
                return;
            }

            var console = world.WorldActor.Trait <ChatCommands>();
            var help    = world.WorldActor.Trait <HelpCommand>();

            Action <string, string> register = (name, helpText) =>
            {
                console.RegisterCommand(name, this);
                help.RegisterHelp(name, helpText);
            };

            register("showcombatgeometry", "toggles combat geometry overlay.");
            register("showrendergeometry", "toggles render geometry overlay.");
            register("showscreenmap", "toggles screen map overlay.");
            register("showdepthbuffer", "toggles depth buffer overlay.");
            register("showactortags", "toggles actor tags overlay.");
        }
Ejemplo n.º 6
0
        public void WorldLoaded(World w, WorldRenderer wr)
        {
            world = w;

            if (world.LocalPlayer != null)
            {
                developerMode = world.LocalPlayer.PlayerActor.Trait <DeveloperMode>();
            }

            var console = world.WorldActor.Trait <ChatCommands>();
            var help    = world.WorldActor.Trait <HelpCommand>();

            Action <string, string> register = (name, helpText) =>
            {
                console.RegisterCommand(name, this);
                help.RegisterHelp(name, helpText);
            };

            register("visibility", "toggles visibility checks and minimap.");
            register("givecash", "gives the default or specified amount of money.");
            register("givecashall", "gives the default or specified amount of money to all players and ai.");
            register("instantbuild", "toggles instant building.");
            register("buildanywhere", "toggles you the ability to build anywhere.");
            register("unlimitedpower", "toggles infinite power.");
            register("enabletech", "toggles the ability to build everything.");
            register("instantcharge", "toggles instant support power charging.");
            register("all", "toggles all cheats and gives you some cash for your trouble.");
            register("crash", "crashes the game.");
            register("levelup", "adds a specified number of levels to the selected actors.");
            register("playerexperience", "adds a specified amount of player experience to the owner(s) of selected actors.");
            register("poweroutage", "causes owner(s) of selected actors to have a 5 second power outage.");
            register("kill", "kills selected actors.");
            register("dispose", "disposes selected actors.");
        }
Ejemplo n.º 7
0
 private void LanguageSelectorB_Click(object sender, EventArgs e)
 {
     DeveloperMode.Hide();
     LanguageSelectorA.Hide();
     LanguageSelectorB.Hide();
     StartPrompt.Show();
     MoreThanOne.Show();
 }
Ejemplo n.º 8
0
 public Researches(ActorInitializer init, ResearchesInfo info) : base(info)
 {
     this.info       = info;
     researchable    = init.Self.Trait <Researchable>();
     developerMode   = init.Self.Owner.PlayerActor.Trait <DeveloperMode>();
     playerResources = init.Self.Owner.PlayerActor.Trait <PlayerResources>();
     techLevel       = init.World.WorldActor.Trait <TechLevel>();
 }
Ejemplo n.º 9
0
        public SupportPowerManager(ActorInitializer init)
        {
            self    = init.self;
            devMode = init.self.Trait <DeveloperMode>();

            init.world.ActorAdded   += ActorAdded;
            init.world.ActorRemoved += ActorRemoved;
        }
Ejemplo n.º 10
0
        public DebugFiringOffsets(Actor self)
        {
            armaments = Lazy.New(() => self.TraitsImplementing <Armament>());

            var localPlayer = self.World.LocalPlayer;

            devMode = localPlayer != null?localPlayer.PlayerActor.Trait <DeveloperMode>() : null;
        }
Ejemplo n.º 11
0
		void INotifyCreated.Created(Actor self)
		{
			developerMode = self.Owner.PlayerActor.Trait<DeveloperMode>();
			techTree = self.Owner.PlayerActor.Trait<TechTree>();

			productionTraits = self.TraitsImplementing<BuilderUnit>().ToArray();
			CacheProducibles(self.Owner.PlayerActor);
		}
Ejemplo n.º 12
0
    void Awake()
    {
        instance = this;
        board    = GetComponent <GameBoard>();
        legal    = GetComponent <LegalMoves>();

        devUI.SetActive(inDevMode);
        gameUI.SetActive(!inDevMode);
    }
Ejemplo n.º 13
0
        public CombatDebugOverlay(Actor self)
        {
            armaments = Lazy.New(() => self.TraitsImplementing <Armament>());
            health    = Lazy.New(() => self.TraitOrDefault <Health>());

            var localPlayer = self.World.LocalPlayer;

            devMode = localPlayer != null?localPlayer.PlayerActor.Trait <DeveloperMode>() : null;
        }
Ejemplo n.º 14
0
 public Researches(ActorInitializer init, ResearchesInfo info)
     : base(info)
 {
     this.info            = info;
     this.researchable    = init.Self.TraitOrDefault <Researchable>();
     this.developerMode   = init.Self.Owner.PlayerActor.TraitOrDefault <DeveloperMode>();
     this.playerResources = init.Self.Owner.PlayerActor.TraitOrDefault <PlayerResources>();
     this.timeFactor      = init.Self.World.WorldActor.TraitOrDefault <ResearchDuration>().Duration;
 }
Ejemplo n.º 15
0
        public SupportPowerManager(ActorInitializer init)
        {
            self       = init.self;
            DevMode    = init.self.Trait <DeveloperMode>();
            RadarPings = Exts.Lazy(() => init.world.WorldActor.TraitOrDefault <RadarPings>());

            init.world.ActorAdded   += ActorAdded;
            init.world.ActorRemoved += ActorRemoved;
        }
Ejemplo n.º 16
0
        public CombatDebugOverlay(Actor self)
        {
            attack = Exts.Lazy(() => self.TraitOrDefault <AttackBase>());
            coords = Exts.Lazy(() => self.Trait <IBodyOrientation>());
            health = Exts.Lazy(() => self.TraitOrDefault <Health>());

            var localPlayer = self.World.LocalPlayer;

            devMode = localPlayer != null?localPlayer.PlayerActor.Trait <DeveloperMode>() : null;
        }
Ejemplo n.º 17
0
        public PowerManager(ActorInitializer init, PowerManagerInfo info)
        {
            Info   = info;
            Player = init.self.Owner;

            init.world.ActorAdded   += ActorAdded;
            init.world.ActorRemoved += ActorRemoved;

            devMode        = init.self.Trait <DeveloperMode>();
            wasHackEnabled = devMode.UnlimitedPower;
        }
Ejemplo n.º 18
0
        public PowerManager(Actor self, PowerManagerInfo info)
        {
            this.self = self;
            this.info = info;

            self.World.ActorAdded   += UpdateActor;
            self.World.ActorRemoved += RemoveActor;

            devMode        = self.Trait <DeveloperMode>();
            wasHackEnabled = devMode.UnlimitedPower;
        }
Ejemplo n.º 19
0
        public ProductionQueue(ActorInitializer init, Actor playerActor, ProductionQueueInfo info)
        {
            self            = init.self;
            Info            = info;
            playerResources = playerActor.Trait <PlayerResources>();
            playerPower     = playerActor.Trait <PowerManager>();
            developerMode   = playerActor.Trait <DeveloperMode>();

            Race    = init.Contains <RaceInit>() ? init.Get <RaceInit, string>() : self.Owner.Country.Race;
            Enabled = !info.Race.Any() || info.Race.Contains(Race);

            CacheProduceables(playerActor);
        }
Ejemplo n.º 20
0
    void Awake()
    {
        localBest        = PlayerPrefs.GetInt("localbest", 0);
        localBestUI.text = localBest + "";
        worldBest        = PlayerPrefs.GetInt("worldbest", localBest);
        worldBestUI.text = worldBest + "";

        board   = GetComponent <GameBoard>();
        puzzles = GetComponent <PuzzleManager>();
        legal   = GetComponent <LegalMoves>();
        ai      = GetComponent <AI>();
        cam     = Camera.main;

        inGameMode = !DeveloperMode.InDevMode();
    }
Ejemplo n.º 21
0
    void Start()
    {
        if (DeveloperMode.InDevMode())
        {
            legalMoves = GetComponent <LegalMoves>();
            board      = GetComponent <GameBoard>();
            devMode    = GetComponent <DeveloperMode>();

            StreamReader reader = new StreamReader("Assets/Puzzles/PGN.txt");
            CustomMethods.MeasureExecutionTime(false);
            pgn = reader.ReadToEnd();
            CustomMethods.MeasureExecutionTime(true);
            reader.Close();
            ReadPGN(pgn);
        }
    }
Ejemplo n.º 22
0
        private void Save_Button_Click(object sender, EventArgs e)
        {
            Serializer.cfg.useExternalEditor = useExternalEditor.Checked;
            Serializer.cfg.enableSplash      = EnableSplash.Checked;
            Serializer.cfg.disableUpdates    = DisableUpdates_CB.Checked;
            Serializer.cfg.autoFormatJSON    = AutoFormatJSON_CB.Checked;
            Serializer.cfg.UseDeveloperMode  = UseDeveloperMode.Checked;

            CurrentProjectVariables.UseNKHook = UseNKH_CB.Checked;

            Serializer.SaveSettings();
            ProjectHandler.SaveProject();
            ConsoleHandler.append_CanRepeat("Settings saved!!!");
            DeveloperMode.ControlDeveloperMode();
            this.Close();
        }
Ejemplo n.º 23
0
        void ITick.Tick(Actor self)
        {
            if (Info.SummoningDecay)
            {
                decaycounter--;
                if (decaycounter <= 0 & Hassummoningcount > 0)
                {
                    Hassummoningcount--;
                    decaycounter = Info.DecayTime;
                }
            }

            if (Hassummoningcount >= Info.SummoningTime)
            {
                ReplaceSelf(self);
            }

            devMode = self.Owner.PlayerActor.TraitOrDefault <DeveloperMode>();
            if (devMode != null && devMode.FastBuild)
            {
                ReplaceSelf(self);
            }

            if (!Info.Selfbuilds)
            {
                return;
            }

            if (Info.Selfbuilds)
            {
                if (selfBuildCounter-- <= 0)
                {
                    selfBuildCounter = Info.SelfBuildDelay;
                    if (self.Owner.PlayerActor.Trait <PlayerResources>().TakeCash(PayPerTick, true))
                    {
                        Hassummoningcount += 1;
                        var floattest = PayPerTick.ToString();
                        floattest = "- " + floattest + " Essence";
                        if (self.Owner.IsAlliedWith(self.World.RenderPlayer))
                        {
                            self.World.AddFrameEndTask(w => w.Add(new FloatingTextBackwards(self.CenterPosition,
                                                                                            self.Owner.Color.RGB, floattest, 30)));
                        }
                    }
                }
            }
        }
Ejemplo n.º 24
0
        public RenderDebugState(Actor self, RenderDebugStateInfo info)
        {
            var buildingInfo = self.Info.TraitInfoOrDefault <BuildingInfo>();
            var yOffset      = buildingInfo == null ? 1 : buildingInfo.Dimensions.Y;

            offset = new WVec(0, 512 * yOffset, 0);

            this.self = self;
            color     = GetColor();
            font      = Game.Renderer.Fonts[info.Font];

            var localPlayer = self.World.LocalPlayer;

            devMode = localPlayer != null?localPlayer.PlayerActor.Trait <DeveloperMode>() : null;

            ai = self.Owner.PlayerActor.TraitsImplementing <HackyAI>().FirstOrDefault(x => x.IsEnabled);
        }
Ejemplo n.º 25
0
        //
        //Initialize window
        //
        public Main()
        {
            InitializeComponent();
            Serializer.LoadSettings();
            toolbox = this;

            DeveloperMode.ControlDeveloperMode();
            Startup();

            Controls.OfType <MdiClient>().FirstOrDefault().BackColor = Color.FromArgb(15, 15, 15);
            this.BackgroundImageLayout = ImageLayout.Center;
            this.Resize    += mainResize;
            this.KeyPreview = true;

            this.versionTag.BackColor = Color.FromArgb(15, 15, 15);
            this.versionTag.Text      = version;
            this.DoubleBuffered       = true;
        }
Ejemplo n.º 26
0
        public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
        {
            ClearQueue();

            playerPower     = newOwner.PlayerActor.Trait <PowerManager>();
            playerResources = newOwner.PlayerActor.Trait <PlayerResources>();
            developerMode   = newOwner.PlayerActor.Trait <DeveloperMode>();

            if (!Info.Sticky)
            {
                Race    = self.Owner.Country.Race;
                Enabled = !Info.Race.Any() || Info.Race.Contains(Race);
            }

            // Regenerate the produceables and tech tree state
            oldOwner.PlayerActor.Trait <TechTree>().Remove(this);
            CacheProduceables(newOwner.PlayerActor);
            newOwner.PlayerActor.Trait <TechTree>().Update();
        }
Ejemplo n.º 27
0
        private void StartButton_Click(object sender, EventArgs e)
        {
            CountDown.Show();
            pictureBox1.Hide();
            pictureBox2.Hide();
            DeveloperMode.Hide();
            SubtitleDisplayBox.Show();
            StartButton.Hide();
            Pause.Show();

            if (moreThanOne)
            {
                BackgroundWorker ReaderWorker = new BackgroundWorker();
                ReaderWorker.DoWork += (send, param) => ReadInFromAssFile(openFileDialog1.FileName, openFileDialog2.FileName);
                ReaderWorker.RunWorkerAsync();
            }
            else
            {
                BackgroundWorker ReaderWorker = new BackgroundWorker();
                ReaderWorker.DoWork += (send, param) => ReadInFromAssFile(openFileDialog1.FileName, null);
                ReaderWorker.RunWorkerAsync();
            }
        }
Ejemplo n.º 28
0
 void Awake()
 {
     if (!DeveloperMode.InDevMode())
     {
         /*
          * List<string> puzzlesList = new List<string>();
          * //puzzles = new string[puzzleDifficultyCount][];
          * //for (int i = 0; i < puzzleDifficultyCount; i ++)
          *      //puzzlesList[i] = new List<string>();
          *
          * StreamReader reader = new StreamReader("Assets/Puzzles/Puzzles.txt");
          * while (reader.Peek() >= 0) {
          *      string line = reader.ReadLine();
          *      puzzlesList.Add(line);
          * }
          * puzzles = CustomMethods.ShuffleArray<string>(puzzlesList.ToArray());
          *
          * reader.Close();
          */
         puzzles = fenText.text.Split(new char[] { '\n' }, System.StringSplitOptions.RemoveEmptyEntries);
         puzzles = CustomMethods.ShuffleArray <string>(puzzles);
     }
 }
Ejemplo n.º 29
0
 private void DeveloperMode_Click(object sender, EventArgs e)
 {
     Password.Show();
     DeveloperMode.Hide();
 }
Ejemplo n.º 30
0
    void OnGUI()
    {
        if (developerModeScript == null)
        {
            developerModeScript = FindObjectOfType <DeveloperMode> ();
        }

        var style = new GUIStyle(GUI.skin.button);

        style.normal.textColor = Color.black;
        style.stretchWidth     = true;
        style.alignment        = TextAnchor.MiddleCenter;

        GUILayout.BeginVertical();

        GUI.backgroundColor = new Color(1f, 1f, 1f, 1);          // Grey background.

        // Toggle cheats.
        if (GUILayout.Button("Toggle cheats", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ToggleCheatsCommand;
            UpdateCurrentCheatButtonLabel();
        }

        if (GUILayout.Button(lastCheat, style))
        {
            UpdateLastCheatButtonLabel();
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.LastCheatName;
        }

        // Reset cheat string.
        if (GUILayout.Button("Clear cheat string", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.ClearCheatString();
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("General cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(1f, 0.9f, 0.0f, 1);          // Yellow background.

        // Toggle God mode.
        if (GUILayout.Button("Toggle God mode", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ToggleGodmodeCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUI.backgroundColor = new Color(1.0f, 1.0f, 1.0f, 1);          // White background.

        scrollPos = GUILayout.BeginScrollView(
            scrollPos,
            false,
            true,
            GUILayout.ExpandWidth(true),
            GUILayout.ExpandHeight(true)
            );

        GUI.backgroundColor = new Color(1.0f, 0.5f, 0.75f, 1);          // Grey background.

        // Force game over.
        if (GUILayout.Button("Force game over", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.GameOverCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Force start.
        if (GUILayout.Button("Force start", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ForceStartCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Force restart.
        if (GUILayout.Button("Force restart", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ForceRestartCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Add score.
        if (GUILayout.Button("Add 1,000,000 score", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.AddScoreCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Add life.
        if (GUILayout.Button("Add 1 life", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.AddLifeCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Lose life.
        if (GUILayout.Button("Lose 1 life", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.LoseLifeCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Next wave.
        if (GUILayout.Button(nextwavelabel, style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.NextWaveCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Previous wave.
        if (GUILayout.Button(previouswavelabel, style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.PreviousWaveCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Do bonus round.
        if (GUILayout.Button(DoBonusRoundLabel, style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.DoBonusRoundCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Save cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(0.0f, 0.8f, 1.0f, 1);          // Dark grey background.

        // Save settings.
        if (GUILayout.Button("Save settings", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SaveSettingsCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Load settings.
        if (GUILayout.Button("Load settings", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.LoadSettingsCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Set high quality settings.
        if (GUILayout.Button("High quality settings", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SetQualitySettingsHigh;
            UpdateCurrentCheatButtonLabel();
        }

        // Set low quality settings.
        if (GUILayout.Button("Low quality settings", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SetQualitySettingsLow;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("General powerup cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(0.5f, 0.75f, 1.0f, 1);          // Pale blue background.

        // Reset powerup time.
        if (GUILayout.Button("Reset powerup time", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.PowerupTimeCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Reset all powerups.
        if (GUILayout.Button("Reset all powerups", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ResetAllPowerupsCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Shooting cheats", EditorStyles.boldLabel);

        // Standard shot.
        if (GUILayout.Button("Standard shot", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.StandardShotCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Double shot.
        if (GUILayout.Button("Double shot", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.DoubleShotCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Triple shot.
        if (GUILayout.Button("Triple shot", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.TripleShotCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Ripple shot.
        if (GUILayout.Button("Ripple shot", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.RippleShotCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Toggle overheat.
        if (GUILayout.Button("Toggle overheat", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.UseOverheatCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Other powerup cheats", EditorStyles.boldLabel);

        // Turret.
        if (GUILayout.Button("Add turret", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.TurretCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Helix.
        if (GUILayout.Button("Helix", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.HelixCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Slow time.
        if (GUILayout.Button("Slow time", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SlowTimeCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Powerup modifier cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(0.5f, 1f, 0.0f, 1);          // Lime background.

        // Homing.
        if (GUILayout.Button("Homing", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.HomingCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUI.backgroundColor = new Color(0.0f, 1f, 0.0f, 1);          // Green background.

        // Ricochet.
        if (GUILayout.Button("Ricochet", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.RicochetCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUI.backgroundColor = new Color(0.0f, 1.0f, 1.0f, 1);          // Aqua background.

        // Rapidfire.
        if (GUILayout.Button("Rapidfire", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.RapidfireCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUI.backgroundColor = new Color(0.75f, 0.4f, 0.75f, 1);          // Purple background.

        // Overdrive.
        if (GUILayout.Button("Overdrive", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.OverdriveCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Ability cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(0.75f, 0.9f, 1.0f, 1);          // Pale blue background.

        // Charge ability.
        if (GUILayout.Button("Charge ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ChargeAbilityCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Refresh ability.
        if (GUILayout.Button("Refresh ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.RefreshAbilityCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Shield ability.
        if (GUILayout.Button("Shield ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.ShieldCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Emp ability.
        if (GUILayout.Button("EMP ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.EmpCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Vertical beam ability.
        if (GUILayout.Button("Vertical beam ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.VerticalBeamCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Horizontal beam ability.
        if (GUILayout.Button("Horizontal beam ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.HorizontalBeamCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Rewind time ability.
        if (GUILayout.Button("Rewind time ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.RewindCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Mirror player ability.
        if (GUILayout.Button("Mirror player ability", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.MirrorPlayerCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Audio cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(1.0f, 0.75f, 0.0f, 1);          // Orange background.

        // Next track.
        if (GUILayout.Button("Next soundtrack", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.NextTrackCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Previous track.
        if (GUILayout.Button("Previous soundtrack", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.PreviousTrackCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Next track.
        if (GUILayout.Button("Random soundtrack", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.RandomTrackCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Spawn cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(0.9f, 1f, 0.9f, 1);          // Pale green background.

        // Spawn a block.
        if (GUILayout.Button("Spawn block prefab", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SpawnBlockCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Spawn a powerup.
        if (GUILayout.Button("Spawn powerup prefab", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SpawnPowerupPickupCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // Spawn a boss.
        if (GUILayout.Button("Spawn mini boss prefab", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.SpawnMiniBossCommand;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.Label("Framerate cheats", EditorStyles.boldLabel);

        GUI.backgroundColor = new Color(0.75f, 0.75f, 0.75f, 1);          // Dark grey background.

        // FPS unlock.
        if (GUILayout.Button("Unlock framerate", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.FpsUnlockCommand;
            UpdateCurrentCheatButtonLabel();
        }

        // FPS 20.
        if (GUILayout.Button("FPS limit = 20", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.Fps20Command;
            UpdateCurrentCheatButtonLabel();
        }

        // FPS 30.
        if (GUILayout.Button("FPS limit = 30", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.Fps30Command;
            UpdateCurrentCheatButtonLabel();
        }

        // FPS 60.
        if (GUILayout.Button("FPS limit = 60", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.Fps60Command;
            UpdateCurrentCheatButtonLabel();
        }

        // FPS 90.
        if (GUILayout.Button("FPS limit = 90", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.Fps90Command;
            UpdateCurrentCheatButtonLabel();
        }

        // FPS 120.
        if (GUILayout.Button("FPS limit = 120", style))
        {
            DeveloperMode.Instance.ResetCheatStringTimer();
            DeveloperMode.Instance.CheatString = DeveloperMode.Instance.Fps120Command;
            UpdateCurrentCheatButtonLabel();
        }

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }