package effect import ( "blazing/logic/service/fight/action" "blazing/logic/service/fight/info" "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" "github.com/barkimedes/go-deepcopy" ) // Effect 457: 复制对手释放的技能(组队对战时无效) type Effect457 struct { node.EffectNode org *info.SkillEntity reid int } 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 { originalSkill, _ := deepcopy.Anything(sattack.SkillEntity) //备份技能 originalSkill.(*info.SkillEntity).Accuracy = sattack.SkillEntity.Accuracy e.reid = sattack.SkillEntity.XML.ID fattack.SkillEntity = originalSkill.(*info.SkillEntity) } else { fattack = nil } } else { 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 } } return true } func (e *Effect457) TurnEnd() { for _, v := range e.Ctx().Our.CurrentPet.Skills { if v.XML.ID == e.reid { v = e.org } } } func init() { input.InitEffect(input.EffectType.Skill, 457, &Effect457{}) }