package effect import ( "blazing/logic/service/fight/action" "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // Effect 194: 造成伤害的1/{0}回复自身体力,若对手{1},则造成伤害的1/{2}回复自身体力 type Effect194 struct { node.EffectNode } func (e *Effect194) Skill_Use() bool { damageDone := e.Ctx().Our.SumDamage var healAmount alpacadecimal.Decimal if e.Ctx().Opp.StatEffect_Exist(info.EnumPetStatus(e.Args()[1].IntPart())) { // 假设有检查异常状态的方法 healAmount = damageDone.Div(e.Args()[2]) // 1/m } else { healAmount = damageDone.Div(e.Args()[0]) // 1/n } e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) return true } func init() { input.InitEffect(input.EffectType.Skill, 194, &Effect194{}) }