diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index 5dc681ad..cc339f71 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -131,6 +131,18 @@ func (f *FightC) copySkill(action *action.SelectSkillAction) *info.SkillEntity { return originalSkill.(*info.SkillEntity) } +func (f *FightC) resetActionSkillRuntime(action *action.SelectSkillAction) { + if action == nil || action.SkillEntity == nil { + return + } + + reset := info.CreateSkill(action.SkillEntity.Info, action.SkillEntity.Pet) + if reset == nil { + return + } + *action.SkillEntity = *reset +} + func (f *FightC) getSkillParticipants(skillAction *action.SelectSkillAction) (*input.Input, *input.Input) { if skillAction == nil { return nil, nil @@ -350,6 +362,7 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) } attacker, defender = f.getSkillParticipants(firstAttack) originalSkill = f.copySkill(firstAttack) + f.resetActionSkillRuntime(firstAttack) //先手阶段,先修复后手效果 f.Second.RecoverEffect() } else { @@ -363,6 +376,7 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) } attacker, defender = f.getSkillParticipants(secondAttack) originalSkill = f.copySkill(secondAttack) + f.resetActionSkillRuntime(secondAttack) //取消后手历史效果 f.Second.ReactvieEffect() }