Files
bl/logic/service/fight/boss/NewSeIdx_32.go
昔念 36f7aae476
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
```
refactor(fight): 统一技能使用方法命名规范

将多个战斗相关的结构体中的技能使用方法名从不一致的命名
(SkillUseed, OnSkill)统一改为Skill_Use,提高代码一致性。

同时优化了Effect3效果处理逻辑,简化了属性遍历方式,
并修复了先手控制逻辑中的EffectCache处理方式。

BREAKING CHANGE: 技能使用
2026-03-09 17:14:41 +08:00

47 lines
1.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package effect
import (
"blazing/logic/service/fight/info"
"blazing/logic/service/fight/input"
"github.com/gogf/gf/v2/util/grand"
)
// 32. 进攻类技能有n%几率秒杀对方;a1: n 千分比)
// TODO: 实现进攻类技能有n%几率秒杀对方;a1: n 千分比)的核心逻辑
type NewSel32 struct {
NewSel0
}
func (e *NewSel32) Skill_Use() bool {
if e.ID().GetCatchTime() != e.Ctx().Our.CurrentPet.Info.CatchTime {
return true
}
if e.Ctx().SkillEntity == nil {
return true
}
if e.Ctx().SkillEntity.Category() == info.Category.STATUS {
return true
}
if e.Ctx().SkillEntity.AttackTime == 0 {
return true
}
if !e.Ctx().SkillEntity.Hit {
return true
}
success := grand.Meet(int(e.Args()[0].IntPart()), 1000) // _, _ := e.Input.Player.Roll(int(e.Args()[0].IntPart()), 1000)
if !success {
return true
}
e.Ctx().Opp.Damage(e.Ctx().Our, &info.DamageZone{
Type: info.DamageType.Fixed,
Damage: e.Ctx().Opp.CurrentPet.GetHP(),
})
return true
}
func init() {
input.InitEffect(input.EffectType.NewSel, 32, &NewSel32{})
}