コード例 #1
0
ファイル: PullCommand.cs プロジェクト: blackthred/FoxMud
        public override void Execute(Session session, CommandContext context)
        {
            if (string.IsNullOrEmpty(context.ArgumentString))
            {
                session.WriteLine("Pull what?");
                return;
            }

            var arg1 = context.Arguments[0];

            var room = RoomHelper.GetRoom(session.Player.Location);
            var item = ItemHelper.FindFloorItem(room, arg1.ToLower());

            if (item == null)
            {
                session.WriteLine("You can't find that.");
                return;
            }

            if (!item.CanPull)
            {
                session.WriteLine("You can't pull that.");
                return;
            }

            session.WriteLine("You pull {0}", item.Name);

            switch (item.TemplateKey)
            {
            // this means new code every time a new pull object is created
            case "a dark lever":
                session.WriteLine("A bell echoes through eternity...");
                foreach (var admin in Server.Current.Database.GetAll <Player>().Where(p => p.IsAdmin))
                {
                    admin.Send(string.Format("`R{0} needs authorization...", session.Player.Forename), session.Player);
                }

                break;
            }
        }
コード例 #2
0
ファイル: LookCommand.cs プロジェクト: blackthred/FoxMud
        public override void Execute(Session session, CommandContext context)
        {
            if (context.Arguments.Count == 0)
            {
                PerformLookAtRoom(session);
                return;
            }

            // todo: look at a directional exit

            var room = Server.Current.Database.Get <Room>(session.Player.Location);

            if (room == null)
            {
                session.WriteLine("Couldn't find anything to look at");
                return;
            }

            var player = room.LookUpPlayer(session.Player, context.ArgumentString);

            if (player != null)
            {
                if (realCommandName == "look")
                {
                    PerformLookAtPlayer(session, room, player);
                }
                else
                {
                    PerformExaminePlayer(session, room, player);
                }
                return;
            }

            var npc = room.LookUpNpc(context.ArgumentString);

            if (npc != null)
            {
                if (realCommandName == "look")
                {
                    PerformLookAtNpc(session, room, npc);
                }
                else
                {
                    PerformExamineNpc(session, room, npc);
                }
                return;
            }

            // find item to look at
            var item = ItemHelper.FindInventoryItem(session.Player, context.ArgumentString);

            if (item == null)
            {
                item = ItemHelper.FindFloorItem(room, context.ArgumentString);
            }

            if (item != null)
            {
                item.LookAt(session);
                return;
            }

            session.WriteLine("You couldn't find anything like that.");
        }