修改战斗

This commit is contained in:
1
2025-09-30 10:40:36 +00:00
parent 23fdd9e968
commit 5627458311
2 changed files with 14 additions and 18 deletions

View File

@@ -342,8 +342,7 @@ func (f *FightC) battleLoop() {
switch { switch {
case faction.ItemID >= 30001 && faction.ItemID <= 300010: //胶囊 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) mo, ism := f.Opp.Player.(*player.AI_player)
if ok && ism && mo.CanCapture { //如果获取玩家 if ok && ism && mo.CanCapture { //如果获取玩家
@@ -530,18 +529,15 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
} }
} }
var attacker, defender *input.Input
f.First.First = true
f.Second.First = false
//开始回合操作 //开始回合操作
for i := 0; i < 2; i++ { 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 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 return true
}) })
skill, ok := attackeraction.(*action.SelectSkillAction)
canuseskill := true canuseskill := true
if !ok || attacker.CurrentPet.Info.Hp <= 0 { //还有系统选择放弃出手的 // 实际上攻击方 还有系统选择放弃出手的
if fattack.Skill == nil || attacker.CurrentPet.Info.Hp <= 0 {
attacker.AttackValue.SkillID = 0 attacker.AttackValue.SkillID = 0
canuseskill = false canuseskill = false
@@ -570,11 +566,11 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
SkillEntity: skill.Skill, SkillEntity: skill.Skill,
}) //返回本身结算,如果false,说明不能使用技能了 }) //返回本身结算,如果false,说明不能使用技能了
}) })
if !canuseskill || !canuseskillok { //可以使用技能 if !canuseskill || !canuseskillok { //可以使用技能
f.processSkillAttack(attacker, defender, skill) f.processSkillAttack(attacker, defender, skill)
skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果 skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果
} }
skill.Skill.Info.PP-- //减少PP skill.Skill.Info.PP-- //减少PP

View File

@@ -19,11 +19,11 @@ func (u *Input) UseSkill(opp *Input, skill *info.SkillEntity) {
CritRate := utils.Max(skill.CritRate, 1) CritRate := utils.Max(skill.CritRate, 1)
//CritAtkFirst: 先出手时必定致命一击; 默认: 0 //CritAtkFirst: 先出手时必定致命一击; 默认: 0
if skill.CritAtkFirst != 0 && u.FightC { if skill.CritAtkFirst != 0 && u.FightC.IsFirst(u.Player) {
CritRate = 16 CritRate = 16
} }
//CritAtkSecond: 后出手时必定致命一击; 默认: 0 //CritAtkSecond: 后出手时必定致命一击; 默认: 0
if skill.CritAtkSecond != 0 && !u.First { if skill.CritAtkSecond != 0 && !u.FightC.IsFirst(u.Player) {
CritRate = 16 CritRate = 16
} }
// CritSelfHalfHp: 自身体力低于一半时必定致命一击; 默认: 0 // CritSelfHalfHp: 自身体力低于一半时必定致命一击; 默认: 0