Commit graph

147 commits

Author SHA1 Message Date
darxval_cp
a0c406d482 Created 2 new projects that are basically rewrites of the other two, many many many things are missing. but I want to effectively be able to switch states and commands without having to create dependencies.
Currently you can connect and Reach the "ConnectState" from there anything you state will just be an "InvalidCommand"
2012-06-04 18:40:46 -07:00
darxval_cp
bec840f5e4 Removed some this's (this.) and converted some Foreach statements to LINQ statements. 2012-05-31 18:55:23 -07:00
Scionwest_cp
2c39c7538e Room save/load code under construction. Realized during implementation that I will need to re-work the environment save code due to how rooms doors are loaded and saved. 2012-03-11 16:50:28 -07:00
Scionwest_cp
706c770dd7 CharacterStats.ToString() now returns a formatted string with all of the stats.
StandardGame and it's Child Classes display the name of the game when ToString() is invoked.
Realm and Zone save/load code is completed.
2012-03-11 13:25:32 -07:00
Scionwest_cp
ee3cd897f2 Began work on Environment save code.
Restructured the project save data folder layout when the engine starts.
The XMLData class now creates directories if they are missing.  Individual classes no longer need to check if a path is valid before saving.
Filenames are now automatically generated and no longer assigned by developers.  This change has been made across all classes that are savable which required some changing of the Save() method arguments.
2012-03-10 20:47:12 -08:00
Scionwest_cp
a6d346da3d All of the classes that currently perform Save/Load operations now log when a Property failed to be loaded correctly. 2012-03-10 19:48:41 -08:00
Scionwest_cp
32210124e0 Commands script folder renamed to BaseCommands. Users creating custom commands are encouraged to create them in a "Commands" or "Custom Commands" folder. 2012-03-10 19:43:42 -08:00
Scionwest_cp
11b2e73f35 Provided support for changing the location of the projects save data root. 2012-03-10 19:15:43 -08:00
Scionwest_cp
f5cf0c1f6a BaseScript now has a method for reporting failed Script.Load() method invocations. It will log the class name and property field if used correctly.
Some classes have some protection in place now in the event the class attempts to load a property that does not exist in the save file.
CommandSystem instances now use their instanced CommandCollection property instead of the static class property.
2012-03-10 16:08:02 -08:00
Scionwest_cp
9b475691d5 Primarily a bug fix check-in 2012-03-10 14:23:13 -08:00
Scionwest_cp
bcd9f46b0a Added improved logging through the engine for the server console. 2012-03-08 19:44:18 -08:00
Scionwest_cp
43e93706ab Realm class now inherits from the new Environment class.
CharacterRole class created with helper static methods for converting strings to their correct CharacterRoles enum value.
Environment class has save/load support however Realms/Zones/Rooms do not yet.
2012-03-08 18:03:09 -08:00
Scionwest_cp
8639403255 DataPaths now have values for the games Root directory and Script directory.
DataPath class is now completed and includes a new SetExtension() method for setting game object file extensions.
Scripting support fully implemented.
StandardGame now contains a Initialize() method for compiling scripts and searching for sub-classes of StandardGame
Server app will now use a Scripted game class instead of the default StandardGame if one is present.
StandardGame.Start() is now virtual so child classes can override it.
Sample Game script created to show how to create a custom game script, including how to setup the game and create Rooms pragamatically.
ScriptFactory has a new method for searching all scripts and scripts that inherit from a specified class.
Renamed all of the Command scripts.  They no longer start with 'Command'.  Example: "CommandSay" has now become "Say".  There is no need to preceed the command name with the word "Command" anymore.
2012-03-05 20:30:54 -08:00
Scionwest_cp
c40d32e7ae Basic Realm->Zone->Room combination is now created during World.Initialize(). This will be replaced with loading XML instead of hard-coding.
Newly created characters are assigned to the new World.StartLocation.
Rooms can now be connected.
Realms and Zones can create Zones and Rooms accordingly
Force moving of a character is now supported.  Walking has yet to be implemented.
2012-03-04 16:56:04 -08:00
Scionwest_cp
a3eb1b5fad Began initial work on the game world. World, Realm, Zone, Room and Doorway classes created but not implemented. 2012-03-04 11:48:11 -08:00
Scionwest_cp
b708a63273 * Removed BufferFlush() method from StandardCharacter. It was added for testing and never removed. 2012-03-04 00:35:58 -08:00
Scionwest_cp
2622c2d8c7 * ConnectionManager now has a helper method for returning a Connected Character that matches the supplied name
* Added a new Command. SetRole allows Admins to assign a Server Role (Admin, Player, GM etc) to a specified character.  Server.ServerOwner is the only Character that can use this command regardless of server role.  Any other Character must have a Role of Admin in order to use it.
* StandardCharacter now checks if the character is connected as well as being enabled during execution of commands.
* Re-organized how the StandardCharacter save code was invoked during disconnection from server.
* StandardCharacter.Role is now saved and loaded from file.
2012-03-04 00:29:02 -08:00
Scionwest_cp
f2c5b594c5 * DataPaths now has two new helper methods. GetFilePath for returning the path to a supplied filename for a specified object type. GetExtension which returns a file extension for the specified object type.
* XMLData now contains a GetData() method for returning data from the stored data collection.
* XMLData now contains a Load() method for loading a previously saved XML data file.
* StandardCharacter now automatically generates a filename.
* StandardCharacter.Connected added.  Use Connected to check if they are connected to the server regardless of the values for Enabled and LoggedIn.  LoggedIn is now true once the Login command is completed.
* Default Character Role is now Player.
* Server.ServerOwner property added.  When a character is logged in matching the ServerOwner name, it will automatically be assigned the Admin role.
* StandardCharacter.ExecuteSilentCommand() method added for executing a command and not having the "Command: " line printed to the screen when the command is completed.  Useful for daisy chained commands.
* StandardCharacter login code is now 100% completed.  Including save/load code and new character creation.
* StandardCharacter.SetRole() method added.  Admins can set the role of any other character in the game if they want to.
* BaseScript & StandardCharacter now have their Load() code fully implemented.  They can save and load their files now.
* Player creation command added.  Can only be executed from within the login command.  If it is executed from any other object it will bail.
* Stop command now only works when a Character with Role = Admin issues the command.  During development of a MUD Game, this would typically be the Server.ServerOwner character who will have Admin rights.
* ConnectionManager had some bugs fixed such as not removing Threads from the Thread collection when a character disconnected.  Also re-organized the character connection code some.
2012-03-03 23:29:58 -08:00
Scionwest_cp
4b6c394f43 * Moved the Telnet header removal code from StandardCharacter to the Login command.
* Login command now checks to make sure no illegal characters exist in the characters name such as underscores and asteriks.  Only letters and numbers are allowed.
* Only 1 word names are supported however I provided support for first and last name based characters within the Login command.  It is commented out and can be easily implemented by uncommenting.
2012-03-03 21:15:53 -08:00
Scionwest_cp
ec5a674062 * StandardCharacter now automatically invokes the Login command upon connection to the server. Login command not implemented completely yet.
* Telnet client header information is now successfully (finally) stripped out of the first stream received.
* Command System underwent some optimizations along with now always returning a Boolean value once execution of a command is completed.
* ICommand interface now forces all ICommand.Execute methods to return a Boolean value.
* DataPaths class re-wrote and is now simi in-use by StandardGame and the Login command
* Minor adjustments to how characters are initialized upon connection in various classes.
2012-03-03 20:57:47 -08:00
Scionwest_cp
0720393626 Fixed a error in CommandLogin preventing the source from compiling. Didn't notice that prior to committing the previous change set. 2012-03-03 13:56:19 -08:00
Scionwest_cp
40b0d2be79 * Began writing the code for player login support.
* Re-organized the StandardCharacter source code.
* StandardGame now implements DataPaths in its Constructor.
2012-03-03 13:53:56 -08:00
Scionwest_cp
f0ec29c240 * XMLData.Save now has exception handling code in-place.
* Added better commenting to the majority of the projects files.
* Removed command support from the server console.
* Added a Client side command STOP that can be used to shut down the server.  In the future that will be specific to Admins only.
* Characters now have their save code invoked during server shut down.
* Server shut down code added.  Server.Stop() fully implemented.
2012-03-03 13:24:35 -08:00
Scionwest_cp
b5c9f2967a 2012-03-03 11:29:53 -08:00
Scionwest_cp
27f7e31772 * Re-wrote the Server code again. Now much more reliable and passes all connections to the ConnectionManager properly.
* StandardCharacter re-wrote to support the new Server code.  Also added event method support for various states.
* ConnectionManager re-wrote to support the new server.
* Work on Log message importance started
* INetworked.Connect now requires a Socket as its parameter.
* StandardGame no longer has Properties for MaxConnections and MaxQueuedConnections.  This is handle via StandardGame.Start() parameters.
* CommandLogin command added.  Initial check-in and not fully implemented.
2012-03-03 11:17:01 -08:00
Scionwest_cp
5b141c62ed Removed test character save code from the server 2012-02-29 20:07:32 -08:00
Scionwest_cp
38bdf75bf1 XMLData class added. This will manage the saving and loading of all scripted objects during runtime. The saved files will be XML formatted.
Added rScript files to the engine.  These have not been implemented and currently don't work with the engine.
BaseScript has been modified to support the new XMLData class for saving data.
2012-02-29 20:06:14 -08:00
Scionwest_cp
fc27d9fc22 * Provided better commenting of the Server application.
* Performed some Refactoring.  ConsoleInput file created to store the ConsoleInput class instead of it being held within the Program.cs file.
2012-02-28 20:44:59 -08:00
Scionwest_cp
d857b23dee Removal of BaseCommand class as Commands will inherit from ICommand like the original Command System did. 2012-02-28 20:12:40 -08:00
Scionwest_cp
3d8051c995 Initial Check-in for Alpha 2.0 source code.
Includes working Telnet server, working command engine and Character code.
2012-02-28 20:11:10 -08:00
Scionwest_cp
224f754514 Deletion of remaining project files pertaining to Alpha 1.3 2012-02-28 20:03:12 -08:00
Scionwest_cp
388f2cf1e5 MudEngine:
Server - Minor changes.  Trying to track down why it crashes Telnet clients.
2011-10-03 19:43:19 -07:00
Scionwest_cp
3bd493c1cd Mud Designer:
Removed old forms and prepared for new designer layouts

