- Game World Auto-save property now fully implemented. However, the Game world saving mechanics are not fully implemented. As additional components are implemented, they will be auto-saved if the property is set to true.
- Game.AutoSaveInterval property added for setting how often the Game will save all objects in the world (incase run-time changes to environments/objects were made, they must be saved).
- Player walk command now supports Game.AutoSave. Every-time the player changes location they will be saved.
- ScriptEngine now supports Initializing both Assembly and Source based scripts at the same time via the new ScriptTypes.Both element.
- ScriptEngine now auto-loads previously saved settings from Settings.ini
- Game.ObjectIdentifierCollection renamed to Game.WorldObjects. Type collection changed from that of Int32 to BaseObject.
- Game.update now contains the code needed to update the World Time and Auto-Save the world if needed.
- Game.AddObject method added for adding World Objects to the Game.WorldObjects collection
- CommandLogin no longer invokes the Look Command
- Fixed CommandWalk no longer telling the player an invalid direction message when trying to walk to someplace that does not exist.
- Moved PlayerCollection array referencing from Game.Start() to the Game's constructor so that scripts may change the player class during its startup.
- BaseCharacter now invokes the Look command after Login command is completed.
- ScriptEngine no longer sets the output path for a compiled script if the script is designated as compile to memory.
- Fixed custom players not being able to access their own Methods and Properties during runtime.
MudServer:
- Additional Console Log Messages added.
- Updated all game commands to support the new Player.Send() method. Returning CommandResults is no longer supported.
- Login command now executes the Look command upon completing login.
- Look command now supports Rooms DetailDescription property. Use this for multi-line descriptions.
- Several changes to the Restart command. Still not working fully however, it no longer calls duplicate methods.
- Fixed Walk command not moving players around.
- Loading engine commands no longer happens more than once.
- Added additional Server Console log output
- BaseCharacter.Send() now correctly displays content to the user and prints the "Command:" message to the player after every command completed.
- The Server now sets Player.IsControlled to true when a player connects.
- BaseCharacter.Send() checks if the game is multi-player or not. If it is, it prints to Console, if not then prints to telnet clients.
Mud Offline Example:
- Updated Zeroth Realm creation to use Room.DetailDescription now that the Look command supports it.
- Updated the Game loop. No longer needs to print to the console due to the player.Execute() command automatically printing content to the console.
Mud Server:
- Removed player from server as it was not being used any longer.
- Fixed command engine stalling when waiting for one users command to finish before starting another users command.
- Commands are loaded into static List collections, but the Execute command itself is now no longer static.
- Player.CommandSystem property added so each player has their own commandengine to process their input.
- Player movement command now fully implemented.
- Game.GetRealm() added to retrieve a Realm within the games RealmCollection property
- Game.End() added to perform game ending duties and shut down the Server
- Server now loses opened threads.
- Player.Move() added to move the player from Room to Room.
- Room.DoorwayExist() tweaked to work with the new way Environments are managed.
MudGame:
- Now executes the Look command on startup so the player can see where they are located at.
- Implements the new Game.End() method and fixes the game hanging upon exit.
- Re-worked the command system. All commands now only need 2 arguments rather than 4. The actual command string and the Player
- All commands updated to work with the new command system
- Look command now works in the example MudGame
- Realm now contains InitialZone for the starting Zone within that Realm.
- Zone now contains InitialRoom for the starting Room within that Zone.
- All Environment objects now contains a Initial property and Add() method for adding child objects.
- BaseCharacter now contains a copy of Game
- Revised Realm.GetZone()
- Revised Zone.GetRoom()
- Removed Zone.RebuildRoomCollection as content is currently no longer stored using physical files.
- Added GameManagement.Log for logging errors and warnings to file. Use Log.Write().
- Added Look and Walk Commands, however they are not fully implemented.
- Corrected Networking classes having a public de-constructor. These must be private or the compiler fails.
- Corrected Networking classes using an incorrect 'using' statement. You cannot reference classes in the statement, must only reference the namespace itself (i.e. using MUDEngine.Networking).
- Removed using statement for Networking in the Networking classes as all classes created within that namespace automatically are within the same scope.