Commit graph

154 commits

Author SHA1 Message Date
Scionwest_cp
0f87ac233a MUDCompiler:
- Now compiles scripts contained under a MUDCompiler/bin/debug/Scripts folder.

MudEngine:
 - ScriptEngine now wraps scripts inside a default namespace. MUDScripts MUST not be placed within a namespace inside the script. The Engine handles it automatically.
2010-07-23 17:22:25 -07:00
Scionwest_cp
fe05693fee MudEngine:
- Fixed ClientSocket accessor error.

MudCompiler:
 - Added new project. This will compile the game scripts along with performing object checks to ensure the game contains no errors prior to publishing a release of the game.
2010-07-23 15:46:44 -07:00
u8sand_cp
49c581840a - Tcp Server functionality 2010-07-22 20:13:55 -07:00
Scionwest_cp
f7756e2032 MudEngine:
- Added missing PlayerAdmin class.
2010-07-22 18:01:40 -07:00
Scionwest_cp
e9e3bb8033 MudEngine:
- Created PlayerAdmin class. All admins will be instances of this class; allows for segregating admin code into a different class for easier management and maintenance.
 - CommandRestart now checks to make sure the player is of Type PlayerAdmin instead of player.admin
 - Added ExecuteCommand to BaseCharacter. All Characters (NPC & Players) can execute commands now. Allows for AI to roam the world at some point in the future by invoking the available move commands.

MUDGame:
 - Updated the command execution from CommandEngine.Execute to user.ExecuteCommand to use the BaseCharacter version.
 - Changed PlayerBasic to PlayerAdmin for testing purposes.

TODO: Remove command execution from game loop, server should sit and wait for telnet data to be transmitted to it within the loop. That will be the command and passed off to the BaseCharacter/Player/NPC ect ExecuteCommand
2010-07-22 16:18:53 -07:00
u8sand_cp
1baa067044 - Added player array in game
- put server in Game
- created start server function in Game
- created CommandRestart

There are two different 'player classes' which do I use? PlayerBasic and BasePlayer.
2010-07-21 09:32:27 -07:00
u8sand_cp
15de95ba65 - Added Server class, basically finished.
- Server start method starts server's own thread
- Both tcp and udp support.
Needed:
- Connection to the MudEngine
- Finish coding serverThread
2010-07-19 15:35:05 -07:00
u8sand_cp
a26280b711 - Much work on the networking
- ServerSocket done.
- ClientSocket done.
- Few fixes required:
   - Warning in ServerSocket
   - Friends possible in C#?
2010-07-19 07:09:34 -07:00
Scionwest_cp
6987d8178f MudEngine:
- 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.
2010-07-18 21:25:12 -07:00
u8sand_cp
9debc62ba4 AGAIN?
K, this is my last one for today. I blame this lame program for not allowing me to NOT put a msg.
2010-07-18 20:33:51 -07:00
u8sand_cp
ce94e8d3f8 Sigh, I'm probably spamming the board now. Who woulda known commit wouldn't commit something up_one_level. 2010-07-18 20:32:46 -07:00
u8sand_cp
8381349143 Wups, forgot to "add" this. 2010-07-18 20:31:30 -07:00
u8sand_cp
27a1f617b8 Networking Continued, template classes finished. Next I'll add actual functionality. 2010-07-18 20:30:57 -07:00
u8sand_cp
3227210590 Networking Finally starting to be added :D 2010-07-18 19:53:05 -07:00
u8sand_cp
c00c9b08b9 Rand was just a demo, now that I have vs2010, I'm going to be working on the networking aspect of the project. 2010-07-18 18:55:13 -07:00
Scionwest_cp
ba95d6b070 MudEngine:
- GameObject.GetProperty now supports returning Dynamic Types (Requires .NET 4.0)
2010-07-18 14:41:04 -07:00
Scionwest_cp
6282478c9f Migrated entire project to Visual C# Express 2010 and .NET Framework 4.0
Any users using the source code will need to use the aforementioned products from now on.
2010-07-18 14:36:26 -07:00
u8sand_cp
233f8902b8 Works? 2010-07-18 14:27:36 -07:00
Scionwest_cp
b8f6be12c0 Mud Designer:
- Removed from solution

Mud Engine:
 - Moved the CommandEngine, CommandResults and ICommand Interface out from the Commands namespace and into GameManagement since they manage the game commands.
 - Added CommandExit class to provide the ability to exit a game once running. This is fully implemented.
 - Realms, Zones and Rooms now have an IsInitial property for determining if this is an initial location for the Game.
 - Renamed GameSetup to Game.
 - Corrected GameObject being in the incorrect namespace.
 - Corrected the ScriptEngine not 
 - CommandEngine no longer needs a Name argument. Arguments changed from 5 to 4 due to this change.

