- 移除未使用的战斗模式枚举和相关代码 - 更新 BurnEffect 结构,增加生命周期管理 - 删除多余的 Skill 结构和 Effect 相关代码 - 调整 NoteReadyToFightInfo 结构的位置
37 lines
757 B
Go
37 lines
757 B
Go
package base
|
|
|
|
// 生命周期管理器
|
|
type LifeCycle struct {
|
|
remainTurn int // 剩余回合(-1 表示不限回合)
|
|
remainCount int // 剩余次数(-1 表示不限次数)
|
|
}
|
|
|
|
// 创建一个回合持续类效果
|
|
func NewTurnLife(turns int) LifeCycle {
|
|
return LifeCycle{remainTurn: turns, remainCount: -1}
|
|
}
|
|
|
|
// 创建一个次数持续类效果
|
|
func NewCountLife(count int) LifeCycle {
|
|
return LifeCycle{remainTurn: -1, remainCount: count}
|
|
}
|
|
|
|
// 每回合 tick
|
|
func (lc *LifeCycle) Tick() {
|
|
if lc.remainTurn > 0 {
|
|
lc.remainTurn--
|
|
}
|
|
}
|
|
|
|
// 使用一次
|
|
func (lc *LifeCycle) Use() {
|
|
if lc.remainCount > 0 {
|
|
lc.remainCount--
|
|
}
|
|
}
|
|
|
|
// 是否还活跃
|
|
func (lc *LifeCycle) Alive() bool {
|
|
return (lc.remainTurn != 0) && (lc.remainCount != 0)
|
|
}
|