From 5627458311cf882f60fa486f3366d2c0a30aae8a Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Tue, 30 Sep 2025 10:40:36 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=88=98=E6=96=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/service/fight/fightc.go | 28 ++++++++++++---------------- logic/service/fight/input/fight.go | 4 ++-- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/logic/service/fight/fightc.go b/logic/service/fight/fightc.go index 26645e56e..67dad4ae3 100644 --- a/logic/service/fight/fightc.go +++ b/logic/service/fight/fightc.go @@ -342,8 +342,7 @@ func (f *FightC) battleLoop() { switch { case faction.ItemID >= 30001 && faction.ItemID <= 300010: //胶囊 - //todo 将血量和技能pp传回enterturn - //tt, ok := f.Our.Player.(*player.Player) + tt, ok := f.Our.Player.(*player.Player) mo, ism := f.Opp.Player.(*player.AI_player) if ok && ism && mo.CanCapture { //如果获取玩家 @@ -530,18 +529,15 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) { } } - - f.First.First = true - f.Second.First = false - + var attacker, defender *input.Input //开始回合操作 for i := 0; i < 2; i++ { - var attackeraction action.BattleActionI - if i != 0 { + if i == 0 { // + attacker, defender = f.First, f.Second + + } else { attacker, defender = f.Second, f.First - attackeraction = sattack - attacker.First = false //先手技能 } @@ -552,9 +548,9 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) { return true }) - skill, ok := attackeraction.(*action.SelectSkillAction) canuseskill := true - if !ok || attacker.CurrentPet.Info.Hp <= 0 { //还有系统选择放弃出手的 + // 实际上攻击方 还有系统选择放弃出手的 + if fattack.Skill == nil || attacker.CurrentPet.Info.Hp <= 0 { attacker.AttackValue.SkillID = 0 canuseskill = false @@ -570,11 +566,11 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) { SkillEntity: skill.Skill, }) //返回本身结算,如果false,说明不能使用技能了 - }) - if !canuseskill || !canuseskillok { //可以使用技能 + }) + if !canuseskill || !canuseskillok { //可以使用技能 - f.processSkillAttack(attacker, defender, skill) - skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果 + f.processSkillAttack(attacker, defender, skill) + skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果 } skill.Skill.Info.PP-- //减少PP diff --git a/logic/service/fight/input/fight.go b/logic/service/fight/input/fight.go index 6c1db2070..1df7c2a70 100644 --- a/logic/service/fight/input/fight.go +++ b/logic/service/fight/input/fight.go @@ -19,11 +19,11 @@ func (u *Input) UseSkill(opp *Input, skill *info.SkillEntity) { CritRate := utils.Max(skill.CritRate, 1) //CritAtkFirst: 先出手时必定致命一击; 默认: 0 - if skill.CritAtkFirst != 0 && u.FightC { + if skill.CritAtkFirst != 0 && u.FightC.IsFirst(u.Player) { CritRate = 16 } //CritAtkSecond: 后出手时必定致命一击; 默认: 0 - if skill.CritAtkSecond != 0 && !u.First { + if skill.CritAtkSecond != 0 && !u.FightC.IsFirst(u.Player) { CritRate = 16 } // CritSelfHalfHp: 自身体力低于一半时必定致命一击; 默认: 0