- Fixed FileManager.GetDataSpan Index out of bounds exception.
- Game.Save no long invokes the BaseCharacter.ExecuteCommand("Save"); rather it now just directly invokes BaseCharacter.Save(). This fixes the client typing bug where a new command line was printed to the screen everytime the game world saved.
- GameWorld now supports storing and saving dynamically created Realms.
- Renamed BaseCharacter.GetRoomByFilename() to just GetRoom() as all Get() named Methods require a filename.
- Optimized the loading and saving of Realms, Zones and Rooms some.
- Room now Loads and Saves the RoomLocation property instead of the Room's Zone and Realm properties individually.
- GameWorld.GetRealm(), Realm.GetZone() and Zone.GetRoom() now perform case-insensitive checking when scanning for content.
MudGame:
- Re-wrote the 'Create' command script from the ground up. 50% less code and much better approach to creating content. Now to create content you will use the same formatting as the Room.RoomLocation property.
Example: Creating a Realm is done with 'Create MyRealm'
Example: Creating a Zone is done with 'Create MyRealm>MyZone'
Example: Creating a Room is done with 'Create MyRealm>MyZone>MyRoom'
If the Realm or Zone does not exist when creating a Room or Zone, then the parent will be created automatically for you.
- Fixed a bug in the WorldCalifornia script were it was saving the Hallway Room with a Zone file extension, preventing it from working correctly during restoration.
- Added FileManager.GetDataSpan() method. This allows developers to start at a line and collect the next 'x' number of lines after that starting line.
Example: GetDataSpan("MyFile.txt", 5, "DoorwayArrivalRoom", true);
This seeks MyFile.txt until it finds "DoorwayArrivalRoom" and then it stores that line and the next 4 lines for a total of 5 lines and returns the collection.
The last argument 'true' means that the method will scan the rest of the file after the initial 5 lines and add any other lines that match the "DoorwayArrivalRoom" string as well.
- Deleted CommandResults class as it's no longer used by the script engine.
- Singleplayer and Multiplayer save data paths are now the same paths by default.
- Game.Update() method now checks for auto-saving (instead of MudGame performing this check)
- Saving and restoring of Realms, Zones, Rooms and Doorways now fully implemented.
- GameTime now supports auto-saving
- GameWorld.Update() now calls BaseCharacter.Update() and is ready for future update code.
- GameWorld.AddObject and GameWorld.RemoveObject() have been removed.
- GameWorld.AddRealm() re-added for adding Realms pre-populated with zones/rooms. Note that Zones and Rooms can be added to a Realm even after it has been added to the GameWorld.RealmCollection
- BaseObject now contains a OnStart() event method.
- BaseObject.Save() now saves BaseObject.DetailedDescription collection content.
- Updated BaseCharacter to retrieve Environments by Filename rather than Object name.
- BaseStats.Experience property added.
- Door.RoomTravelType enum added for determining if the room is Arrival or Departure
- Door.SetRoom() method added for restoring a Rooms Doorway link during world restoration.
- Renamed Room.InstallPath to Room.RoomLocation. Contains a MyRealm.Realm>MyZone.Zone>MyRoom.Room path
- Added Room.RoomLocationWithoutExtension property for returning the Rooms location without file extensions. Ex: MyRealm>MyZone>MyRoom
- Room now saves Doorways.
- The GameWorld now restores the link between Rooms once all Environment objects have been instanced and restored from their saved state.
MudGame:
- Minor clean-up with MudGame loop and shutdown.
- Updated scripts to reflect changes made to the engine.
- Deleted the following commands from the engine:
Exit, GetTime, LinkRoom, Load, Look, Save and Walk.
These are now part of the MudGame script library.
- Revised all of the Commands prior to moving them to the Script Library. They are now very well commented.
- Optimized the player login code.
- All commands now support the Help command.
- Game now has a MinimumPasswordSize property for setting the required minimum characters for a players password.
- System.Linq and System.Text using statements added to scripts when they are compiled. Script writers no longer need to type out the fully qualified name of a Type within those namespaces.
MudGame:
- Added the following commands to the script library:
Exit, GetTime, LinkRoom, Load, Look, Save, Walk.
- Added 76 lines of comments to WorldCalifornia to better help new users understand how to create their game worlds via script.
- The Clear, Help, Say and Create commands have been given better commenting.
- Existing scripts have been given some better optimizations.
- GameWorld.AddRealm() method replaced with GameWorld.AddObject(). It accepts any Type passed to it. You can now supply a Zone to it (provided the Zone.Realm property is set first) and the method will add the Zone into the appropriate Realm for you.
- Began converting certain enumerated items to LINQ
MudGame:
- Updated scripts to reflect the GameWorld changes.
- 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.
2010-08-15 14:11:21 -07:00
Renamed from MudGame/bin/Debug/Scripts/California.cs (Browse further)