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.")); }
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.")); }