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.
49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
using MudEngine.Core.Interfaces;
|
|
using MudEngine.Game;
|
|
using MudEngine.Game.Characters;
|
|
using MudEngine.Networking;
|
|
|
|
namespace MudEngine.GameScripts.Commands
|
|
{
|
|
public class Say : ICommand
|
|
{
|
|
public string Name { get; set; }
|
|
|
|
public string Description { get; set; }
|
|
|
|
public List<string> Help { get; set; }
|
|
|
|
public Say()
|
|
{
|
|
this.Name = "Say";
|
|
this.Description = "Chat command that allows objects to communicate.";
|
|
}
|
|
|
|
public Boolean Execute(string command, StandardCharacter character)
|
|
{
|
|
//Grab a reference to the character for simplifying access.
|
|
StandardGame game = character.Game;
|
|
//Remove the command "Say " from the string so we only have it's message
|
|
String message = command.Substring(3).Trim();
|
|
|
|
//Loop through each character on the server and broadcast the message.
|
|
//TODO: This should only broadcast to characters that are in the same Environment.
|
|
foreach (StandardCharacter c in character.Game.Server.ConnectionManager.GetConnectedCharacters())
|
|
{
|
|
//Only broadcast this message to those that are not the broadcastor.
|
|
if (c != character)
|
|
c.SendMessage(character.ToString() + " says: " + message);
|
|
}
|
|
|
|
//Send a different copy of the message to the broadcastor.
|
|
character.SendMessage("You say: " + message);
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|