コード例 #1
0
        private void SeeRoomMobs(MudRoom room)
        {
            var mobs = Game.Instance.GetEntitiesInRoom(room.Id, x => x.Traits.Has("race") && !x.Traits.Has("item") && x.Id != Owner.Id);

            if (!mobs.Any())
            {
                Game.Instance.SendMessage(_acctId, "There are no signs of life here.");
                return;
            }
            var sb   = new StringBuilder();
            var verb = mobs.Count > 2 ? "are" : "is";

            Game.Instance.SendMessage(_acctId, $"{ConcatEntities(mobs)} {verb} here with you.");
        }
コード例 #2
0
        private void SeeRoomItems(MudRoom room)
        {
            var items = Game.Instance.GetEntitiesInRoom(room.Id, x => !x.Traits.Has("race") && x.Traits.Has("item"));

            if (!items.Any())
            {
                Game.Instance.SendMessage(_acctId, "There is nothing of note here.");
                return;
            }

            var sb = new StringBuilder();

            Game.Instance.SendMessage(_acctId, $"You see {ConcatEntities(items)} on the ground.");
        }
コード例 #3
0
        void SetupWorld()
        {
            var zone = new MudZone(1, "The Enchanted Forest");

            var room1 = new MudRoom(1, 1, "Western Clearing");

            room1.Traits.Add("description", "The passageway gives way to an expanse of land unobstructed by trees of any shape or size.");
            var room2 = new MudRoom(2, 1, "Eastern Thicket");

            room2.Traits.Add("description", "You find yourself in the midst of a densely packed bushes and shrubs.");
            var room3 = new MudRoom(3, 1, "Camp");

            room3.Traits.Add("description", "Surrounded by thick shrubbery and large, looming pine trees lies a modest encampment.  At its center, a fire crackles softly.");

            //add an item
            var torch = new MudEntity(777, "torch");

            torch.Traits.Add("item", "true");
            torch.Traits.Add("quantity", "1");
            ComponentManager.Instance.AssignComponent(torch, "item");
            _entities.Add(torch.Id, torch);
            room3.Entities.Add(torch.Id);
            torch.Traits.Add("room", room3.Id.ToString());

            //add a mouse and snake and bear
            var mouse = new MudEntity(888, "mouse");

            mouse.Traits.Add("race", "mouse");
            _entities.Add(mouse.Id, mouse);
            room3.Entities.Add(mouse.Id);

            var snake = new MudEntity(999, "snake");

            snake.Traits.Add("race", "snake");
            _entities.Add(snake.Id, snake);
            room3.Entities.Add(snake.Id);

            var bear = new MudEntity(222, "brown bear");

            bear.Traits.Add("race", "bear");
            _entities.Add(bear.Id, bear);
            room3.Entities.Add(bear.Id);


            //camp --> west
            var p1   = new MudPortal(1001, "Passageway 1");
            var p1e1 = new MudPortalEntry(1, room3.Id, room1.Id, "west");
            var p1e2 = new MudPortalEntry(2, room1.Id, room3.Id, "east");

            p1.Entries.AddRange(new[] { p1e1, p1e2 });

            //camp --> east
            var p2   = new MudPortal(1002, "Passageway 2");
            var p2e1 = new MudPortalEntry(3, room3.Id, room2.Id, "east");
            var p2e2 = new MudPortalEntry(4, room2.Id, room3.Id, "west");

            p2.Entries.AddRange(new[] { p2e1, p2e2 });

            room3.Portals.Add(p1.Id);
            room3.Portals.Add(p2.Id);

            room1.Portals.Add(p1.Id);

            room2.Portals.Add(p2.Id);

            zone.Rooms.AddRange(new[] { room1.Id, room2.Id, room3.Id });

            _zones.Add(zone.Id, zone);
            _rooms.Add(room1.Id, room1);
            _rooms.Add(room2.Id, room2);
            _rooms.Add(room3.Id, room3);
            _portals.Add(p1.Id, p1);
            _portals.Add(p2.Id, p2);
            _portalEntries.Add(p1e1.Id, p1e1);
            _portalEntries.Add(p1e2.Id, p1e2);
            _portalEntries.Add(p2e1.Id, p2e1);
            _portalEntries.Add(p2e2.Id, p2e2);
        }
コード例 #4
0
 private void SeeRoomDesc(MudRoom room)
 {
     Game.Instance.SendMessage(_acctId, $"{room.Traits.Get("description").Value}");
 }
コード例 #5
0
 private void SeeRoomName(MudRoom room)
 {
     Game.Instance.SendMessage(_acctId, $"{room.Name}");
 }
コード例 #6
0
 private void SeeRoomExits(MudRoom room)
 {
     //throw new NotImplementedException();
 }