ARCed.Controls.EventTextBox.Command111 C# (CSharp) Метод

Command111() приватный Метод

Conditional Branch
private Command111 ( dynamic args ) : void
args dynamic Array of game event parameters
Результат void
        private void Command111(dynamic args)
        {
            this.AppendText("@>");
            this.AppendText("Conditional Branch: ", Color.Blue);
            string text = "";
            int code = args[0];
            switch (code)
            {
                case 0: // Switch
                    {
                        text = String.Format("Switch [{0}] == {1}",
                            Project.Switches[args[1]].ToString(), args[2] == 0 ? "ON" : "OFF");
                        break;
                    }
                case 1: // Variable
                    {
                        string varName = Project.Variables[args[1]].ToString();
                        string oper = new[] { "==", ">=", "<=", ">", "<", "!=" }[args[4]];
                        if (args[2] == 0) // Constant
                        {
                            text = String.Format("Variable [{0}] {1} {2}", varName, oper, args[3]);
                        }
                        else // Variable
                        {
                            text = String.Format("Variable [{0}] {1} Variable: [{2}]",
                                varName, oper, Project.Variables[args[3]].ToString());
                        }
                        break;
                    }
                case 2: // Self-Switch
                    {
                        text = String.Format("Self Switch {0} == {1}", "ABCD"[args[1]], args[2] == 0 ? "ON" : "OFF");
                        break;
                    }
                case 3: // Timer
                    {
                        int secs = args[1];
                        text = String.Format("Timer {0} min {1} sec or {2}",
                            secs / 60, secs % 60, args[2] == 0 ? "more" : "less");
                        break;
                    }
                case 4: // Actor
                    {
                        string actorName = Project.Data.Actors[args[1]].ToString();
                        int oper = args[2];
                        switch (oper)
                        {
                            case 0: // In Party
                                {
                                    text = String.Format("[{0}] is in party", actorName);
                                    break;
                                }
                            case 1: // Name Applied
                                {
                                    text = String.Format("[{0}] is name '{1}' applied", actorName, args[3]);
                                    break;
                                }
                            case 2: // Skill Learned
                                {
                                    text = String.Format("[{0}] is [{1}] learned", actorName,
                                        Project.Data.Skills[args[3]].ToString());
                                    break;
                                }
                            case 3: // Weapon Equipped
                                {
                                    text = String.Format("[{0}] is [{1}] equipped", actorName,
                                        Project.Data.Weapons[args[3]].ToString());
                                    break;
                                }
                            case 4: // Armor Equipped
                                {
                                    text = String.Format("[{0}] is [{1}] equipped", actorName,
                                        Project.Data.Armors[args[3]].ToString());
                                    break;
                                }
                            case 5: // State Inflicted
                                {
                                    text = String.Format("[{0}] is [{1}] inflicted", actorName,
                                        Project.Data.States[args[3]].ToString());
                                    break;
                                }
                        }
                        break;
                    }
                case 5: // Enemy
                    {
                        // TODO: Implement once event builder is complete for easier testing
                        break;
                    }
                case 6: // Character
                    {
                        // TODO: Implement once event builder is complete for easier testing
                        break;
                    }
                case 7: // Gold
                    {
                        text = String.Format("Gold {0} or {1}", args[1],
                            args[2] == 0 ? "more" : "less");
                        break;
                    }
                case 8: // Item in Inventory
                    {
                        text = String.Format("[{0}] in inventory",
                            Project.Data.Items[args[1]].ToString());
                        break;
                    }
                case 9: // Weapon in Inventory
                    {
                        text = String.Format("[{0}] in inventory",
                            Project.Data.Weapons[args[1]].ToString());
                        break;
                    }
                case 10: // Armor in Inventory
                    {
                        text = String.Format("[{0}] in inventory",
                            Project.Data.Armors[args[1]].ToString());
                        break;
                    }
                case 11: // Button
                    {
                        var buttons = new[] { "", "", "Down", "", "Left", "", "Right",
                        "", "Up", "", "", "A", "B", "C", "X", "Y", "Z", "L", "R" };
                        text = String.Format("The {0} button is being pressed", buttons[args[1]]);
                        break;
                    }
                case 12: // Script
                    {
                        text = String.Format("Script: {0}", args[1]);
                        break;
                    }
            }
            if (!String.IsNullOrEmpty(text))
                this.AppendText(text, Color.Blue);
        }