MudEngine:
Server - Now starts and runs, however sending information to the client crashes telnet clients for some reason.
BaseCharacter - Removed OnConnect() source code and changed method into an abstract method.  This is now implemented via MudGame.MudCharacter
BaseCommand - BaseCommand.Name now implemented.  Constructor defaults to the Type name.  Note all command names must begin with 'Command'
BaseGame - Now has a Server propety
BaseServer - Added IsRunning property
ICharacter - Added Send() method
ICommunicate - Added Shutdown() method for use with servers.
CommandSystem - Bug fix.  Was checking to see if the command was an Interface rather than checking if it inherits from one.
CommandSystem - Bug fix.  No longer attempts to add abstract commands to collection
ScriptSystem - Bug fix.  Corrected the name of the Mud Compiler during compiler loading.

MudGame:
Added initial MudCharacter class.  Will be the standard class that all characters will inherit from.
Added CommandLogin for processing user server logins.
MudGame - Now calls Server.Initialize during Game.Initialize()
MudGame - Uses Server.IsRunning property checks rather than Server.EnableServer
MudGame - Added initial code for player connections.
2011-10-02 20:40:51 -07:00
Scionwest_cp
68d49a4160 MudEngine:
BaseGame.IsRunning property added.

MudGame:
Removed all of the old scripts.  They will be re-wrote.
MudGame will become a template project.  Including a template Game that inherits from BaseGame, along with template characters and items.
MudGame.cs added.  Initial Game class.  It does not support environment loading at this time.
Program.cs re-wrote to run the game in a while() loop checking MudGame.IsRunning propery and calling the MudGame.Update() method each iteration.
Deleted the Settings.ini file.  I want to use something different.
2011-10-01 22:36:42 -07:00
Scionwest_cp
a365256d53 Changes project wide with this check-in.
MudCompiler:
No longer works.  Needs to be re-wrote to support the new Alpha 2.0 engine

