Files
bl/logic/service/fight/boss/NewSeIdx_148.go
昔念 994cbb44b8
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed
```
fix(fight): 修复技能实体属性访问问题

- 修改所有技能实体的ID、Power、CritRate、MustHit、Priority等属性访问方式
  从直接访问改为通过XML字段访问,确保数据一致性

- 更新多个boss技能效果处理逻辑中的属性引用路径

- 移除已废弃的effect/486文件

- 在New
2026-03-09 18:49:51 +08:00

50 lines
1.0 KiB
Go

package effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"github.com/alpacahq/alpacadecimal"
)
// 148.非连续技能无效
type NewSel148 struct {
NewSel0
sks map[int]info.SkillEntity
}
func (e *NewSel148) DamageDivEx(t *info.DamageZone) bool {
//魂印特性有不在场的情况,绑定时候将精灵和特性绑定
if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
return true
}
// 检查对手是否使用了指定攻击类型
if e.Ctx().SkillEntity == nil {
return true
}
if t.Type != info.DamageType.Red {
return true
}
if e.sks == nil {
e.sks = make(map[int]info.SkillEntity)
}
old, ok := e.sks[e.Ctx().SkillEntity.XML.ID]
if !ok {
e.sks[e.Ctx().SkillEntity.XML.ID] = *e.Ctx().SkillEntity
t.Damage = alpacadecimal.Zero
return true
}
if old.XML.Power == e.Ctx().SkillEntity.XML.Power {
t.Damage = alpacadecimal.Zero
return true
}
return true
}
func init() {
input.InitEffect(input.EffectType.NewSel, 148, &NewSel148{})
}