Exemple #1
0
        public IResult PerformCommand(IMobileObject performer, ICommand command)
        {
            int targetGuildMasterNumber = command.Parameters.Count == 0 ? 0 : command.Parameters[0].ParameterNumber;
            int currentGuildMaster      = 0;

            foreach (INonPlayerCharacter npc in performer.Room.NonPlayerCharacters)
            {
                foreach (IPersonality personality in npc.Personalities)
                {
                    IGuildMaster guildMasterPersonality = personality as IGuildMaster;
                    if (guildMasterPersonality != null)
                    {
                        if (targetGuildMasterNumber == currentGuildMaster++)
                        {
                            return(guildMasterPersonality.Join(npc, performer));
                        }
                    }
                }
            }
            return(new Result(false, "There is no Guildmaster here to induct you."));
        }
Exemple #2
0
        public IResult PerformCommand(IMobileObject performer, ICommand command)
        {
            foreach (INonPlayerCharacter npc in performer.Room.NonPlayerCharacters)
            {
                foreach (IPersonality personality in npc.Personalities)
                {
                    IGuildMaster guildMasterPersonality = personality as IGuildMaster;
                    if (guildMasterPersonality != null)
                    {
                        if (command.Parameters.Count > 0)
                        {
                            return(guildMasterPersonality.Teach(npc, performer, command.Parameters[0].ParameterValue));
                        }
                        else
                        {
                            return(guildMasterPersonality.Teachable(npc, performer));
                        }
                    }
                }
            }

            return(new Result(false, "There is no GuildMaster here to teach you."));
        }