-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
需求
为事件页添加额外的出现条件
以前一条或多条的注释符合正则表达式, 则执行对应的检测函数
可以通过添加正则表达式和检测函数来拓展和兼容其他插件
可以通过注释和多个页面来扁平化一些事件逻辑, 类似于switch语句的作用
技术细节
记录正则pattern和对应检测函数handler的数组
能注册正则和检测函数的方法PageSwitch.registerCase
读取事件页面头部一条或多条注释并匹配正则的方法checkCases
重写Game_Event.prototype.meetsConditions将 checkCases 注入
拓展
对于GameSelfData, 可以判断键值是否存在, 值是否相等, 或者算数比较等等
对于Storyline, 可以判断Story的状态, 当前的Stage, Progress的进度或者Checkpoint的状态等等
例子
window.PageSwitch.registerCase(
'SelfDataIs',
/CASE: SelfData ([^\s]+) is ([^\s]+)/,
(event, key, value) =>
$gameSelfData.value([event._mapId, event._eventId, key]) === value,
);注释: 如果不为真则跳过此事件页
CASE: SelfData name is "HeartCase"
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation