"refactor(fight): 重构战斗效果处理逻辑,将效果恢复和反应操作封装到Input结构体"

This commit is contained in:
1
2025-12-18 03:54:45 +00:00
parent ae616ac848
commit f1af9894cd
2 changed files with 33 additions and 17 deletions

View File

@@ -223,11 +223,12 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
if i == 0 { //
attacker, defender = f.First, f.Second
oldskill = f.copyskill(fattack)
//先手阶段,先修复后手效果
f.Second.RecoverEffect()
} else {
attacker, defender = f.Second, f.First
oldskill = f.copyskill(sattack)
f.Second.ReactvieEffect()
}
currentskill = oldskill
@@ -251,26 +252,12 @@ func (f *FightC) enterturn(fattack, sattack *action.SelectSkillAction) {
attacker.CurrentPet.Info.Hp > 0
if !canuse {
//根本没释放技能,这些效果全部失效
for _, e := range attacker.EffectCache {
e.Alive(false)
}
//这时候将被覆盖的效果全部装回来enterturn
for _, e := range attacker.Effect_Lost {
e.Alive(true)
}
attacker.RecoverEffect()
currentskill = nil
} else {
f.processSkillAttack(attacker, defender, currentskill)
currentskill = oldskill //还原技能
// if oldskill != nil {
// fmt.Println("结束攻击_old", oldskill.Power)
// fmt.Println("结束攻击_new", currentskill.Power)
// }
_, skill, ok := utils.FindWithIndex(attacker.CurrentPet.Info.SkillList, func(item model.SkillInfo) bool {
return item.ID == currentskill.Info.ID

View File

@@ -104,7 +104,36 @@ func (our *Input) SetOPP(t *Input) {
our.Opp = t
}
func (our *Input) RecoverEffect() {
//根本没释放技能,这些效果全部失效
for _, e := range our.EffectCache {
e.Alive(false)
}
//这时候将被覆盖的效果全部装回来enterturn
for _, e := range our.Effect_Lost {
e.Alive(true)
}
}
func (our *Input) ReactvieEffect() {
//根本没释放技能,这些效果全部失效
for _, e := range our.Effect_Lost {
e.Alive(false)
}
//这时候将被覆盖的效果全部装回来enterturn
for _, e := range our.Effect_Lost {
e.Alive(true)
}
}
func (our *Input) GenSataus() {
our.Status = [20]int8{}
for i := 0; i < 20; i++ { //堆叠状态剩余回合