feat(battle): 添加新的印记处理逻辑
- 在 NodeManager 中增加了 OnBeforeAddMark 和 OnAnyMarkAdded 的执行顺序 - 在 Effect 接口中添加了 OnBeforeAddMark 和 OnAnyMarkAdded 两个
This commit is contained in:
@@ -31,10 +31,20 @@ func (c *NodeManager) AddEffect(e Effect) {
|
||||
// 触发执行
|
||||
func (c *NodeManager) Trigger() {
|
||||
|
||||
turnStartResults := c.Exec(func(e Effect) bool {
|
||||
c.Exec(func(e Effect) bool {
|
||||
return e.OnTurnStart()
|
||||
}) //回合开始
|
||||
|
||||
//假如说这里需要能力提升
|
||||
c.Exec(func(e Effect) bool {
|
||||
return e.OnBeforeAddMark()
|
||||
})
|
||||
//添加印记前的效果如果有任何一个false,说明组织了添加效果
|
||||
//这里能力提升
|
||||
c.Exec(func(e Effect) bool {
|
||||
return e.OnAnyMarkAdded()
|
||||
})
|
||||
|
||||
// var candidates []*Effect
|
||||
// for _, eff := range c.Effects {
|
||||
// if eff.Trigger == trigger {
|
||||
|
||||
@@ -13,7 +13,8 @@ type Effect interface {
|
||||
|
||||
Stack(int) int
|
||||
MaxStack() int
|
||||
|
||||
OnBeforeAddMark() bool
|
||||
OnAnyMarkAdded() bool
|
||||
Duration(int) int
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user