Files
better-genshin-impact/BetterGenshinImpact/Model/ConditionDefinition.cs
FishmanTheMurloc 6d4f8b80e8 Feat/multi lan (#1336)
* 记录一次对hutaofisher的访谈,帮助开发者理解其算法

* 本地化HelloWorld

* .csproj取消windows版本号,此处导致了IDE在新建代码文件和自动生成代码时,默认命名空间丢失的问题。已知VisualStudio和ReSharper存在这个问题。

* 优化扩展方法写法,改为从localizer扩展;Converter优化写法,避免冲突;新增两种语言,待测试ocr效果

* Revert ".csproj取消windows版本号,此处导致了IDE在新建代码文件和自动生成代码时,默认命名空间丢失的问题。已知VisualStudio和ReSharper存在这个问题。"

This reverts commit 8bd7ee74c5.

* localizer改为由构造函数传入以支持单元测试;一个英语上钩的单元测试

* 传送任务支持英语游戏界面;本地化参数挪至OtherConfig类下,但界面位置暂不挪动,待定

* 调整resx位置风格,放在直接使用字符串的类下;一条龙合成树脂及领取每日奖励支持游戏内中英双语

* 删除无用碎片文件

* 删去两个不必要的Sdcb包引用

* Paddle服务类去掉分类模型;检测和识别新增支持繁中和法语,配有单元测试;因小语种识别效果不理想,使用正则匹配替换多处识别文本相等或包含判断;钓鱼、一条龙合成树脂及领取每日奖励支持游戏内繁中和法语;

* 检查今日奖励任务的多语言化;右侧联机的P图标检测区域宽度缩减,避免英语角色名被误识别成P

* AutoDomainTask的游戏多语言化,由于我的游戏账号无法测试,仅配一些测试用例

* 修复有3个Mizuki导致异常的bug,临时用拼音代替新角色英文名,并为该数据初始化方法添加单元测试

* 瓦雷莎删去别名“牛牛”,因荒泷一斗已占用此别名;别名加载和读取优化

* 加个锁避免单元测试中多线程初始化paddle崩溃
2025-03-28 11:00:08 +08:00

150 lines
5.4 KiB
C#

using System.Collections.Generic;
using System.Linq;
using BetterGenshinImpact.GameTask.AutoFight.Config;
namespace BetterGenshinImpact.Model;
public class ConditionDefinition
{
public string? Subject { get; set; } // 选项主体
public string? Description { get; set; } // 选项描述
// 谓语选项
public List<string> PredicateOptions { get; set; } = ["包含"];
public IEnumerable<string>? ObjectOptions { get; set; } // 宾语选项
public List<string>? ResultOptions { get; set; } // 结果选项 为空使用文本框
}
// 条件定义
public class ConditionDefinitions
{
public static Dictionary<string, ConditionDefinition> Definitions { get; set; } = new()
{
{
"采集物", new ConditionDefinition
{
Subject = "采集物",
Description = "地图追踪此采集物时使用的队伍名称。队伍名称是你在游戏中手动设置的队伍名称文字。建议勾选全部并配置存在盾、加血的角色队伍。",
ObjectOptions = new List<string> { "全部",
"万相石",
"初露之源",
"劫波莲",
"卷心菜",
"嘟嘟莲",
"圣金虫",
"堇瓜",
"塞西莉亚",
"墩墩桃",
"夜泊石",
"天云草实",
"子探测单元",
"小灯草",
"帕蒂莎兰",
"幽光星星",
"幽灯蕈",
"悼灵花",
"慕风蘑菇",
"日落果",
"星螺",
"星银矿石",
"晶化骨髓",
"月莲",
"松果",
"松茸",
"柔灯铃",
"树王圣体菇",
"树莓",
"椰枣",
"水晶块",
"沉玉仙茗",
"沙脂蛹",
"泡泡桔",
"浪沫羽鳃",
"海灵芝",
"海草",
"海露花",
"清心",
"清水玉",
"湖光铃兰",
"澄晶石",
"灼灼彩菊",
"灼灼彩菊",
"珊瑚真珠",
"琉璃百合",
"琉璃袋",
"甜甜花",
"电气水晶",
"白萝卜",
"白铁块",
"石珀",
"神秘的肉",
"竹笋",
"紫晶块",
"绝云椒椒",
"绯樱绣球",
"肉龙掌",
"胡萝卜",
"苍晶螺",
"苦种",
"茉洁草",
"莲蓬",
"萃凝晶",
"落落莓",
"蒲公英",
"薄荷",
"蘑菇",
"虹彩蔷薇",
"血斛",
"赤念果",
"金鱼草",
"钩钩果",
"铁块",
"霓裳花",
"青蜜莓",
"须弥蔷薇",
"风车菊",
"香辛果",
"马尾",
"鬼兜虫",
"魔晶块",
"鸟蛋",
"鸣草" },
}
},
{
"动作", new ConditionDefinition
{
Subject = "动作",
Description = "路线中含有特殊动作时使用的队伍名称,优先级高于采集物配置。队伍名称是你在游戏中手动设置的队伍名称文字。队伍中,必须存在和动作相关的角色。程序会自动识别并使用对应的角色执行动作,具体见文档",
ObjectOptions = new List<string> { "纳西妲采集", "水元素采集", "雷元素采集", "风元素采集" },
}
},
{
"队伍中角色", new ConditionDefinition
{
Subject = "队伍中角色",
Description = "队伍中存在配置角色时候,该角色循环执行的策略。配置多个角色时优先级从左到右。具体策略产生的行为见文档。",
ObjectOptions = DefaultAutoFightConfig.CombatAvatarNames,
ResultOptions = AvatarResultList
}
},
};
public static List<string> PartySubjects { get; } = ["采集物", "动作"];
public static List<string> AvatarSubjects { get; } = ["队伍中角色"];
public static List<string> AvatarResultList { get; } = ["循环短E", "循环长E", "作为主要行走角色"];
public static Dictionary<string, string> ActionCnDic { get; } = new()
{
{ "nahida_collect", "纳西妲采集" },
{ "hydro_collect", "水元素采集" },
{ "electro_collect", "雷元素采集" },
{ "anemo_collect", "风元素采集" },
};
}