Skip to content

PageSwitch 需求和接口设计 #5

@heartcase

Description

@heartcase

需求

为事件页添加额外的出现条件
以前一条或多条的注释符合正则表达式, 则执行对应的检测函数
可以通过添加正则表达式和检测函数来拓展和兼容其他插件

可以通过注释和多个页面来扁平化一些事件逻辑, 类似于switch语句的作用

技术细节

记录正则pattern和对应检测函数handler的数组

能注册正则和检测函数的方法PageSwitch.registerCase

读取事件页面头部一条或多条注释并匹配正则的方法checkCases

重写Game_Event.prototype.meetsConditionscheckCases 注入

拓展

对于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"

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions