- All commands are now required to have a Help property.
MudGame:
- Finished the Create command. Now allows for creating Realms, Zones and Rooms
- Added LinkRoom command for linking Rooms. Not finished.
- Added Help command. Typing Help prints all of the currently available commands. Typing Help 'CommandName' prints that Commands help property. Default commands print a help document.
- Removed the need for the old CommandResult Type to be a returned value on all commands. Command.Execute() is now just void.
- All commands updated to now return a value. They use player.Send() to direct messages to the player instead.
- Removed CommandClear from the project and made it a script so that developers can see how to write custom command scripts.
- Converted all Types from C# types to .NET Types (such as bool changed to Boolean, and int changed to Int32).
- Zone no longer gets saved from within GameWorld.Save, but rather in Realm.Save()
- Room no longer gets saved from within GameWorld.Save(), but rather in Zone.Save();
- Added new SaveWorld command that admins only can execute to force save the world. It's not fully implemented at this time.
MudGame:
- began work on command execution from within the server while it's running.
- Added BaseCharacter.FlushConsole() method. Sends a hex sequence to the clients telnet terminal that clears the screen. If IsMultiplayer=false then it just clears the C# Console.
- Added a 'Clear' command for users to use. It invokes the new FlushConsole command.
- Removed the need for a full file path and filename when calling an objects save method. Now it just needs the path.
- Adjusted the Exit command, Login command and Save command to reflect the objects save parameter changes.
- Removed the Unique ID from objects.
- All objects now reference each other via their filenames rather than their object names. Allows for 3 objects with the name Bedroom to exist, but with different filenames such as Bedroom1, Bedroom2 etc.
- Zone now has a GetRoomByName method that replace the removed GetRoomByID method. Returns a List<> collection of Rooms found with a matching filename.
- BaseCharacter updated to work with the new Zone.GetRoomByName method.
- Realm.GetZoneByID renamed to GetZoneByName()
- Login command now supports Offline games. Skips various things that are server related only.
- Added a constructor to SaveDataPaths for quickly being able to assign paths.
- Game.Start is now Virtual so that scripts may override it.
- Game.Start now supports single player games and initializes players within it.
- Log now provides a Verbose mode so that Singleplayer games no longer gets flooded with Game startup messages.
- BaseCharacter.Initialize() Initialize no longer crashes when called with IsMultiplayer set to false.
- BaseCharacter.ReadInput() now supports IsMultiplayer being false.
MudServer:
- Now supports singleplayer and multiplayer games within a single application.
- MudServer is now ready to be re-named to MudGame and will be used for both Offline and Online games.
- Game now checks to see if there is a initial environment setup, if not an Abyss is created to store players in.
- Game now compiles scripts prior to loading libary assemblies to ensure the latest assembly is loaded.
- BaseCharacter now supports the Abyss room if no initial Game realm is set.
- BaseCharacter will no longer load the player into a room that does not exist (was deleted or something), they are defaulted into the Abyss.
- ScriptEngine checks for errors in the script prior to trying to reference the compiled assembly (was causing errors if scripts failed to compile; no assembly generated to reference)
- Assembly libraries are now only loaded once.
MudServer:
- Example MyGame.cs script now constructs a realm and sets default properties.
- MyPlayer script added to show how to write your own player script.
- Server loop restored and now working correctly.
- Server now outputs additional info regarding startup.
- Server now forces TCP protocol.
- Sending messages to the client from the server is now an added feature. Use Game.SendMessage()
- Added Load and Save commands for players.
- Added Missing SaveDataPaths struct file.