feat: 新增战斗技能效果并修复初始化注册
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed

This commit is contained in:
xinian
2026-03-13 16:05:43 +08:00
committed by cnb
parent 0d44de2ea7
commit faad50b1df
8 changed files with 102 additions and 21 deletions

View File

@@ -36,6 +36,6 @@ func (e *Effect430) Skill_Use() bool {
}
func init() {
input.InitEffect(input.EffectType.Skill, 184, &Effect184{})
input.InitEffect(input.EffectType.Skill, 430, &Effect430{})
}

View File

@@ -1,14 +0,0 @@
package effect
import "blazing/logic/service/fight/node"
// 445 - 使用后在战斗结束时可以获得500赛尔豆每日上限5000
type Effect445 struct {
node.EffectNode
}
// func (e *Effect445) OnSkill() bool {
// // 这个效果需要在战斗结束后执行,暂时记录奖励
// e.Ctx().Our.EndReward = 500
// return true
// }

View File

@@ -0,0 +1,39 @@
package effect
import (
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
"github.com/gogf/gf/v2/util/grand"
)
// "id": 446,
// "argsNum": 0,
// "info": "随机自身3项属性+1"
// {
// "id": 626,
// "argsNum": 2,
// "info": "随机使自己{0}项能力+{1}"
// },
//
// 626 - 消除对手能力强化状态若消除状态成功则自身XX等级m
type Effect626 struct {
node.EffectNode
}
func (e *Effect626) Skill_Use() bool {
for i := 0; i < e.SideEffectArgs[0]; i++ {
e.Ctx().Our.SetProp(e.Ctx().Our, int8(grand.Intn(6)), int8(e.SideEffectArgs[1]))
}
return true
}
func init() {
input.InitEffect(input.EffectType.Skill, 626, &Effect626{})
t := &Effect626{}
t.SideEffectArgs = []int{3, 1}
input.InitEffect(input.EffectType.Skill, 446, t)
}

View File

@@ -33,6 +33,6 @@ func (e *Effect470) SetArgs(t *input.Input, a ...int) {
e.EffectNode.Duration(a[0]) // 持续n回合
}
func init() {
input.InitEffect(input.EffectType.Skill, 513, &Effect513{})
input.InitEffect(input.EffectType.Skill, 470, &Effect470{})
}

View File

@@ -38,5 +38,30 @@ func (e *Effect513) SkillHit() bool {
}
func init() {
input.InitEffect(input.EffectType.Skill, 513, &Effect513{})
input.InitEffect(input.EffectType.Skill, 544, &Effect544{})
}
type Effect544 struct {
node.EffectNode
}
func (e *Effect544) Skill_Use() bool {
if e.Ctx().SkillEntity == nil {
return true
}
stas := []info.EnumPetStatus{
info.PetStatus.Burned,
info.PetStatus.Poisoned,
info.PetStatus.Frozen,
}
for _, sta := range stas {
if e.Ctx().Our.StatEffect_Exist(sta) {
r := e.Ctx().Our.GetEffect(input.EffectType.Status, int(sta))
r.Alive(false)
}
}
return true
}

View File

@@ -102,7 +102,7 @@ func init() {
input.InitEffect(input.EffectType.Skill, 497, &Effect429{
ispower: true,
})
input.InitEffect(input.EffectType.Skill, 497, &Effect429{})
input.InitEffect(input.EffectType.Skill, 429, &Effect429{})
}
// 497 - 附加m点固定伤害每次使用额外附加n点最高k点遇到天敌时效果翻倍
@@ -150,6 +150,10 @@ func (e *Effect181) Skill_Use() bool {
return true
}
func init() {
input.InitEffect(input.EffectType.Skill, 441, &Effect441{})
}
// 441 - 每次攻击提升n%的致命几率最高提升m%
type Effect441 struct {
@@ -171,6 +175,10 @@ func (e *Effect441) ActionStart(a, b *action.SelectSkillAction) bool {
return true
}
func init() {
input.InitEffect(input.EffectType.Skill, 465, &Effect465{})
}
// 465 - m%令对手疲惫n回合每次使用几率提升x%最高y%
type Effect465 struct {

View File

@@ -1,9 +1,25 @@
package effect
import (
"blazing/logic/service/fight/input"
"blazing/logic/service/fight/node"
)
// 445 - 使用后在战斗结束时可以获得500赛尔豆每日上限5000
type Effect445 struct {
node.EffectNode
}
// func (e *Effect445) OnSkill() bool {
// // 这个效果需要在战斗结束后执行,暂时记录奖励
// e.Ctx().Our.EndReward = 500
// return true
// }
func init() {
input.InitEffect(input.EffectType.Skill, 445, &Effect445{})
}
// 201 - 组队时恢复己方1/n的体力
type Effect201 struct {
node.EffectNode
@@ -25,5 +41,9 @@ type Effect201 struct {
// }
// }
// return true
// }
// return true
// }
func init() {
input.InitEffect(input.EffectType.Skill, 201, &Effect201{})
}

View File

@@ -109,7 +109,10 @@ func (e *EffectNode) Duration(t ...int) int {
// 设置参数,加上设置输入源
func (e *EffectNode) SetArgs(t *input.Input, a ...int) {
e.Input = t
e.SideEffectArgs = a
if len(a)>0 {
e.SideEffectArgs = a
}
}
func (e *EffectNode) Args() []alpacadecimal.Decimal {