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);
}