Mud Game:
 - Added Example Game used for testing various MUDEngine features and testing constructability of games using the engine.
 - Currently only contains 1 Realm, 1 Zone and Two Rooms. Only working command is Exit.
2010-07-18 13:52:16 -07:00
Scionwest_cp
06266b7245 MudEngine:
- Minor tweaks to Room.cs for checking file extension validity
 - Scripting Engine and related classes added to Solution (Files existed but were not a part of solution)
2010-07-17 09:55:43 -07:00
u8sand_cp
2c9536a02c 2010-07-17 07:54:24 -07:00
u8sand_cp
ae47a93760 Some networking stuff in C++. If its possible to use it because dlls can be in any language, else I'm working on a C# version. 2010-07-17 06:17:25 -07:00
Scionwest_cp
35c10eed68 MudEngine:
- Implemented Scripting Engine; Not fully completed
 - Migrated PlayerBasic from MudDesigner to MudEngine.
2010-07-16 15:35:10 -07:00
Scionwest_cp
d40b8690d5 - Migrated additional content from MudDesigner solution to MudEngine.
- Updated MudDesigner to reference the new MudEngine solution.
- MudDesigner currently references engine classes within it's own solution and the MudEngine solution. This will be addressed soon. All classes related to the engine will be moved to the MudEngine project.
- Began prepping for the removal of all UITypeEditor classes and the namespace from the MudDesigner project.

Please note that while this version will compile, it is currently broken. Projects do not get created correctly due to the migration I'm performing. The designer is given less priority at the moment as the engine is the primary focus. Projects will need to be hard-coded using the MudEngine library until the designer is fixed.
2010-07-15 20:21:56 -07:00
Scionwest_cp
dc311f5aa5 Added MudEngine Project to the Solution. I will slowly be moving the MudDesigner.MudEngine classes out of the Mud Designer Solution and into it's own.
Currently the Mud Designer still contains the old MudEngine classes until migration has been completed.
2010-07-15 18:53:38 -07:00
Scionwest_cp
7d3b6e471d Updated solution file. 2010-07-15 15:18:18 -07:00
Scionwest_cp
5a18ddaf07 Mud Designer:
- Realm Widget now informs users that it is not implemented yet upon being clicked on.
2010-05-21 15:05:41 -07:00
Scionwest_cp
02c7b18094 Mud Engine:
GMTeleport checks to make sure the player using the command is indeed a GM.
2010-04-18 11:32:49 -07:00
Scionwest_cp
1d302413d2 Engine:
- Zones now adjusted to delete rooms matching the new collection method being used.

Designer:
 - Room Designer now supports the new Zones.Room collection
2010-02-19 16:04:17 -08:00
Scionwest_cp
f79a5d482b Engine:
- Removed the ManagedScripting Engine from the project. Scripting will be implemented at a later time using a custom build engine.
 - Room.Load was re-wrote to allow for loading a supplied room name (not a full filename). The Room will load the supplied Roomname by checking within it's current Zone. Rooms within different Zones can be loaded by supplying a Zone name as one of the optional parameters. Same goes for loading Rooms within a different Realm
 - All classes using the original Room.Load code have been tweaked to use the new code. Cuts the needed code used by each individual class by 80%.
 - Room.InstallPath Property added for returning the full filename and location of the Room where it's currently installed.

Designer:
 - Room Designer now supports deleting Rooms.
 - Doorway Editor no longer fails when attempting to change doorway Traveling Directions.

Runtime:
 - No longer prints blank lines if the object does not contain any text to print.
 - Added a 2nd Print method with a boolean argument for printing blank lines by force if needed.

Note: Room Deleting and Room.Load code was only tested using Rooms within Root Zones. Rooms contained within a Zone owned by a Realm was not tested.
2010-02-06 20:56:15 -08:00
Scionwest_cp
59502408ce Designer:
- Now supports the exit command, prevents the designer from crashing.

Runtime:
 - Added a GUI based set of buttons for traversing your environments via a click-through method instead of forcing users to type commands.

Engine:
 - Added the Exit command to exit the runtime (At this time it shuts down the Designer as well.)
