Files
bl/logic/service/fight/battle/node/node.go

65 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package node
import (
"context"
)
type Effect interface {
OnBattleStart() func()
OnBattleEnd() func()
OnActive() func()
OnSwitch() func()
OnTurnStart() func()
Duration(int) int
ID() int
Stack(int) int
MaxStack() int
}
// 检查,激活,延后
// /基础节点
type Node struct {
//Turn int // 当前回合数 ,回合数其实从战斗的上下文中获取
//本质上ctx还要传入战斗双方数据来判断是否是本精灵切换
ctx context.Context //节点上下文
duration int // 持续回合/次0 = 即时生效,>0 = 回合数 ,负数是永久)
stacks int // 当前层数
maxStack int // 最大叠加层数 ,正常都是不允许叠加的,除了衰弱特殊效果
//LifeType EnumLifeType //回合效果 是否可持续 继承到下一直精灵 ,这个用重写事件来实现
// Parent string // 上下文来源(比如 "Skill"、"Buff"、"Passive"
// Trigger node.EnumEffectTrigger // 当前触发的节点
// Container *EffectContainer // 效果容器(通常挂在 Actor 身上)
// Effect *Effect // 当前正在执行的 Effect
// Available bool // 是否可用
// Success bool // 是否执行成功
// Done bool // 是否中止后续执行
}
func (this *Node) ID() int {
return 0
}
func (this *Node) Stack(t int) int {
if t != 0 {
this.stacks = t
}
return this.stacks
}
func (this *Node) MaxStack() int {
return this.maxStack
}
func (this *Node) Duration(t int) int {
return this.duration
}