public override void OnRegister(CmdDispatcher <DMEnv> dispatcher) { DictMapper <DMEnv> mapper = new DictMapper <DMEnv>() .Then("年龄", new IntParser <DMEnv>()) .Then("含幸运", new BoolParser <DMEnv>("是", "否")); dispatcher.Register("coc7") .MapDict(mapper) .Executes((env, args, dict) => DrawProperties(env, 5, dict.Get("年龄", -1))) .Then( PresetNodes.Int <DMEnv>("数量") .MapDict(mapper) .Executes((env, args, dict) => DrawProperties(env, args.GetInt("数量"), dict.Get("年龄", -1))) ).Then( PresetNodes.Literal <DMEnv>("购点") .Then( PresetNodes.Int <DMEnv>("总点数") .MapDict(mapper) .Executes((env, args, dict) => env.Append("该功能还未实行")) ) ); dispatcher.SetAlias("COC7", "coc7"); dispatcher.SetAlias("COC", "coc7"); dispatcher.SetAlias("coc", "coc7"); }
public async Task <IActionResult> List([FromQuery] DictListSearchRequest request) { var result = await _dictService.GetPagedList(DictMapper.ToDictSearchDto(request)); var viewModels = _mapper.Map <List <DictViewModel> >(result.Data); return(Ok(viewModels)); }
public void OnRegister(CmdDispatcher <TestEnv> dispatcher) { CommandNode <TestEnv> root = PresetNodes.Literal <TestEnv>("物品"); DictMapper mapper = new DictMapper() .Then("前缀", new StringParser()) .Then("后缀", new StringParser()) ; Console.WriteLine(string.Join("\n", root.GetHelp())); dispatcher.Register("物品", PresetNodes.Literal <TestEnv>("创造") .Then(PresetNodes.String <TestEnv>("物品名") .MapDict(mapper) .Executes((env, args, dict) => CreateItem( env.Items, args.Get <string>("物品名"), dict.Get <string>("前缀"), dict.Get <string>("后缀") ))), PresetNodes.Literal <TestEnv>("销毁") .Then(PresetNodes.String <TestEnv>("物品名") .Executes((env, args, dict) => DestoryItem( env.Items, args.Get <string>("物品名") ))), PresetNodes.Literal <TestEnv>("编辑") .Then(PresetNodes.String <TestEnv>("物品名") .Then(PresetNodes.String <TestEnv>("新名字") .MapDict(mapper) .Executes((env, args, dict) => EditItem( env.Items, args.Get <string>("物品名"), args.Get <string>("新名字"), dict.Get <string>("前缀"), dict.Get <string>("后缀") )))), PresetNodes.Literal <TestEnv>("显示") .Executes((env, args, dict) => ListItems(env.Items)) ); dispatcher.SetAlias("创造", "物品 创造"); dispatcher.SetAlias("销毁", "物品 销毁"); }
public override void OnRegister(CmdDispatcher <DMEnv> dispatcher) { DictMapper <DMEnv> mapper = new DictMapper <DMEnv>(); mapper.Rest(new DiceParser()); dispatcher.Register("法术") .Then( Literal <DMEnv>("创造").Then( String <DMEnv>("法术名") .MapDict(mapper) .Executes((env, args, dict) => CreateSpell(env, args.GetStr("法术名"), dict)) ) ).Then( Literal <DMEnv>("销毁").Then( String <DMEnv>("法术名") .Executes((env, args, dict) => DestorySpell(env, args.GetStr("法术名"))) ) ).Then( Literal <DMEnv>("学习") .Then( String <DMEnv>("法术名") .Executes((env, args, dict) => LearnSpell(env, env.Inv, args.GetStr("法术名"))) ) ).Then( Literal <DMEnv>("忘记") .Then( String <DMEnv>("法术名") .Executes((env, args, dict) => ForgetSpell(env, env.Inv, args.GetStr("法术名"))) ) ).Then( Literal <DMEnv>("使用") .Then( String <DMEnv>("法术名") .Executes((env, args, dict) => UseSpell(env, env.Inv, args.GetStr("法术名"))) ) ); dispatcher.SetAlias("学习", "法术 学习"); dispatcher.SetAlias("忘记", "法术 忘记"); dispatcher.SetAlias("施法", "法术 使用"); }
public async Task <PagedModel <DictDto> > GetPagedList(DictSearchDto criteria) { // 列表只显示id为0的dict,其他的是以"子节点"来显示的 Expression <Func <SysDict, bool> > condition = it => it.Pid == 0; if (!string.IsNullOrWhiteSpace(criteria.Name)) { condition = condition.And(it => it.Name.Contains(criteria.Name)); } var all = await GetAll(); var topDict = all .Where(condition.Compile()) .Skip((criteria.Page - 1) * criteria.Limit) .Take(criteria.Limit) .ToList(); var dto = DictMapper.ToDictProfileDto(all, topDict, criteria); if (dto.Count <= 0) { return(dto); } foreach (var item in dto.Data) { var sub = all.Where(it => it.Pid == item.Id).OrderBy(it => it.Num).ToList(); if (sub.Count <= 0) { continue; } item.Detail = string.Join(',', sub.Select(it => string.Join(':', it.Num, it.Name)).ToList()); } return(dto); }
public override void OnRegister(CmdDispatcher <DMEnv> dispatcher) { DictMapper <DMEnv> mapper = new DictMapper <DMEnv>() .Then("技能名", new StringParser <DMEnv>()) .Then("类型", new OrParser <DMEnv>(new string[] { "肉搏", "投掷", "射击" })) .Then("伤害", new DiceParser()) .Then("贯穿", new BoolParser <DMEnv>("是", "否")) .Then("连发数", new IntParser <DMEnv>()) .Then("弹匣", new IntParser <DMEnv>()) .Then("故障值", new IntParser <DMEnv>()) .Then("弹药", new IntParser <DMEnv>()) .Then("消耗", new IntParser <DMEnv>()); dispatcher.Register("物品").Then( Literal <DMEnv>("创造") .Then( String <DMEnv>("物品名") .MapDict(mapper) .Executes((env, args, dict) => CreateItem(env, args.GetStr("物品名"), dict)) ) ).Then( Literal <DMEnv>("销毁") .Then( String <DMEnv>("物品名") .MapDict(mapper) .Executes((env, args, dict) => DestoryItem(env, args.GetStr("物品名"))) ) ).Then( Literal <DMEnv>("丢弃") .Then( String <DMEnv>("物品名") .MapDict(mapper) .Executes((env, args, dict) => ThrowItem(env, args.GetStr("物品名"), null)) .Then( String <DMEnv>("新名") .MapDict(mapper) .Executes((env, args, dict) => ThrowItem(env, args.GetStr("物品名"), args.GetStr("新名"))) ) ) ).Then( Literal <DMEnv>("拾取") .Then( String <DMEnv>("物品名") .MapDict(mapper) .Executes((env, args, dict) => PickItem(env, args.GetStr("物品名"), null)) .Then( String <DMEnv>("新名") .MapDict(mapper) .Executes((env, args, dict) => PickItem(env, args.GetStr("物品名"), args.GetStr("新名"))) ) ) ).Then( Literal <DMEnv>("传递") .Then( String <DMEnv>("物品名") .Then( String <DMEnv>("目标名") .Handles(ExistInv) .Executes((env, args, dict) => PassItem(env, args.GetStr("物品名"), args.GetInv("目标名"), null)) .Then( String <DMEnv>("新名") .Executes((env, args, dict) => PassItem(env, args.GetStr("物品名"), args.GetInv("目标名"), args.GetStr("新名"))) ) ) ) ).Then( Literal <DMEnv>("编辑") .Then( String <DMEnv>("物品名") .MapDict(mapper) .Executes((env, args, dict) => EditItem(env, args.GetStr("物品名"), null, dict)) .Then( String <DMEnv>("新名") .MapDict(mapper) .Executes((env, args, dict) => EditItem(env, args.GetStr("物品名"), args.GetStr("新名"), dict)) ) ) ).Then( Literal <DMEnv>("装弹") .Then( String <DMEnv>("武器名").Then( Dice("装弹量") .Executes((env, args, dict) => LoadBullets(env, args.GetStr("武器名"), args.GetDice("装弹量"))) ) ) ); dispatcher.SetAlias("造物", "物品 创造"); dispatcher.SetAlias("销毁", "物品 销毁"); dispatcher.SetAlias("丢弃", "物品 丢弃"); dispatcher.SetAlias("拾取", "物品 拾取"); dispatcher.SetAlias("传递", "物品 传递"); dispatcher.SetAlias("装弹", "物品 装弹"); dispatcher.SetAlias("it", "物品"); dispatcher.SetAlias("cr", "物品 创造"); dispatcher.SetAlias("ds", "物品 销毁"); dispatcher.SetAlias("th", "物品 丢弃"); dispatcher.SetAlias("pu", "物品 拾取"); dispatcher.SetAlias("ld", "物品 装弹"); dispatcher.SetAlias("ps", "物品 传递"); }
public override void OnRegister(CmdDispatcher <DMEnv> dispatcher) { DictMapper <DMEnv> mapper = new DictMapper <DMEnv>(); mapper.Rest(new ValueParser()); dispatcher.Register("人物卡") .Then( PresetNodes.Literal <DMEnv>("新建").Then( PresetNodes.String <DMEnv>("名称") .MapDict(mapper) .Executes((env, args, dict) => CreateInv(env, args.GetStr("名称"), "", dict)) .Then( PresetNodes.String <DMEnv>("描述") .MapDict(mapper) .Executes((env, args, dict) => CreateInv(env, args.GetStr("名称"), args.GetStr("描述"), dict)) ) ) ).Then( PresetNodes.Literal <DMEnv>("重命名").Then( PresetNodes.String <DMEnv>("新名称") .Executes((env, args, dict) => Rename(env, args.GetStr("新名称"))) ) ).Then( PresetNodes.Literal <DMEnv>("销毁").Then( PresetNodes.String <DMEnv>("名称") .Executes((env, args, dict) => "销毁人物卡需要操作者是管理员,并且需要加上“强制”参数!") .Then( PresetNodes.Literal <DMEnv>("强制") .Executes((env, args, dict) => DestoryInv(env, args.GetStr("名称"))) ) ) ).Then( PresetNodes.Literal <DMEnv>("重算") .Executes((env, args, dict) => ReCalc(env, env.Inv)) .Then( PresetNodes.String <DMEnv>("名称") .Handles(Extensions.ExistInv) .Executes((env, args, dict) => ReCalc(env, args.GetInv("名称"))) ) ).Then( PresetNodes.Literal <DMEnv>("检查") .Executes((env, args, dict) => Check(env, env.Inv)) ).Then( PresetNodes.Literal <DMEnv>("伤害加值") .Then( Extensions.Dice("数值") .Executes((env, args, dict) => SetDB(env, args.GetDice("数值"))) ) ).Then( PresetNodes.Literal <DMEnv>("标记") .Then( PresetNodes.Literal <DMEnv>("添加") .Rest( PresetNodes.String <DMEnv>("标签") .Handles(PreProcesses.ConvertObjectArrayToStringArray) .Executes((env, args, dict) => AddTags(env, env.Inv, args.Get <string[]>("标签"))) ) ).Then( PresetNodes.Literal <DMEnv>("移除") .Rest( PresetNodes.String <DMEnv>("标签") .Handles(PreProcesses.ConvertObjectArrayToStringArray) .Executes((env, args, dict) => RemoveTags(env, env.Inv, args.Get <string[]>("标签"))) ) ) ); dispatcher.SetAlias("车卡", "人物卡 新建"); dispatcher.SetAlias("撕卡", "人物卡 销毁"); dispatcher.SetAlias("重算", "人物卡 重算"); dispatcher.SetAlias("标记", "人物卡 标记 添加"); dispatcher.SetAlias("反标", "人物卡 标记 移除"); }