31 lines
756 B
Go
31 lines
756 B
Go
package effect
|
||
|
||
import (
|
||
"blazing/logic/service/fight/info"
|
||
"blazing/logic/service/fight/input"
|
||
|
||
"github.com/alpacahq/alpacadecimal"
|
||
)
|
||
|
||
// Effect 576: {0}回合内免疫低于{1}的攻击伤害
|
||
type Effect576 struct {
|
||
RoundEffectArg0Base
|
||
}
|
||
|
||
// DamageFloor 在计算伤害时触发,减少低于阈值的伤害至0
|
||
func (d *Effect576) DamageFloor(zone *info.DamageZone) bool {
|
||
// 如果伤害类型是减少体力的类型,并且伤害值低于阈值,则将伤害设为0
|
||
if (zone.Type == info.DamageType.Red || zone.Type == info.DamageType.Percent) &&
|
||
zone.Damage.Cmp(d.Args()[1]) < 0 {
|
||
zone.Damage = alpacadecimal.Zero
|
||
}
|
||
|
||
return true
|
||
}
|
||
|
||
// SetArgs 设置参数
|
||
|
||
func init() {
|
||
input.InitEffect(input.EffectType.Skill, 576, &Effect576{})
|
||
}
|