using System; using System.Collections.Generic; using System.Linq; using System.Text; using MudEngine.Core.Interfaces; using MudEngine.GameScripts; using MudEngine.Game.Characters; using MudEngine.Core; namespace MudEngine.Game.Environment { public class Zone : Environment { /// /// Gets or Sets the what stats /// public CharacterStats StatDrain { get; set; } public Boolean Safe { get; set; } public Realm Realm { get; set; } public Zone(StandardGame game, String name, String description) : base(game, name, description) { this._RoomCollection = new List(); } public Room CreateRoom(String name, String description) { Room room = new Room(this.Game, name, description, this); foreach(Room r in this._RoomCollection) { if (r.Name == name) { Logger.WriteLine("An attempt to create a duplicate Room was stopped. Room '" + name + "' was not created within the Zone '" + this.Name + "'"); return null; } } this._RoomCollection.Add(room); return room; } public Boolean LinkRooms(String departingRoom, String arrivalRoom, AvailableTravelDirections direction) { Room depart, arrival; depart = this.GetRoom(departingRoom); arrival = this.GetRoom(arrivalRoom); if (depart == null || arrivalRoom == null) return false; Boolean result = depart.LinkRooms(direction, arrival); return result; } public Room GetRoom(String room) { foreach (Room r in this._RoomCollection) { if (r.Name == room) return r; } return null; } private List _RoomCollection; } }