package effect import ( "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/alpacahq/alpacadecimal" ) /** * ID: 183 标签: [免伤] 描述: {0}回合内免疫并反弹{1}伤害。 关联技能: [21563, 21567, 23755] 关联精灵: 1288,1289,1290,1944,1945,2637 */ func init() { input.InitEffect(input.EffectType.Skill, 183, &Effect183{}) } type Effect183 struct { node.EffectNode } func (e *Effect183) SetArgs(t *input.Input, a ...int) { e.EffectNode.SetArgs(t, a...) e.EffectNode.Duration(e.EffectNode.SideEffectArgs[0]) } func (e *Effect183) DamageLockEx(t *info.DamageZone) bool { if t.Type != info.DamageType.Red { return true } if t.Damage.Cmp(e.Args()[1]) >= 0 { t.Damage = t.Damage.Sub(e.Args()[1]) e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ Damage: e.Args()[1], Type: info.DamageType.Fixed, }) } else { e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{ Damage: t.Damage, Type: info.DamageType.Fixed, }) t.Damage = alpacadecimal.Zero } return true }