MudDesigenr:
Removed most of the forms since we are not working on it.  Only form left is Project Manager, which will be removed shortly as well.

MudGame:
No longer runs.  All of the source code was removed due to MudEngine Alpha 2.0 source changing drastically.

MudEngine:
Alpha 2.0 source code finally checked-in.  It contains the full re-build of the engine.  A lot of new abstract classes have been added.
2011-10-01 22:20:23 -07:00
Scionwest_cp
5be2f9bf5b Removed old engine classes. Needs to be done prior to checking-in the new engine classes re-wrote from ground up. 2011-10-01 22:09:33 -07:00
Scionwest_cp
5a39a7995e Checking in last changes made to MudEngine. This engine will be replaced. 2011-10-01 15:57:03 -07:00
Scionwest_cp
c4345675d4 Moved GameManagement files into a Game directory. 2011-09-27 19:28:43 -07:00
Scionwest_cp
eff71f38cd Moved CommandRestart, CommandLogin and CommandSaveWorld from the MudEngine project into the MudGame project within the Scripts directory.
Now 3rd party users can see how restarting the server takes place, saving the world and logging into the game world.

CommandEditRealm, EditRoom and EditZone was deleted.  They will be re-built at a later date.  For the time being, use the pre-built example scripts within the MudGame project.
2011-09-27 19:27:42 -07:00
Scionwest_cp
a00f60d22b Migrated remaining source files into their new directory structures. Namespace migration to follow suit.
Moved rScript source files into the Mud Engine.Scripting files.  Planning on removing the reference to rScript.dll and keep everything within the MudEngine.
2011-09-27 19:15:37 -07:00
Scionwest_cp
c432edbef9 Deleted Networking folder.
Deleted ParseProperty Attribute.  A different approach will be used for dynamic Type saving.
Removed BaseObject.NewSave().  The re-write on save code will be done at a later date.
2011-09-27 18:47:02 -07:00
Scionwest_cp
373b8b66b8 Renamed MudEngine.FileSystem folder to MudEngine.DAL (Data Access Layer)
Deleted the Attributes folder as it is no longer used.
Moved Server.cs from Networking to Communication folder.

