Files
bl/logic/service/fight/effect/effect_115.go
昔念 d360a85963 ```
refactor(fight): 优化战斗系统中的数值计算和逻辑处理

- 将GetProp方法返回类型从int改为alpacadecimal.Decimal,
避免精度丢失问题
- 修改战斗中速度比较逻辑,使用Decimal的Cmp方法进行比较
- 修正BattlePetEntity中属性计算公式,将乘法改为除法
- 调整伤害累加逻辑,修复SumDamage叠加问题
- 更新攻击力和防御力计算,直接使用Decimal数值
- 移除Effect178、Effect501等未使用的技能效果
- 重构回合处理逻辑,调整死亡判断时机和流程
- 添加TrueFirst字段用于正确跟踪实际先手方
```
2026-03-09 20:55:04 +08:00

41 lines
734 B
Go

package effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
"github.com/alpacahq/alpacadecimal"
)
/**
* n%几率附加速度的1/m伤害
*/
func init() {
input.InitEffect(input.EffectType.Skill, 115, &Effect115{
EffectNode: node.EffectNode{},
})
}
type Effect115 struct {
node.EffectNode
}
func (e *Effect115) Skill_Use() bool {
// 概率判定
ok, _, _ := e.Input.Player.Roll(int(e.Args()[0].IntPart()), 100)
if !ok {
return true
}
rr := e.Ctx().Our.GetProp(4).Div(alpacadecimal.NewFromInt(int64(e.SideEffectArgs[1])))
e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed,
Damage: rr,
})
return true
}