2026-03-10 00:34:28 +08:00
|
|
|
package effect
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"blazing/logic/service/fight/action"
|
2026-03-10 09:17:26 +08:00
|
|
|
"blazing/logic/service/fight/info"
|
2026-03-10 00:34:28 +08:00
|
|
|
"blazing/logic/service/fight/input"
|
|
|
|
|
"blazing/logic/service/fight/node"
|
2026-03-10 09:17:26 +08:00
|
|
|
|
|
|
|
|
"github.com/barkimedes/go-deepcopy"
|
2026-03-10 00:34:28 +08:00
|
|
|
)
|
|
|
|
|
|
2026-03-28 21:57:22 +08:00
|
|
|
// Effect 457: 复制对手释放的技能(组队对战时无效)
|
2026-03-10 00:34:28 +08:00
|
|
|
type Effect457 struct {
|
|
|
|
|
node.EffectNode
|
2026-03-10 09:17:26 +08:00
|
|
|
org *info.SkillEntity
|
|
|
|
|
reid int
|
2026-03-10 00:34:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (e *Effect457) ComparePre(fattack *action.SelectSkillAction, sattack *action.SelectSkillAction) bool {
|
|
|
|
|
|
|
|
|
|
if fattack == nil {
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
//先手是自己
|
|
|
|
|
if fattack.PlayerID == e.Ctx().Our.UserID {
|
|
|
|
|
if sattack != nil {
|
|
|
|
|
|
2026-03-10 09:17:26 +08:00
|
|
|
originalSkill, _ := deepcopy.Anything(sattack.SkillEntity) //备份技能
|
|
|
|
|
originalSkill.(*info.SkillEntity).Accuracy = sattack.SkillEntity.Accuracy
|
|
|
|
|
e.reid = sattack.SkillEntity.XML.ID
|
|
|
|
|
fattack.SkillEntity = originalSkill.(*info.SkillEntity)
|
2026-03-10 00:34:28 +08:00
|
|
|
} else {
|
|
|
|
|
fattack = nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
2026-03-10 09:17:26 +08:00
|
|
|
if fattack != nil {
|
|
|
|
|
e.org = sattack.SkillEntity
|
|
|
|
|
originalSkill, _ := deepcopy.Anything(fattack.SkillEntity) //备份技能
|
|
|
|
|
originalSkill.(*info.SkillEntity).Accuracy = fattack.SkillEntity.Accuracy
|
|
|
|
|
e.reid = fattack.SkillEntity.XML.ID
|
|
|
|
|
sattack.SkillEntity = originalSkill.(*info.SkillEntity)
|
|
|
|
|
} else {
|
|
|
|
|
sattack = nil
|
|
|
|
|
}
|
2026-03-10 00:34:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true
|
|
|
|
|
}
|
2026-03-10 09:17:26 +08:00
|
|
|
|
|
|
|
|
func (e *Effect457) TurnEnd() {
|
|
|
|
|
|
|
|
|
|
for _, v := range e.Ctx().Our.CurrentPet.Skills {
|
|
|
|
|
if v.XML.ID == e.reid {
|
|
|
|
|
v = e.org
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2026-03-10 00:34:28 +08:00
|
|
|
func init() {
|
|
|
|
|
input.InitEffect(input.EffectType.Skill, 457, &Effect457{})
|
|
|
|
|
|
|
|
|
|
}
|