Files
bl/logic/service/fight/effect/effect_62.go
xinian 9c6f3988de
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
refactor: 重构 CurrentPet 为 CurPet
2026-04-04 04:34:43 +08:00

68 lines
1.5 KiB
Go

package effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
"github.com/alpacahq/alpacadecimal"
)
// Effect 62: {0}回合后若对方没有将自己击败,则对方死亡
type Effect62 struct {
node.EffectNode
}
type Effect62_sub struct {
node.EffectNode
duy int
//bindpet *info.BattlePetEntity
//bind *input.Input
// Hide bool // 是否隐藏 正常是命中就可用,镇魂歌是回合数到才可用
}
func (e *Effect62_sub) TurnEnd() {
e.duy--
}
// 这个实际上在对方回合执行的
func (e *Effect62_sub) OnSkill() bool {
//fmt.Println("镇魂歌剩余回合", e.duy)
//defer e.Alive(false)
if e.duy <= 0 { //说明对方没有切换精灵
//直接扣除所有血量OnSkill
//相当于对方给自己的伤害
e.Ctx().Our.Damage(e.Ctx().Opp, &info.DamageZone{
Type: info.DamageType.Fixed,
Damage: alpacadecimal.NewFromInt(int64(e.Ctx().Our.CurPet[0].Info.MaxHp)),
})
e.Alive(false)
}
return true
}
func init() {
t := &Effect62{}
input.InitEffect(input.EffectType.Skill, 62, t)
}
// 魂印开局添加,然后切精灵不消失
func (e *Effect62) OnSkill() bool {
//e.Duration(1) //必须保持到下一回合,这样才会被复制
// e.opp = ctx.Input
ee := &Effect62_sub{
// bindpet: ctx.CurPet[0],
// bind: ctx.Input,
}
ee.duy = e.EffectNode.SideEffectArgs[0]
addSubEffect(e.Ctx().Our, e.Ctx().Opp, &e.EffectNode, ee, -1)
return true
}