Classes all still reside within their original namespaces, just migrating files into their new folders.  Namespace migration will take place afterwards.
2011-09-27 18:44:18 -07:00
Scionwest_cp
98e01dfd98 Created new namespace folders for current engine overhaul
Moved ParseProperty into MudEngine.Core
2011-09-27 17:27:37 -07:00
Scionwest_cp
974cc0f9b8 Corrected error causing CommandEngine commands to not work. 2011-09-19 17:04:41 -07:00
Budoray_cp
cd68f3d042 2011-09-18 12:51:20 -07:00
Scionwest_cp
b0cfc5f487 Added rScripting solution to the project so those who do not have the rScript engine library. Makes for easier debugging and adding Mud Designer features to script engine. 2011-09-18 12:40:53 -07:00
Scionwest_cp
d1c0ff188a Changed private fields BaseCommands.realm and player to protected so that child classes can access them.
Added BaseCommands.zone and BaseCommands.room.  Fixed all 766 errors doing this lol.
2011-09-18 11:57:42 -07:00
Scionwest_cp
ace60cf54a Continued work on bug corrections. Commands now override BaseCommand.Execute(). 2011-09-16 18:46:03 -07:00
Scionwest_cp
ac14f2a657 Began some error corrections from adding BaseCommand 2011-09-15 19:57:08 -07:00
Budoray_cp
3ab27d2fae 2011-09-15 06:47:10 -07:00