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.
This commit is contained in:
Scionwest_cp 2012-03-04 16:56:04 -08:00
parent a3eb1b5fad
commit c40d32e7ae
12 changed files with 302 additions and 21 deletions

View file

@ -4,19 +4,46 @@ using System.Linq;
using System.Text;
using MudEngine.Game.Environment;
using MudEngine.Core.Interfaces;
namespace MudEngine.Game
{
public class World
public class World : IGameComponent
{
/// <summary>
/// Gets a reference to the currently running game.
/// </summary>
public StandardGame Game { get; private set; }
/// <summary>
/// Gets or Sets the starting location for new characters.
/// </summary>
public Room StartLocation { get; set; }
public World(StandardGame game)
{
this.Game = game;
this._RealmCollection = new List<Realm>();
}
public void Initialize()
{
Realm realm = new Realm(this.Game, "Azeroth", "");
Zone zone = realm.CreateZone("Bablo", "");
zone.CreateRoom("Bedroom", "");
zone.CreateRoom("Hallway", "");
zone.LinkRooms("Bedroom", "Hallway", AvailableTravelDirections.East);
this.StartLocation = zone.GetRoom("Bedroom");
}
public void Destroy()
{
throw new NotImplementedException();
}
public void CreateRealm(String name, String description)
{
Realm r = new Realm(this.Game, name, description);