refactor: 优化先手判断逻辑,增加IsFirst接口
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

This commit is contained in:
xinian
2026-03-09 12:28:37 +08:00
committed by cnb
parent f3ada66c11
commit f35af82bec
16 changed files with 65 additions and 31 deletions

View File

@@ -220,17 +220,37 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction)
attacker.RecoverEffect()
currentSkill = nil
if i == 0 {
//不能使用,所以这时候取消后手
defender.ReactvieEffect()
firstAttack, secondAttack = secondAttack, firstAttack //互换先手权
f.First, f.Second = f.Second, f.First
//反转先后手
originalSkill = f.copySkill(firstAttack)
if i == 0 { //先手方被控,这时候应该算做未出手状态
if canUse {
f.TrueFirst = attacker
attacker.Exec(func(effect input.Effect) bool {
effect.IsFirst(true)
return true
})
} else {
f.TrueFirst = defender
defender.Exec(func(effect input.Effect) bool {
effect.IsFirst(true)
return true
})
}
currentSkill = originalSkill
attacker, defender = defender, attacker
}
//先手权不一定出手
// if i == 0 {
// //不能使用,所以这时候取消后手
// defender.ReactvieEffect()
// firstAttack, secondAttack = secondAttack, firstAttack //互换先手权
// f.First, f.Second = f.Second, f.First
// //反转先后手
// originalSkill = f.copySkill(firstAttack)
// currentSkill = originalSkill
// attacker, defender = defender, attacker
// }
} else {
f.processSkillAttack(attacker, defender, currentSkill)
@@ -297,6 +317,10 @@ func (f *FightC) enterturn(firstAttack, secondAttack *action.SelectSkillAction)
})
ff.GenInfo()
})
if f.TrueFirst != f.First {
f.First, f.Second = f.Second, f.First
}
attackValueResult := info.AttackValueS{
FAttack: *f.First.AttackValue,