feat(fight): 调整战斗逻辑与伤害计算流程

- 移除 `Over` 方法中的冗余回调参数 `fn`
- 修复部分技能效果中错误的伤害目标对象(Our/Opp)
- 优化战斗循环逻辑,使用 `over` channel 替代 `quit` 作为战斗结束信号
- 增加回合效果执行前的存活状态判断
- 修正伤害计算过程中对血量扣减的逻辑错误
-
This commit is contained in:
2025-11-12 01:19:24 +08:00
parent a0a5163f13
commit 0b5cfac0b2
16 changed files with 73 additions and 71 deletions

View File

@@ -143,7 +143,6 @@ func (our *Input) GetStatusBonus() float64 {
}
func (our *Input) Initeffectcache() {
our.EffectCache = make([]Effect, 0) //先把上一回合数据清空,但是应该把本身延续类效果集成过来
for _, v := range our.Effects {
@@ -160,7 +159,8 @@ func (our *Input) Initeffectcache() {
// 解析并 施加effect
func (our *Input) Parseskill(defender *Input, skill *action.SelectSkillAction) {
our.Initeffectcache() //这里说明是延续效果,每次复制出来一个新的就好了
our.EffectCache = make([]Effect, 0) //先把上一回合数据清空,但是应该把本身延续效果集成过来
our.Initeffectcache() //这里说明是延续的效果,每次复制出来一个新的就好了
//i.NewEffects = make([]Effect, 0) //这里说明是新增的效果
temparg := skill.SideEffectArgS
@@ -183,7 +183,7 @@ func (our *Input) Parseskill(defender *Input, skill *action.SelectSkillAction) {
//i.AddEffect(t)
// }
//这里是临时缓存buff,后面确认命中后修改HIT状态
// t.Alive() //先让效果保持存活
t.Alive() //先让效果保持存活
our.EffectCache = append(our.EffectCache, t)
// i.NewEffects = append(i.NewEffects, t)
}