把interface的部分option隐藏
我在一个任务里塞了十几个选项用来处理各种情况,这样会显得特别长,如果选项能有个隐藏功能,我没设置某个选项就不显示后续选项就好了,这样能节省不少设置时间,尤其是使用MaaPiCli,必须全选完才能用
可以加个 default_case
好像说的是下面的情况:
task: { “task1”: { "name": "", "entry": "", "option": ["op1","op2","op3","op4"] } }, "option": { "op1": { "cases": { "name": "", "pipeline_override": {} } }, "op2": { "cases": { "name": "", "pipeline_override": {} } }, "op3": { "cases": { "name": "", "pipeline_override": {} } }, "op4": { "cases": { "name": "", "pipeline_override": {} } }, }
假如设置了op1就不管op4,设置了op2就不管op3、op4这类的
对应m9a的话,就像
"task": {
{
"name": "局外演绎:黄昏的音序",
"entry": "SeriesOfDusks",
"option": [
"触媒选择(非速刷)",
"速刷第一层(需将“刻画生长-指引之歌”点满)"
]
}
},
"option": {
"触媒选择(非速刷)": {
"cases": [
{
"name": "术式神灯",
"pipeline_override": {}
},
{
"name": "石榴心血",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_PomegranateHeartBleeding.png"
}
}
},
{
"name": "精神视界",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_SpiritualVision.png"
}
}
},
{
"name": "仪式匕首",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_RitualDagger.png"
}
}
},
{
"name": "曳变灵摆",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_DragChangePendulum.png"
}
}
},
{
"name": "“一”的诫令",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_Commandment.png"
}
}
},
{
"name": "“全”的振歌",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_Song.png"
}
}
},
{
"name": "点金之石",
"pipeline_override": {
"SODStart_MediaSelect": {
"template": "OutsideDeduction/SODStart_Media_MidasStone.png"
}
}
}
]
},
"速刷第一层(需将“刻画生长-指引之歌”点满)": {
"cases": [
{
"name": "No",
"pipeline_override": {}
},
{
"name": "Yes",
"pipeline_override": {
"SOD_UNOPENED": {
"next": "ODR_Start"
}
}
}
]
}
分成速刷和非速刷,如果选择速刷就不显示"触媒选择(非速刷)"这个选项
我是考虑到目前通用gui(比如mfa)只支持winx64设备,别的设备还是得用maapicil的,而且就算是用mfa,一个任务设置十几到二十几的选项也很麻烦,虽然不用都设置了,但是显得很长,如果要设置底下的也要来回翻,有些选项对于选择不同选项的人来说是完全没必要设置的,比如一个关卡有五个战斗节点,我只想打第一个节点就只显示第一个节点的设置,把后续节点的设置全部隐藏更好,只有五个节点全部打的人才显示全部的选项
本质需要一个逻辑语句的eval(
这里感觉核心问题是, 目前每个task的所有option是平等的, 而非递进的. 如果要比较好的实现这个的话, 逻辑上应该是让option之间有拓扑序, 然后再是让每个option可以添加前置条件.
另外, 还需要确认:
-
被限制条件禁用的选项, 是否要生效default_case/case[0]的override?
-
关于拓扑序, 要么是直接在interface中显式定义, 但这个不太好由json呈现; 要么是ui负责从条件中生成, 这个就需要各个ui都实现一套检查;
-
每个任务中, option数组的顺序是否还重要? 目前ui的实现应该都是会确保按照顺序进行pipeline合并, 但是如果添加了额外的拓扑序后, 可能会和option数组的顺序冲突, 这里需要确定是视为报错, 按数组顺序. 或者, 也可以选择强化选项顺序, 变成全序(比如直接让option对象变成数组), 然后按选项顺序.
@MistEO 玛丽看看
@SweetSmellFox 屑佬也看看呢