"refactor(fight): 重构战斗效果处理逻辑,将效果恢复和反应操作封装到Input结构体"
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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++ { //堆叠状态剩余回合
|
||||
|
||||
Reference in New Issue
Block a user