2010-02-04 20:43:28 -08:00
Scionwest_cp
79f6d36083 Engine:
- Changed the IGameCommand Interface constructor for the Execute method.
 - Updated all of the game commands to make use of the new Execute Method Constructor requirements set by the updated interface.
 - Look command now returns a description of the players current Room.
 - Walk command now supports moving players from one Room to another. Use 'Walk Direction' where Direction equals the direction you want to travel (Example: 'Walk North")
 - TravelDirections.GetTravelDirectionValue now checks the supplied direction value in a case-insensitive manor.
 - Add a new CommandEngine that handles the commands inputed from the user.
 - Modified CommandResult to return an array of objects rather than a single object.

Runtime:
 - Now scans the supplied collection of objects returned to the runtime after executing a game command, and adjusts the runtime components as needed, including printing information to the console.
 - Now displays various warnings during startup to let the user know if certain content hasn't been set within the ProjectInformation yet.
 - Now executes the 'Look' command on startup to display the users current location.
 - Fully supports the 'Look' and 'Walk' commands.
2010-02-04 17:18:53 -08:00
Scionwest_cp
efc49e35ce Designer:
- Designer now has a status bar to show when various things are completed successfully.
 - The Offline Runtime can now be launched via the Designers Project menu.
 - Designer now features a 'Set As Initial Location' item within the Right-Click menu. Right Click on a Zone and assign it as your projects initial starting location.

Engine:
 - BaseCharacter class fleshed out a little bit. Now includes an OnTravel method for player travel code.
 - PlayerBasic class now inherits from BaseCharacter.
 - ProjectInformation now supports setting the games initial zone location.
 - ProjectInformation.Filename is now placed within a category (Object Settings) within the Property Pane of the Designer.
 - Room.GetDoor method added for returning a specified door with the matching  travel direction.
 - StartingLocation now overrides ToString to return the location that's currently assigned to it for use within the Designer.
 - Zone class now has an EntranceRoom Property for settings the default entrance room for the Zone. This is used by the Runtime and the designer when setting and retrieving the InitialLocation.

Offline Runtime:
 - Now creates a basic player, loads the project and places the player within the entrance room designated by the InitialLocation.Zone
 - Runtime contains code that automatically moves the player to the north during startup. This will be removed, it's only there for testing purposes.
 - Runtime does not print anything to the console yet.
2010-01-31 19:02:06 -08:00
Scionwest_cp
2ec31c0170 Engine:
- Zone.RefreshRoomList method was renamed to Zone.RebuildRoomCollection.

Designer:
 - Room Editor now adjusts all of a Rooms connected doorways to connect to a re-named Room. No need to manually load and edit each Room connected to 'Bedroom' after it was renamed from 'New Room'
2010-01-28 18:56:58 -08:00
Scionwest_cp
5f9a707b4c Engine:
- Added Character class PlayerBasic for the lowest authorized level
 - Added Character class PlayerAdmin that will provide some additional higher level authorized commands
 - Added Character class PlayerGM that will provide high level authorized commands
 - Added Factions class for future use of factions
 - Added Class class for future use of classes
 - Added Race class for future use of Races
 - Added NPCFriendly class for future use of Friendly NPCs
 - Added NPCHostile class for future use of Monster NPCs
 - Added CommandWalk class for future walk command
 - Added CommandGMTeleport class for future GM teleporting support.
 - Added Description property to the Door class.
2010-01-22 22:47:37 -08:00
Scionwest_cp
85aae88e34 Engine:
- Added GameCommands namespace for holding all of the game command classes
 - Added ICommand interface for game commands.
 - Added IPlayer interface for player classes.
 - Added CommandLook for prepping the Test Runtime for looking at environments.

Misc:
 - Updated Mud Designer Project Roadmap file (MudDesigner.pod)
2010-01-22 22:14:08 -08:00
Scionwest_cp
7c72fbb2e8 - Added Project Design Document (Not finished)
- Added Project Roadmap (Not finished, Requires OpenProject to be installed http://openproj.org/openproj)
 - Included a Readme file.
2010-01-22 21:45:15 -08:00
Scionwest_cp
d78b4e196e Designer:
- Doorway Linking is now completed.
 - Auto-Generated Rooms are now linked back to the Doorway that created them.

Runtime:
 - Began implementing a very simple Runtime for offline testing.

Engine:
 - Room Editor now saves a Room after it has had a Doorway change made to it.
 - Fixed the missing Doorways issue after closing the Room Editor.
2010-01-22 08:43:41 -08:00
Scionwest_cp
f919539a89 Designer:
- Door Linking implementation started.
 - Duplicate directions are not allowed within a Room
 - If a User enters the name of a non-existing Room for linking to a Doorway, the Designer generates that Room for the User.
 - Room Editor now refreshes it's list of Rooms after the Doorway Manager closes so that auto generated Rooms are displayed.
 - Added new Doorway Manager UI

Engine:
 - Added Door.DoorwayExist() method to the Door class.
2010-01-21 23:33:14 -08:00
Scionwest_cp
0811af95b1 Engine:
- Deleted old Doorway editor
2010-01-21 22:03:03 -08:00
Scionwest_cp
de726021df Designer:
- Redesigned Doorway Manager
 - Reworked the Door class
 - Reworked the Room Class.
2010-01-21 22:02:36 -08:00
Scionwest_cp
2a88141b02 - Room Linking development started
- Code Optimizations
 - Room Editor UI Tweaking
 - Doorway Editor added
 - Room Interface added.
 - Rooms now contain a Realm Property so that users can easily figure out what Realm a designated Room belongs to.
2010-01-19 18:44:18 -08:00
Scionwest_cp
6c8678a624 Major Changes:
- Widget Development Resumed.
 - Corrected instances where the Project Information was not being saved.
 - Corrected instances where deleting a Realm was not happening correctly.

Minor Changes:
 - Realm Widget UI Tweaks
 - Realm Widget Improvements
 - Code Optimizations
2010-01-19 15:43:43 -08:00
Scionwest_cp
d5ebbe186f Major Changes:
- Finalized Adding/Removing Zones from within Realms (their Rooms included.)
 - Finalized Deleting objects.
 - Rooms can now be loaded and edited after Saving.

Minor Changes:
 - Code Optimizations
 - Object Property organizing improved.
2010-01-19 15:08:19 -08:00
Scionwest_cp
56ce8667ff Engine:
- UIRealmControl Removal of Zones added within a Realm was re-wrote to resemble the new Add Zone code.
2010-01-19 14:08:28 -08:00
Scionwest_cp
0395acb0f9 Designer:
- Renamed SaveSelected() to SaveObject()
 - Added additional commenting
 - Re-formatted the document
 - Moved the search code out from the text box and into its own method SearchForObject()
 - Changed search method for the text box from txtSearch_Enter to txtSearch_KeyDown
 - Re-write of object save code finished.

Engine:
 - Realm.GetZone() re-wrote to use LINQ.
 - Zone.GetRoom() renamed to Zone.GetRoomByName() for searching for a Room by name
 - Zone.GetRoomByFilename() added for searching by filename for a Room.
 - Re-wrote Adding Zones into Realms via the UIRealmControl. Uses 54% less source, and better readability.
 - UIRealmEditor now stores a proper backup of Zones incase of UIRealmControl instancing failure.
2010-01-19 13:09:33 -08:00
Scionwest_cp
af4dc2ad7a Designer:
- Re-wrote the Object Delete code. Reduced the code by 52% and increased readability.
 - Added additional search criteria to GetNodeType()
 - Removed the Application from running within a Try/Catch as it made debugging difficult.
2010-01-19 07:01:44 -08:00
Scionwest_cp
a98e2bc069 Designer:
- Corrected Project Information not being displayed when loaded for editing
 - Re-wrote Designer Save code to use the objects save code instead of FileManager. Resulted in 26% less code and cleaner source.
 - Project Explorer now checks Saved State of currently loaded object just like the Right-Click->Edit Object menu item does.

Engine:
 - ProjectInformation.Save() now implemented.
 - BaseObject.Save() now implemented. All objects inheriting from BaseObject can save itself. Including all Environment objects (Realms,Zones, Rooms) and Currency objects.
2010-01-18 21:31:47 -08:00
Scionwest_cp
42e6fef109 Major Changes:
- Rooms are now saved within the selected Zone.
 - Fixed Project Explorer not displaying project directory structure on Designer startup.

Engine:
 - Re-wrote Zone.GetRoom() to use the more efficient LINQ query.
 - Zone.RefreshRoomList now saves itself after re-building the Room collection
 - UIRoomControl now has a public Rooms collection for use by the UIRoomEditor
 - UIRoomEditor now returns the modified UIRoomControl.Rooms collection to the Designers properties pane instead of an empty collection.

Designer:
 - Project Explorer now displays project directory structure on load. This was broken during Designers Constructor re-write.
 - Added additional comments to increase readability of source.
2010-01-18 20:46:43 -08:00
Scionwest_cp
afd74530cd Engine:
- Corrected SaveDataTypes.Currency being named incorrectly. Changed to Currencies
 - ProjectInformation now inherits from the new IFileIO interface.
 - ProjectInformation.Load can be used instead of the FileManager now (note: Saving of ProjectInformation must still be done using FileManager)
 - Organizing of BaseObject done
 - BaseObject now supports BaseObject.Load. Use this instead of FileManager.Load
 - Fixed UIRealmControl error, attempting to deserialize into a null Zone Field
 - Program.cs is now encapsulated into a try/catch
 - IFileIO interface added for providing a blueprint on file I/O operations

Designer:
 - Additional ObjectTypes added to the ObjectTypes enum
 - Additional commenting provided throughout the source.
 - Re-organized the source code.
 - Simplified the Constructor code. Roughly 50% less code now.
 - Re-wrote the Object Load code to make it easier to read and maintain.
 - Renamed several menu items to conform to the projects naming conventions
2010-01-17 18:58:26 -08:00