本次EEE新增的事件链,包括有以下功能:
1、事件的增加;
2、事件的跳转;
3、事件的删除;
4、事件链的总览视图。
————————
在正式介绍【Chain 链】之前,先给大家放一张图,先对事件链【Chain 链】有个概念:

每个事件链【Chain 链】都至少拥有一个【Event 事件】,而每个【Event 事件】都至少拥有一个【Option 选项】。
图中,紫色代表【Chain 链】与根事件(第一个事件)相绑定。
蓝色部分代表【Event 事件】,每个事件都有自己独一无二的ID号。
绿色部分代表【Option 选项】,一个事件里的选项是互斥的,玩家只能选择其中一个选项。
橙色部分代表【Effect 效果】,也就是玩家在游戏中经常能看到的,对游戏中角色产生各种影响的东西。
红色部分代表事件触发过程中的一些特殊触发时机,比如图中的【After】,它的含义是,无论玩家选择堂堂正正地决斗还是偷袭,最后都会触发【事件0003:决斗结果】。
由以上这些【Event 事件】、【Option 选项】、【Effect 效果】等构成的复杂事件集合,就是【Chain 链】。
——————
很好,现在我们来介绍EEE有关事件链的几个功能:
1、事件的增加;
用户可以在【Option 选项】以及【After】的编辑框中的“New”按钮新建【Event 事件】,新建的事件会自动与前一事件建立链接。

2、事件的跳转
用户可以通过左侧的后退按钮,返回上一事件。如果当前是根事件,则会返回【Chain 链】视图。
也可以通过【After】与【Option 选项】编辑框内的【Jump】跳转按钮跳转至后续事件。如果当前位置有复数可跳转事件,则会有弹出窗让用户进行确认。

3、事件的删除;

如果删除红框内的【事件0001】:开始决斗,除了【事件0001:开始决斗】被删除之外,【事件0003:决斗结果】也会被一并删除。
同样的,如果删除【根事件0000】的【选项1:决斗】,也会删除【事件0001:开始决斗】与【事件0003:决斗结果】。
如果删除的是根事件,那么整个【Chain 链】都会被删除。

4、事件的链视图
当EEE具备增加与删除事件的功能之后,便可以迅速编织出一张事件链出来。其形式十分接近PPT。
但当事件链的规模上升到一定程度之后,就需要一个总览的视角去管理事件链中的事件。
我这边借助PYQT5自带的树控件完成了这一功能,虽然还有很多不足,层级显示不是那么的清晰,但目前只能先凑活着用一下了。

(1)查看功能
事件链的总览视图在事件链界面,可通过顶部导航栏,或者根事件后退按钮抵达。
可以看到,事件链由根事件为起始,下面有对应的事件选项和After槽位,而每个槽位下面还有后续可触发的事件。
(2)跳转功能
双击拥有事件ID的选项,就能直接跳转到对应的事件编辑页面。
(3)拖拽功能
拥有事件ID的选项,可以被拖拽并放置到没有事件ID的槽位点上。
可以快速调整事件之间的链接关系,也可以通用调整后续的事件的位置,避免删除事件时被波及到。
