//public static Dictionary<string, Action> commandList { get; set; } public static Dictionary <string, Action> Commands(string commandOptions, string commandKey, PlayerSetup.Player playerData, Room.Room room) { var commandList = new Dictionary <String, Action> { { "north", () => Movement.Move(playerData, room, "North") }, { "south", () => Movement.Move(playerData, room, "South") }, { "east", () => Movement.Move(playerData, room, "East") }, { "west", () => Movement.Move(playerData, room, "West") }, { "down", () => Movement.Move(playerData, room, "Down") }, { "up", () => Movement.Move(playerData, room, "Up") }, { "look", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "look") }, { "l in", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "look in") }, { "look in", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "look in") }, { "examine", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "examine") }, { "touch", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "touch") }, { "smell", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "smell") }, { "taste", () => LoadRoom.ReturnRoom(playerData, room, commandOptions, "taste") }, { "score", () => Score.ReturnScore(playerData) }, { "inventory", () => Inventory.ReturnInventory(playerData.Inventory, playerData) }, { "equipment", () => Equipment.ShowEquipment(playerData) }, { "garb", () => Equipment.ShowEquipment(playerData) }, { "get", () => ManipulateObject.GetItem(room, playerData, commandOptions, commandKey, "item") }, { "take", () => ManipulateObject.GetItem(room, playerData, commandOptions, commandKey, "item") }, { "drop", () => ManipulateObject.DropItem(room, playerData, commandOptions, commandKey) }, { "give", () => ManipulateObject.GiveItem(room, playerData, commandOptions, commandKey, "killable") }, { "put", () => ManipulateObject.DropItem(room, playerData, commandOptions, commandKey) }, { "save", () => Save.UpdatePlayer(playerData) }, { "'", () => Communicate.Say(commandOptions, playerData, room) }, { "newbie", () => Communicate.NewbieChannel(commandOptions, playerData) }, { "gossip", () => Communicate.GossipChannel(commandOptions, playerData) }, { "ooc", () => Communicate.OocChannel(commandOptions, playerData) }, { "say", () => Communicate.Say(commandOptions, playerData, room) }, { "sayto", () => Communicate.SayTo(commandOptions, room, playerData) }, { ">", () => Communicate.SayTo(commandOptions, room, playerData) }, { "talkto", () => Talk.TalkTo(commandOptions, room, playerData) }, { "emote", () => Emote.EmoteActionToRoom(commandOptions, playerData) }, { "quit", () => HubContext.Quit(playerData.HubGuid, room) }, { "wear", () => Equipment.WearItem(playerData, commandOptions) }, { "remove", () => Equipment.RemoveItem(playerData, commandOptions) }, { "doff", () => Equipment.RemoveItem(playerData, commandOptions) }, { "wield", () => Equipment.WearItem(playerData, commandOptions, true) }, { "unwield", () => Equipment.RemoveItem(playerData, commandOptions, false, true) }, { "kill", () => Fight2.PerpareToFight(playerData, room, commandOptions) }, { "flee", () => Flee.fleeCombat(playerData, room) }, //spells { "c magic missile", () => MagicMissile.StartMagicMissile(playerData, room, commandOptions) }, { "cast magic missile", () => MagicMissile.StartMagicMissile(playerData, room, commandOptions) }, { "c armour", () => Armour.StartArmour(playerData, room, commandOptions) }, { "cast armour", () => Armour.StartArmour(playerData, room, commandOptions) }, { "c armor", () => Armour.StartArmour(playerData, room, commandOptions) }, { "cast armor", () => Armour.StartArmour(playerData, room, commandOptions) }, { "c continual light", () => ContinualLight.StarContinualLight(playerData, room, commandOptions) }, { "cast continual light", () => ContinualLight.StarContinualLight(playerData, room, commandOptions) }, { "c invis", () => Invis.StartInvis(playerData, room, commandOptions) }, { "cast invis", () => Invis.StartInvis(playerData, room, commandOptions) }, { "c weaken", () => Weaken.StartWeaken(playerData, room, commandOptions) }, { "cast weaken", () => Weaken.StartWeaken(playerData, room, commandOptions) }, { "c chill touch", () => ChillTouch.StartChillTouch(playerData, room, commandOptions) }, { "cast chill touch", () => ChillTouch.StartChillTouch(playerData, room, commandOptions) }, { "c fly", () => Fly.StartFly(playerData, room, commandOptions) }, { "cast fly", () => Fly.StartFly(playerData, room, commandOptions) }, { "c refresh", () => Refresh.StartRefresh(playerData, room, commandOptions) }, { "cast refresh", () => Refresh.StartRefresh(playerData, room, commandOptions) }, { "c faerie fire", () => FaerieFire.StartFaerieFire(playerData, room, commandOptions) }, { "cast faerie fire", () => FaerieFire.StartFaerieFire(playerData, room, commandOptions) }, { "c teleport", () => Teleport.StartTeleport(playerData, room) }, { "cast teleport", () => Teleport.StartTeleport(playerData, room) }, { "c blindness", () => Blindness.StartBlind(playerData, room, commandOptions) }, { "cast blindess", () => Blindness.StartBlind(playerData, room, commandOptions) }, { "c haste", () => Haste.StartHaste(playerData, room, commandOptions) }, { "cast haste", () => Haste.StartHaste(playerData, room, commandOptions) }, { "c create spring", () => CreateSpring.StartCreateSpring(playerData, room) }, { "cast create spring", () => CreateSpring.StartCreateSpring(playerData, room) }, //skills { "punch", () => Punch.StartPunch(playerData, room) }, { "kick", () => Kick.StartKick(playerData, room) }, // { "unlock", () => ManipulateObject.UnlockItem(room, playerData, commandOptions, commandKey) }, { "lock", () => ManipulateObject.LockItem(room, playerData, commandOptions, commandKey) }, { "open", () => ManipulateObject.Open(room, playerData, commandOptions, commandKey) }, { "close", () => ManipulateObject.Close(room, playerData, commandOptions, commandKey) }, { "drink", () => ManipulateObject.Drink(room, playerData, commandOptions, commandKey) }, { "help", () => Help.ShowHelp(commandOptions, playerData) }, { "time", Update.Time.ShowTime }, { "clock", Update.Time.ShowTime }, { "skills", () => ShowSkills.ShowPlayerSkills(playerData, commandOptions) }, { "skills all", () => ShowSkills.ShowPlayerSkills(playerData, commandOptions) }, { "practice", () => Trainer.Practice(playerData, room, commandOptions) }, { "list", () => Shop.listItems(playerData, room) }, { "buy", () => Shop.buyItems(playerData, room, commandOptions) }, { "quest log", () => Quest.QuestLog(playerData) }, { "qlog", () => Quest.QuestLog(playerData) }, { "wake", () => Status.WakePlayer(playerData, room) }, { "sleep", () => Status.SleepPlayer(playerData, room) }, { "greet", () => Greet.GreetMob(playerData, room, commandOptions) }, { "who", () => Who.Connected(playerData) }, { "affects", () => Affect.Show(playerData) }, { "follow", () => Follow.FollowThing(playerData, room, commandOptions) } }; return(commandList); }
public static PlayerClass MageClass() { var mage = new PlayerClass { Name = "Mage", IsBaseClass = true, ExperienceModifier = 3000, HelpText = new Help(), Skills = new List <Skill>(), ReclassOptions = new List <PlayerClass>(), MaxHpGain = 8, MinHpGain = 3, MaxManaGain = 15, MinManaGain = 10, MaxEnduranceGain = 15, MinEnduranceGain = 11, StatBonusInt = 2, StatBonusWis = 1 }; #region Give fighter punch skill var punch = Punch.PunchAb(); punch.LevelObtained = 2; punch.Proficiency = 1; punch.MaxProficiency = 95; mage.Skills.Add(punch); #endregion #region Give mage magic missile skill var magicMissile = MagicMissile.MagicMissileAb(); magicMissile.LevelObtained = 1; magicMissile.Proficiency = 50; magicMissile.MaxProficiency = 95; mage.Skills.Add(magicMissile); #endregion #region Give mage armor skill var armour = Armour.ArmourAb(); armour.LevelObtained = 1; armour.Proficiency = 50; armour.MaxProficiency = 95; mage.Skills.Add(armour); #endregion #region Give invis skill var invis = Invis.InvisAb(); invis.LevelObtained = 1; invis.Proficiency = 50; invis.MaxProficiency = 95; mage.Skills.Add(invis); #endregion #region Give continual light skill var continualLight = ContinualLight.ContinualLightAb(); continualLight.LevelObtained = 1; continualLight.Proficiency = 50; continualLight.MaxProficiency = 95; mage.Skills.Add(continualLight); #endregion #region Give weaken var weaken = Weaken.WeakenAb(); weaken.LevelObtained = 1; weaken.Proficiency = 50; weaken.MaxProficiency = 95; mage.Skills.Add(weaken); #endregion #region Give chill touch var chillTouch = ChillTouch.ChillTouchAb(); chillTouch.LevelObtained = 1; chillTouch.Proficiency = 50; chillTouch.MaxProficiency = 95; mage.Skills.Add(chillTouch); #endregion #region Give fly var fly = Fly.FlyAb(); fly.LevelObtained = 1; fly.Proficiency = 50; fly.MaxProficiency = 95; mage.Skills.Add(fly); #endregion mage.ReclassOptions.Add(Ranger.RangerClass()); return(mage); }
public static PlayerClass MageClass() { var mage = new PlayerClass { Name = "Mage", IsBaseClass = true, ExperienceModifier = 3000, HelpText = new Help(), Skills = new List <Skill>(), ReclassOptions = new List <PlayerClass>(), MaxHpGain = 8, MinHpGain = 3, MaxManaGain = 15, MinManaGain = 10, MaxEnduranceGain = 15, MinEnduranceGain = 11, StatBonusInt = 2, StatBonusWis = 1 }; #region Give mage magic missile skill var magicMissile = MagicMissile.MagicMissileAb(); magicMissile.LevelObtained = 1; magicMissile.Proficiency = 50; magicMissile.MaxProficiency = 95; mage.Skills.Add(magicMissile); #endregion #region Give mage armor skill var armour = Armour.ArmourAb(); armour.LevelObtained = 1; armour.Proficiency = 50; armour.MaxProficiency = 95; mage.Skills.Add(armour); #endregion #region Give invis skill var invis = Invis.InvisAb(); invis.LevelObtained = 1; invis.Proficiency = 50; invis.MaxProficiency = 95; mage.Skills.Add(invis); #endregion #region Give continual light skill var continualLight = ContinualLight.ContinualLightAb(); continualLight.LevelObtained = 1; continualLight.Proficiency = 50; continualLight.MaxProficiency = 95; mage.Skills.Add(continualLight); #endregion #region Give weaken var weaken = Weaken.WeakenAb(); weaken.LevelObtained = 1; weaken.Proficiency = 50; weaken.MaxProficiency = 95; mage.Skills.Add(weaken); #endregion #region Give chill touch var chillTouch = ChillTouch.ChillTouchAb(); chillTouch.LevelObtained = 1; chillTouch.Proficiency = 50; chillTouch.MaxProficiency = 95; mage.Skills.Add(chillTouch); #endregion #region Give fly var fly = Fly.FlyAb(); fly.LevelObtained = 1; fly.Proficiency = 50; fly.MaxProficiency = 95; mage.Skills.Add(fly); #endregion #region Give Faerie Fire var faerieFire = FaerieFire.FaerieFireAB(); faerieFire.LevelObtained = 1; faerieFire.Proficiency = 50; faerieFire.MaxProficiency = 95; mage.Skills.Add(faerieFire); #endregion #region Give refresh var refresh = Refresh.RefreshAb(); refresh.LevelObtained = 1; refresh.Proficiency = 50; refresh.MaxProficiency = 95; mage.Skills.Add(refresh); #endregion #region Give teleport var teleport = Teleport.TeleporAb(); teleport.LevelObtained = 1; teleport.Proficiency = 50; teleport.MaxProficiency = 95; mage.Skills.Add(teleport); #endregion #region Give blindness var blindness = Blindness.BlindAb(); blindness.LevelObtained = 1; blindness.Proficiency = 50; blindness.MaxProficiency = 95; mage.Skills.Add(blindness); #endregion #region Give haste var haste = Haste.HasteAb(); haste.LevelObtained = 1; haste.Proficiency = 50; haste.MaxProficiency = 95; mage.Skills.Add(haste); #endregion #region Give Shocking grasp var shockingGrasp = ShockingGrasp.ShockingGraspAb(); shockingGrasp.LevelObtained = 1; shockingGrasp.Proficiency = 50; shockingGrasp.MaxProficiency = 95; mage.Skills.Add(shockingGrasp); #endregion #region Give create spring var createSpring = CreateSpring.CreateSpringAb(); createSpring.LevelObtained = 1; createSpring.Proficiency = 50; createSpring.MaxProficiency = 95; mage.Skills.Add(createSpring); #endregion mage.ReclassOptions.Add(Ranger.RangerClass()); return(mage); }
// Main code for a dodgeball void FixedUpdate() { // Find a list of all the players Players = GameObject.FindGameObjectsWithTag("Player"); // If it is not a special ball do nothing if (Special == 0) { Icon.GetComponent <SpriteRenderer>().enabled = false; } // If it is a special ball set the correct icon and give the value to _lastSpecial else if (Special < 4) { Icon.GetComponent <SpriteRenderer>().sprite = SpecialSprites[Special - 1]; _lastSpecial = Special; } else { // If its an invisible ball set it to the translucent sprite if (_lastSpecial == 1) { GetComponent <MeshRenderer>().enabled = false; Icon.GetComponent <SpriteRenderer>().enabled = false; Invis.GetComponent <SpriteRenderer>().enabled = true; } } if (_dbGenerator.GetComponent <DBGenerator>().Server) { _dbGenerator.GetComponent <DBGenerator>().BallUpdates[BallNumber] = Parent; } _server = _dbGenerator.GetComponent <DBGenerator>().Server; //Just in case a ball spawns when theres no player. stops an error being thrown if (Players == null) { Players = new GameObject[] { Arrow }; } //Initial state, stays here until the dodgeball spawns in a place where it isn't overlapping another if (State == -1) { State = 0; if (_hit) { _countDown = 1; State = 1; } } // Get the angles between the dodgeball and all the players Angles(); // Respawn the dodgeball if necessary Reset(); //fire time is the amount of time after the ball spawns before it can fire. just creates a delay if (_fireTime > 0 && _controller.GetComponent <Controller>().Started) { // Dont show the ball until you're sure it didn't spawn ontop of another ball if (_sightTime == 0) { GetComponent <MeshRenderer>().enabled = true; Arrow.GetComponent <SpriteRenderer>().enabled = true; // If it is a special ball show the icon if (_lastSpecial < 4 && _lastSpecial > 0) { Icon.GetComponent <SpriteRenderer>().enabled = true; } } else { _sightTime--; } _fireTime--; } // Check if any of the angles to the player match the dodgeballs angles bool inArray = false; for (int j = 0; j < _angles.Length; j++) { if ((int)_secondAngle == (int)_angles[j]) { inArray = true; } } //States represent different stages in the balls life // Start : 0, Countdown to fire : 1 - 4, Fired - 5 //If the ball is facing a player and it has spawned but not yet been fired then fire if (inArray && State == 0 && _fireTime == 0 && _controller.GetComponent <Controller>().Started&& (_server || _controller.GetComponent <Controller>().SinglePlayer)) { State = 1; } //Hide the arrow if (State == 1) { Arrow.GetComponent <SpriteRenderer>().enabled = false; } if (State >= 1 && State <= 4 && _counter == 0) { _counter = 5; } //Blinking arrow before it fires else if (State >= 1 && State <= 4 && _counter != 0) { _counter--; if (_counter == 0) { State++; if (State == 2 || State == 4) { Arrow.GetComponent <SpriteRenderer>().enabled = true; } else { Arrow.GetComponent <SpriteRenderer>().enabled = false; } } } //move the ball in the direction it was fired else if (State == 5) { // Activate the special ball if (Special != 0) { Special = 4; } // If it is a Multiply ball activate the other balls and fire them if (_lastSpecial == 2) { foreach (GameObject g in Duplicates) { g.SetActive(true); g.transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y - (Speed / 100.0f), transform.localPosition.z); g.GetComponent <Renderer>().material = GetComponent <Renderer>().material; } } // Move the dodgeball transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y - (Speed / 100.0f), transform.localPosition.z); // Disable the arrow sprite Arrow.GetComponent <SpriteRenderer>().enabled = false; //If it is a Stretch ball stretch it out until its scale is (2, 0.5, 1) and also rotate the ball if (Special == 4 && _lastSpecial == 3 && _countDown == 0) { if (transform.localScale.x < _stretch * 2) { transform.localScale = new Vector3(transform.localScale.x + (_stretch / 50.0f), transform.localScale.y - (_stretch / 100.0f), transform.localScale.z); } if (_left) { transform.localEulerAngles = new Vector3(0.0f, 0.0f, transform.localEulerAngles.z - 2.0f); } else { transform.localEulerAngles = new Vector3(0.0f, 0.0f, transform.localEulerAngles.z + 2.0f); } } } else { //if the ball is still trying to find a target compare its angles to its angle in relation to all players. if there's a match fire in that direction if (RotationSpeed > 1.0f || RotationSpeed < 1.0f) { for (int i = 0; i < 5; i++) { Parent.transform.localEulerAngles = new Vector3(Parent.transform.localEulerAngles.x, Parent.transform.localEulerAngles.y, Parent.transform.localEulerAngles.z + (RotationSpeed / 5)); Angles(); if (inArray && State == 0 && _fireTime == 0 && _controller.GetComponent <Controller>().Started&& _server) { // Set the state to 1 which means its preparing to fire State = 1; } } } // If there is no match keep rotating else { Parent.transform.localEulerAngles = new Vector3(Parent.transform.localEulerAngles.x, Parent.transform.localEulerAngles.y, Parent.transform.localEulerAngles.z + (RotationSpeed)); } _rotationAngle = Parent.transform.localEulerAngles.z; if (_rotationAngle > 180.0f && Max != 270.0f) { _rotationAngle -= 360.0f; } // Onece it rotates all the way one way, start rotating in the other direction if (_rotationAngle > Max || _rotationAngle < Min) { RotationSpeed = -RotationSpeed; Parent.transform.localEulerAngles = new Vector3(Parent.transform.localEulerAngles.x, Parent.transform.localEulerAngles.y, Parent.transform.localEulerAngles.z + (RotationSpeed * 2)); } } }
//Reset the dodgeball along one of the walls and decides if it will be a special ball. // will keep going until the ball doesn't spawn on top of another ball void Reset() { if (_countDown > 0) { _countDown--; // Wait until the countdown has ended to respawn if (_countDown == 0) { // Time until the ball fires so it doesn't immediately spawn then fire _fireTime = (int)Random.Range(50, 500); // Time until the ball can be seen. Stops the ball from jumping around whilst if it spawns on top of another ball _sightTime = 2; // The ball spawns on a random wall int random = (int)Random.Range(0, 4); // Right wall if (random == 0) { Parent.transform.localPosition = new Vector3(_x, Random.Range(-_y, _y), 0); Parent.transform.localEulerAngles = new Vector3(0.0f, 0.0f, 270.0f); Max = 0.0f; Min = -180.0f; } // Left wall else if (random == 1) { Parent.transform.localPosition = new Vector3(-_x, Random.Range(-_y, _y), 0); Parent.transform.localEulerAngles = new Vector3(0.0f, 0.0f, 90.0f); Max = 180.0f; Min = 0.0f; } // Top wall else if (random == 2) { Parent.transform.localPosition = new Vector3(Random.Range(-_x, _x), _y, 0); Parent.transform.localEulerAngles = new Vector3(0.0f, 0.0f, 0.0f); Min = -90.0f; Max = 90.0f; } // Bottom wall else { Parent.transform.localPosition = new Vector3(Random.Range(-_x, _x), -_y, 0); Parent.transform.localEulerAngles = new Vector3(0.0f, 0.0f, 180.0f); Min = 90.0f; Max = 270.0f; } // Start state State = -1; int special = Random.Range(0, 100); // each special ball has a 3% probablitiy of spawning // Invisible ball if (special < 3) { Special = 1; } // Multi Ball else if (special < 6) { Special = 2; } // Stretch Ball else if (special < 9) { Special = 3; // Rotates either left or right _left = (Random.Range(-1, 1) > 0); // Gets the original width of the ball _stretch = transform.localScale.x; } // Regular ball else { Special = 0; } // If the user is the server add the dodgeball to the array of updates to inform the clients // so they can match the servers ball if (_dbGenerator.GetComponent <DBGenerator>().Server) { _dbGenerator.GetComponent <DBGenerator>().BallUpdates[BallNumber] = Parent; } // Set rotation and position to 0 transform.localEulerAngles = Vector3.zero; transform.localPosition = Vector3.zero; // Reset any special characteristics Invis.GetComponent <SpriteRenderer>().enabled = false; foreach (GameObject g in Duplicates) { g.SetActive(false); g.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f); } } } }
/// <summary> /// Command list for the game /// </summary> /// <param name="commandOptions">Everything after the 1st occurance of a space</param> /// <param name="commandKey">The string before the 1st occurance of a space</param> /// <param name="playerData">Player Data</param> /// <param name="room">Current room</param> /// <returns>Returns Dictionary of commands</returns> public static void Commands(string commandOptions, string commandKey, PlayerSetup.Player playerData, Room.Room room) { var context = HubContext.Instance; switch (commandKey) { case "north": Movement.Move(playerData, room, "North"); break; case "east": Movement.Move(playerData, room, "East"); break; case "south": Movement.Move(playerData, room, "South"); break; case "west": Movement.Move(playerData, room, "West"); break; case "up": Movement.Move(playerData, room, "Up"); break; case "down": Movement.Move(playerData, room, "Down"); break; case "look": case "look at": case "l at": case "search": LoadRoom.ReturnRoom(playerData, room, commandOptions, "look"); break; case "l in": case "search in": LoadRoom.ReturnRoom(playerData, room, commandOptions, "look in"); break; case "examine": LoadRoom.ReturnRoom(playerData, room, commandOptions, "examine"); break; case "touch": LoadRoom.ReturnRoom(playerData, room, commandOptions, "touch"); break; case "smell": LoadRoom.ReturnRoom(playerData, room, commandOptions, "smell"); break; case "taste": LoadRoom.ReturnRoom(playerData, room, commandOptions, "taste"); break; case "score": Score.ReturnScore(playerData); break; case "inventory": Inventory.ReturnInventory(playerData.Inventory, playerData); break; case "eq": case "equip": case "equipment": case "garb": Equipment.ShowEquipment(playerData); break; case "loot": case "get": case "take": ManipulateObject.GetItem(room, playerData, commandOptions, commandKey, "item"); break; case "plunder": ManipulateObject.GetItem(room, playerData, "all " + commandOptions, commandKey, "item"); break; case "drop": case "put": ManipulateObject.DropItem(room, playerData, commandOptions, commandKey); break; case "give": ManipulateObject.GiveItem(room, playerData, commandOptions, commandKey, "killable"); break; case "save": Save.SavePlayer(playerData); break; case "say": case "'": Communicate.Say(commandOptions, playerData, room); break; case "sayto": case ">": Communicate.SayTo(commandOptions, room, playerData); break; case "newbie": Communicate.NewbieChannel(commandOptions, playerData); break; case "gossip": Communicate.GossipChannel(commandOptions, playerData); break; case "ooc": Communicate.OocChannel(commandOptions, playerData); break; case "yes": Communicate.Say("Yes", playerData, room); break; case "no": Communicate.Say("No", playerData, room); break; case "yell": Communicate.Yell(commandOptions, room, playerData); break; case "talkto": Talk.TalkTo(commandOptions, room, playerData); break; case "emote": Emote.EmoteActionToRoom(commandOptions, playerData); break; case "use": case "wear": case "wield": Equipment.WearItem(playerData, commandOptions); break; case "remove": case "doff": case "unwield": Equipment.RemoveItem(playerData, commandOptions); break; case "hit": case "kill": case "attack": Fight2.PerpareToFight(playerData, room, commandOptions); break; case "flee": Flee.fleeCombat(playerData, room); break; case "sacrifice": case "harvest": Harvest.Body(playerData, room, commandOptions); break; case "peek": Peak.DoPeak(context, playerData, room, commandOptions); break; case "steal": Steal.DoSteal(context, playerData, room, commandOptions); break; case "pick": LockPick.DoLockPick(context, playerData, room, commandOptions); break; case "c magic missile": case "cast magic missile": MagicMissile.StartMagicMissile(playerData, room, commandOptions); break; case "c armour": case "cast armour": case "c armor": case "cast armor": new Armour().StartArmour(playerData, room, commandOptions); break; case "c continual light": case "cast continual light": ContinualLight.StarContinualLight(playerData, room, commandOptions); break; case "c invis": case "cast invis": Invis.StartInvis(playerData, room, commandOptions); break; case "c weaken": case "cast weaken": Weaken.StartWeaken(playerData, room, commandOptions); break; case "c chill touch": case "cast chill touch": ChillTouch.StartChillTouch(playerData, room, commandOptions); break; case "c fly": case "cast fly": Fly.StartFly(playerData, room, commandOptions); break; case "c refresh": case "cast refresh": Refresh.StartRefresh(playerData, room, commandOptions); break; case "c faerie fire": case "cast faerie fire": FaerieFire.StartFaerieFire(playerData, room, commandOptions); break; case "c teleport": case "cast teleport": Teleport.StartTeleport(playerData, room); break; case "c blindness": case "cast blindness": Blindness.StartBlind(playerData, room, commandOptions); break; case "c haste": case "cast haste": Haste.StartHaste(playerData, room, commandOptions); break; case "c create spring": case "cast create spring": CreateSpring.StartCreateSpring(playerData, room); break; case "c shocking grasp": case "cast shocking grasp": new ShockingGrasp().StartShockingGrasp(playerData, room, commandOptions); break; case "c cause light": case "cast cause light": new CauseLight().StartCauseLight(context, playerData, room, commandOptions); break; case "c cure light": case "cast cure light": new CureLight().StartCureLight(context, playerData, room, commandOptions); break; case "c cure blindness": new CureBlindness().StartCureBlindness(context, playerData, room, commandOptions); break; case "c detect invis": case "cast detect invis": DetectInvis.DoDetectInvis(context, playerData, room); break; case "forage": new Foraging().StartForaging(playerData, room); break; case "fish": case "angle": case "line": case "trawl": case "lure": new Fishing().StartFishing(playerData, room); break; case "reel": Fishing.GetFish(playerData, room); break; case "dirt kick": new DirtKick().StartDirtKick(context, playerData, room, commandOptions); break; case "bash": new Bash().StartBash(context, playerData, room, commandOptions); break; case "shield bash": new ShieldBash().StartBash(context, playerData, room, commandOptions); break; case "punch": Punch.StartPunch(playerData, room); break; case "kick": new Kick().StartKick(context, playerData, room, commandOptions); break; case "spin kick": new SpinKick().StartKick(context, playerData, room, commandOptions); break; case "rescue": new Rescue().StartRescue(context, playerData, room, commandOptions); break; case "lunge": new Lunge().StartLunge(context, playerData, room, commandOptions); break; case "disarm": new Disarm().StartDisarm(context, playerData, room); break; case "backstab": new Backstab().StartBackstab(context, playerData, room, commandOptions); break; case "feint": new Feint().StartFeint(context, playerData, room, commandOptions); break; case "mount": case "ride": Mount.StartMount(playerData, room, commandOptions); break; case "dismount": Mount.Dismount(playerData, room, commandOptions); break; case "trip": new Trip().StartTrip(context, playerData, room, commandOptions); break; case "sneak": Sneak.DoSneak(context, playerData); break; case "hide": Hide.DoHide(context, playerData); break; case "lore": Lore.DoLore(context, playerData, commandOptions); break; case "unlock": ManipulateObject.UnlockItem(room, playerData, commandOptions, commandKey); break; case "lock": ManipulateObject.LockItem(room, playerData, commandOptions, commandKey); break; case "close": case "shut": ManipulateObject.Close(room, playerData, commandOptions, commandKey); break; case "drink": ManipulateObject.Drink(room, playerData, commandOptions, commandKey); break; case "help": case "/help": case "?": case "commands": Help.ShowHelp(commandOptions, playerData); break; case "time": case "clock": Update.Time.ShowTime(); break; case "skills": case "spells": case "skills all": ShowSkills.ShowPlayerSkills(playerData, commandOptions); break; case "practice": Trainer.Practice(playerData, room, commandOptions); break; case "list": Shop.listItems(playerData, room); break; case "buy": Shop.buyItems(playerData, room, commandOptions); break; case "sell": Shop.sellItems(playerData, room, commandOptions); break; case "quest log": case "qlog": Quest.QuestLog(playerData); break; case "wake": Status.WakePlayer(context, playerData, room); break; case "sleep": Status.SleepPlayer(context, playerData, room); break; case "rest": case "sit": Status.RestPlayer(context, playerData, room); break; case "stand": Status.StandPlayer(context, playerData, room); break; case "greet": Greet.GreetMob(playerData, room, commandOptions); break; case "who": Who.Connected(playerData); break; case "affects": Effect.Show(playerData); break; case "follow": Follow.FollowThing(playerData, room, commandOptions); break; case "nofollow": Follow.FollowThing(playerData, room, "noFollow"); break; case "quit": HubContext.Instance.Quit(playerData.HubGuid, room); break; case "craft": Craft.CraftItem(playerData, room, commandOptions, CraftType.Craft); break; case "chop": Craft.CraftItem(playerData, room, commandOptions, CraftType.Chop); break; case "cook": Craft.CraftItem(playerData, room, commandOptions, CraftType.Cook); break; case "brew": Craft.CraftItem(playerData, room, commandOptions, CraftType.Brew); break; case "forge": Craft.CraftItem(playerData, room, commandOptions, CraftType.Forge); break; case "carve": Craft.CraftItem(playerData, room, commandOptions, CraftType.Carve); break; case "knit": Craft.CraftItem(playerData, room, commandOptions, CraftType.Knitting); break; case "make": case "build": Craft.CraftItem(playerData, room, commandOptions, CraftType.Craft); break; case "show crafts": case "craftlist": Craft.CraftList(playerData); break; case "set up camp": Camp.SetUpCamp(playerData, room); break; case "repair": Events.Repair.RepairItem(playerData, room, commandOptions); break; case "/debug": PlayerSetup.Player.DebugPlayer(playerData); break; case "/setGold": PlayerSetup.Player.SetGold(playerData, commandOptions); break; case "/setAc": PlayerSetup.Player.SetAC(playerData, commandOptions); break; case "/map": SigmaMap.DrawMap(playerData.HubGuid); //not what you think it does break; default: HubContext.Instance.SendToClient("Sorry you can't do that. Try help commands or ask on the discord channel.", playerData.HubGuid); var log = new Error.Error { Date = DateTime.Now, ErrorMessage = commandKey + " " + commandOptions, MethodName = "Wrong command" }; Save.LogError(log); break; } }