Files
bl/logic/service/fight/effect/470.go
xinian faad50b1df
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
feat: 新增战斗技能效果并修复初始化注册
2026-03-13 16:05:43 +08:00

39 lines
964 B
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 effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
)
// 470 - n回合内若自身攻击技能命中则m%令对手p
type Effect470 struct {
node.EffectNode
}
func (e *Effect470) Skill_Use_ex() bool {
if e.Ctx().SkillEntity != nil && e.Ctx().SkillEntity.Category() != info.Category.STATUS {
chance := e.Args()[1].IntPart() // m%
success, _, _ := e.Input.Player.Roll(int(chance), 100)
if success {
effectType := int(e.Args()[2].IntPart()) // p类型异常状态
statusEffect := e.Ctx().Our.InitEffect(input.EffectType.Status, effectType)
if statusEffect != nil {
e.Ctx().Opp.AddEffect(e.Ctx().Our, statusEffect)
}
}
}
return true
}
func (e *Effect470) SetArgs(t *input.Input, a ...int) {
e.EffectNode.SetArgs(t, a...)
e.EffectNode.Duration(a[0]) // 持续n回合
}
func init() {
input.InitEffect(input.EffectType.Skill, 470, &Effect470{})
}