diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index 7ec0f1e2..2dda4502 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -219,7 +219,9 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) f.TrueFirst = attacker } else { + f.TrueFirst = defender + } } @@ -227,6 +229,13 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) attacker.RecoverEffect() currentSkill = nil + if i == 0 { + //反转先后手 + originalSkill = f.copySkill(secondAttack) + f.Second.ReactvieEffect() + currentSkill = originalSkill + attacker, defender = defender, attacker + } } else { f.processSkillAttack(attacker, defender, currentSkill) currentSkill = originalSkill //还原技能 @@ -276,11 +285,18 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction) }) } - if defender.CurrentPet.Info.Hp == 0 { + if defender.CurrentPet.Info.Hp <= 0 { f.TURNOVER(defender) break + } else { + //技能使用后 + defender.Exec(func(effect input.Effect) bool { //技能使用后的我方效果 + effect.Ctx().SkillEntity = currentSkill + effect.Action_end_ex() + return true + }) } } diff --git a/logic/service/fight/input/interface.go b/logic/service/fight/input/interface.go index 6d5d7804..c12cc94a 100644 --- a/logic/service/fight/input/interface.go +++ b/logic/service/fight/input/interface.go @@ -38,6 +38,7 @@ type Effect interface { SkillUseed() bool //技能PP减少节点 ActionEndEx() bool Action_end() bool + Action_end_ex() bool //OnDefeat(opp *Input) bool // 精灵被击败时触发 // 首发其实就是切换的精灵为nil diff --git a/logic/service/fight/node/skill.go b/logic/service/fight/node/skill.go index 2e28a4cd..1ef026c8 100644 --- a/logic/service/fight/node/skill.go +++ b/logic/service/fight/node/skill.go @@ -19,6 +19,10 @@ func (e *EffectNode) SkillHit() bool { func (e *EffectNode) SkillHit_ex() bool { return true } +func (e *EffectNode) Action_end_ex() bool { + return true +} + func (e *EffectNode) CalculatePre() bool { return true }