feat(effect): 移除能力复制操作类型参数并优化属性复制逻辑 移除了 info.AbilityOpType.COPY 操作类型的依赖,简化了能力属性复制的实现方式。 现在直接将对手的正值属性复制到己方,无需指定操作类型参数。同时修正了数组遍历方式, 使用切片语法确保正确的遍历行为。 BREAKING CHANGE: 能力复制相关方法的参数签名发生变化,移除了操作类型参数。 ```
This commit is contained in:
@@ -2,7 +2,6 @@ package effect
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"blazing/logic/service/fight/action"
|
"blazing/logic/service/fight/action"
|
||||||
"blazing/logic/service/fight/info"
|
|
||||||
"blazing/logic/service/fight/input"
|
"blazing/logic/service/fight/input"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -18,12 +17,13 @@ func (e *NewSel70) TurnStart(fattack *action.SelectSkillAction, sattack *action.
|
|||||||
}
|
}
|
||||||
// 将对手的能力提升同时加给自己
|
// 将对手的能力提升同时加给自己
|
||||||
|
|
||||||
for i := 0; i < 6; i++ {
|
for i, v := range e.Ctx().Opp.Prop[:] {
|
||||||
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), 1, info.AbilityOpType.COPY)
|
if v > 0 {
|
||||||
|
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|||||||
32
logic/service/fight/effect/143.go
Normal file
32
logic/service/fight/effect/143.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package effect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"blazing/logic/service/fight/input"
|
||||||
|
"blazing/logic/service/fight/node"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Effect143 struct {
|
||||||
|
node.EffectNode
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// 执行时逻辑
|
||||||
|
// ----------------------
|
||||||
|
func (e *Effect143) OnSkill() bool {
|
||||||
|
|
||||||
|
for i, v := range e.Ctx().Opp.Prop[:] {
|
||||||
|
if v > 0 {
|
||||||
|
e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), -2*v)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// 注册所有效果
|
||||||
|
// ----------------------
|
||||||
|
func init() {
|
||||||
|
input.InitEffect(input.EffectType.Skill, 143, &Effect143{})
|
||||||
|
}
|
||||||
32
logic/service/fight/effect/63.go
Normal file
32
logic/service/fight/effect/63.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package effect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"blazing/logic/service/fight/input"
|
||||||
|
"blazing/logic/service/fight/node"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Effect63 struct {
|
||||||
|
node.EffectNode
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// 执行时逻辑
|
||||||
|
// ----------------------
|
||||||
|
func (e *Effect63) OnSkill() bool {
|
||||||
|
|
||||||
|
for i, v := range e.Ctx().Our.Prop[:] {
|
||||||
|
if v < 0 {
|
||||||
|
e.Ctx().Opp.SetProp(e.Ctx().Our, int8(i), v)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// 注册所有效果
|
||||||
|
// ----------------------
|
||||||
|
func init() {
|
||||||
|
input.InitEffect(input.EffectType.Skill, 63, &Effect63{})
|
||||||
|
}
|
||||||
32
logic/service/fight/effect/85.go
Normal file
32
logic/service/fight/effect/85.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package effect
|
||||||
|
|
||||||
|
import (
|
||||||
|
"blazing/logic/service/fight/input"
|
||||||
|
"blazing/logic/service/fight/node"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Effect85 struct {
|
||||||
|
node.EffectNode
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// 执行时逻辑
|
||||||
|
// ----------------------
|
||||||
|
func (e *Effect85) OnSkill() bool {
|
||||||
|
|
||||||
|
for i, v := range e.Ctx().Opp.Prop[:] {
|
||||||
|
if v > 0 {
|
||||||
|
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// 注册所有效果
|
||||||
|
// ----------------------
|
||||||
|
func init() {
|
||||||
|
input.InitEffect(input.EffectType.Skill, 85, &Effect85{})
|
||||||
|
}
|
||||||
@@ -180,9 +180,11 @@ func (e *EffectDefeatTrigger) triggerNextEnemyStatusOnDefeat(at model.AttackValu
|
|||||||
// triggerTransferBoostsOnDefeat:击败对手后,复制其所有能力提升效果到自身(对应Effect421)
|
// triggerTransferBoostsOnDefeat:击败对手后,复制其所有能力提升效果到自身(对应Effect421)
|
||||||
func (e *EffectDefeatTrigger) triggerTransferBoostsOnDefeat(at model.AttackValue) {
|
func (e *EffectDefeatTrigger) triggerTransferBoostsOnDefeat(at model.AttackValue) {
|
||||||
// 复制被击败对手的能力提升
|
// 复制被击败对手的能力提升
|
||||||
for i, v := range at.Prop {
|
|
||||||
|
for i, v := range at.Prop[:] {
|
||||||
if v > 0 {
|
if v > 0 {
|
||||||
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v, info.AbilityOpType.COPY)
|
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package effect
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"blazing/logic/service/fight/action"
|
"blazing/logic/service/fight/action"
|
||||||
"blazing/logic/service/fight/info"
|
|
||||||
"blazing/logic/service/fight/input"
|
"blazing/logic/service/fight/input"
|
||||||
"blazing/logic/service/fight/node"
|
"blazing/logic/service/fight/node"
|
||||||
)
|
)
|
||||||
@@ -34,9 +33,9 @@ func (e *Effect91) SetArgs(t *input.Input, a ...int) {
|
|||||||
}
|
}
|
||||||
func (e *Effect91) TurnStart(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) {
|
func (e *Effect91) TurnStart(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) {
|
||||||
|
|
||||||
for i, v := range e.Ctx().Opp.Prop {
|
for i, v := range e.Ctx().Opp.Prop[:] {
|
||||||
|
|
||||||
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v, info.AbilityOpType.COPY)
|
e.Ctx().Our.SetProp(e.Ctx().Our, int8(i), v)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package effect
|
package effect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"blazing/logic/service/fight/info"
|
|
||||||
"blazing/logic/service/fight/input"
|
"blazing/logic/service/fight/input"
|
||||||
"blazing/logic/service/fight/node"
|
"blazing/logic/service/fight/node"
|
||||||
)
|
)
|
||||||
@@ -35,7 +34,7 @@ func (e *Effect3) OnSkill() bool {
|
|||||||
// ----------------------
|
// ----------------------
|
||||||
// 工厂函数
|
// 工厂函数
|
||||||
// ----------------------
|
// ----------------------
|
||||||
func newEffect3(reverse bool, level int) *Effect3 {
|
func newEffect3(reverse bool, level int8) *Effect3 {
|
||||||
return &Effect3{
|
return &Effect3{
|
||||||
Reverse: reverse,
|
Reverse: reverse,
|
||||||
Level: level,
|
Level: level,
|
||||||
@@ -50,16 +49,15 @@ func init() {
|
|||||||
id int
|
id int
|
||||||
reverse bool
|
reverse bool
|
||||||
level int8
|
level int8
|
||||||
opType info.EnumAbilityOpType
|
|
||||||
}{
|
}{
|
||||||
{3, false, -1, info.AbilityOpType.RESET}, // 解除自身能力下降状态
|
{3, false, 0}, // 解除自身能力下降状态
|
||||||
{33, true, 1, info.AbilityOpType.RESET}, // 消除对手能力提升状态
|
{33, true, 0}, // 消除对手能力提升状态
|
||||||
{63, false, 0, info.AbilityOpType.BounceWeaken}, // 将能力下降反馈给对手
|
// {63, false, 0, info.AbilityOpType.BounceWeaken}, // 将能力下降反馈给对手
|
||||||
{85, false, -1, info.AbilityOpType.StealStrengthen}, // 将对手提升效果转移到自己
|
// {85, false, -1, info.AbilityOpType.StealStrengthen}, // 将对手提升效果转移到自己
|
||||||
{143, true, 1, info.AbilityOpType.Reverse}, // 反转对手能力提升为下降
|
// {143, true, 1, info.AbilityOpType.Reverse}, // 反转对手能力提升为下降
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, e := range effects {
|
for _, e := range effects {
|
||||||
input.InitEffect(input.EffectType.Skill, e.id, newEffect3(e.reverse, e.level, e.opType))
|
input.InitEffect(input.EffectType.Skill, e.id, newEffect3(e.reverse, e.level))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user