示例#1
0
 public FieldUserInventorySpeaker(
     IConversationContext context,
     FieldUser fieldUser,
     int templateID           = 9010000,
     ScriptMessageParam param = (ScriptMessageParam)0
     ) : base(context, templateID, param)
     => _fieldUser = fieldUser;
示例#2
0
 public Speaker(
     IConversationContext context,
     int templateID           = 9010000,
     ScriptMessageParam param = 0
     ) : base(context)
 {
     TemplateID = templateID;
     Param      = param;
 }
示例#3
0
        public async Task <T> Prompt <T>(Func <ISpeaker, ISpeaker, T> func,
                                         ScriptMessageParam param = ScriptMessageParam.NoESC)
        {
            var result = default(T);

            await Prompt(new Action <ISpeaker, ISpeaker>(
                             (self, target) => result = func.Invoke(self, target)
                             ), param);

            return(result);
        }
示例#4
0
        public Task Prompt(Action <ISpeaker, ISpeaker> action, ScriptMessageParam param = 0)
        {
            var context      = new ConversationContext(Socket);
            var conversation = new Conversation(
                context,
                new Speaker(context, param: param),
                new Speaker(context, 9010000, param | ScriptMessageParam.NPCReplacedByUser),
                action
                );

            return(Converse(conversation));
        }
示例#5
0
 public SpeedQuizSpeaker(
     IConversationContext context,
     int templateID           = 9010000,
     ScriptMessageParam param = (ScriptMessageParam)0
     ) : base(context, templateID, param)
     => _options = new List <SpeedQuizOption>();