- Set the Game.PlayerCollection property to Protected. You can no longer modify this list unless the class inherits from Game. Only 1 script is allowed to inherit from Game.
- Created Game.GetPlayerCollection() method for retrieving a read-only reference to the playerCollection so scripts can access player data it might needs.
- Updated various classes and scripts due to no longer being able to access the PlayerCollection property.
- Script Engine now compiles scripts as C# 4.0 Types instead of 3.5. Scripts can now use Dynamic Types.
MudGame:
- CommandCreate script added. Provides Admins the ability to create Realms and Zones from within the game during runtime. At the moment Realm creation and Zone creation (and placement within Realms) is implemented.
- Fixed the ScriptEngine and CommandEngine not loading Custom game commands from scripts.
- BaseCharacter's Create, Initialize, Send and FlushConsole are now overridable via scripts.
- Invalid commands are now printed to the player "Invalid Command."
MudGame:
- Added CommandSay script that adds primitive chatting support. Only players within the same Room can see the messages.
- Renamed California script to WorldCalifornia
- Renamed MyGame script to EarthGame.
- Added Clear command script for and Say command script for showing how to build custom commands for use with the game. The commands can only be added server-side, but used client-side.
- 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.
- Bug fixes with object saving and restoration
- Game Deconstructor removed.
- Player Password saving, restoring and varification implemented fully.
MudGame:
- Revised scripts to demonstrate the latest environment creation updates.
- All Objects now dynamically create their Filenames after the BaseObject.Name has been set. You can re-specify a custom filename, but do so after setting BaseObject.Name's value.
- Added GameWorld.cs. This will manage the game world itself.
- Moved Realm Initialization from Game.Start() into GameWorld.Start()
- Moved Environment saving from Game.Save() to GameWorld.Save(). However, GameWorld.Save gets invoked from Game.Save()
- GameWorld is now responsible for adding Realms to the Game.
- Fixed ScriptEngine not using Both Scripts and Assemblies at the same time.
- Added BaseAI which inherits from baseCharacter. All AI objects will inherit from this object.
MudGame:
- Modified MyGame.cs script for demonstrating the new way to create environments with the implementation of GameWorld.
- Updated Program.cs to compile both Scripts and Assemblies at once.
- Added MyGame script to demonstrate how to write a custom Game script.
- Added Settings.ini with default Values. Note that Removing the value ServerEnabled will cause the MudGame to default into Offline mode. Allowing developers to create single-player games. This can be done by setting ServerEnabled to false, however it's recommended to remove the option from the file all together so that users don't know the option to run a server is available unless you want your single-player game to be ran on private servers as multiplayer.