package effect import ( "blazing/logic/service/fight/action" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) // Effect 178: 造成伤害的1/{0}回复自身体力,若属性相同则造成伤害的1/{1}回复自身体力 type Effect178 struct { node.EffectNode } func (e *Effect178) Skill_Use_ex() bool { damageDone := e.Ctx().Our.SumDamage var healAmount alpacadecimal.Decimal if e.Ctx().Our.CurrentPet.Type == e.Ctx().Opp.CurrentPet.Type { // 属性相同,1/m healAmount = damageDone.Div(e.Args()[1]) } else { // 属性不同,1/n healAmount = damageDone.Div(e.Args()[0]) } e.Ctx().Our.Heal(e.Ctx().Our, &action.SelectSkillAction{}, healAmount) return true } func init() { input.InitEffect(input.EffectType.Skill, 178, &Effect178{}) }