```
feat(fight): 调整战斗逻辑与精灵切换机制 - 优化精灵切换时的效果处理,增加切换事件支持 - 修复战斗中超时逻辑和技能CD计算问题 - 增强状态效果在精灵上下场时的清理机制 - 修改伤害计算逻辑以提高准确性 - 更新战斗池初始化参数提升并发性能 此外,同步更新了宠物放生字段命名及逻辑处理方式,并调整网络通信中的限流策略。 ```
This commit is contained in:
@@ -23,6 +23,7 @@ type Input struct {
|
||||
// info.BattleActionI
|
||||
Effects []Effect //effects 实际上全局就是effect无限回合 //effects容器 技能的
|
||||
EffectCache []Effect //这里是命中前执行的容器,也就是命中前执行的所有逻辑相关,理论上一个effect被激活,就应该同时将其他的effect取消激活
|
||||
Effect_Lost []Effect
|
||||
//NewEffects []Effect
|
||||
|
||||
DamageZone struct {
|
||||
@@ -94,7 +95,7 @@ func (our *Input) ResetAttackValue() {
|
||||
our.AttackValue.IsCritical = 0
|
||||
our.AttackValue.GainHp = 0
|
||||
our.AttackValue.LostHp = 0
|
||||
|
||||
our.DamageZone.Damage = decimal.NewFromInt(0)
|
||||
}
|
||||
|
||||
// 这个每回合都会调用
|
||||
@@ -160,7 +161,8 @@ func (our *Input) Initeffectcache() {
|
||||
// 解析并 施加effect
|
||||
func (our *Input) Parseskill(defender *Input, skill *action.SelectSkillAction) {
|
||||
our.EffectCache = make([]Effect, 0) //先把上一回合数据清空,但是应该把本身延续类效果集成过来
|
||||
our.Initeffectcache() //这里说明是延续的效果,每次复制出来一个新的就好了
|
||||
our.Effect_Lost = make([]Effect, 0)
|
||||
our.Initeffectcache() //这里说明是延续的效果,每次复制出来一个新的就好了
|
||||
//i.NewEffects = make([]Effect, 0) //这里说明是新增的效果
|
||||
temparg := skill.SideEffectArgS
|
||||
|
||||
@@ -180,7 +182,11 @@ func (our *Input) Parseskill(defender *Input, skill *action.SelectSkillAction) {
|
||||
// defender.AddEffect(t)
|
||||
// } else {
|
||||
//t.SetArgs(i, temparg[:args]...) //设置入参
|
||||
our.AddEffect(t)
|
||||
loste := our.AddEffect(t)
|
||||
if loste != nil {
|
||||
our.Effect_Lost = append(our.Effect_Lost, loste)
|
||||
}
|
||||
|
||||
// }
|
||||
//这里是临时缓存buff,后面确认命中后修改HIT状态
|
||||
// t.Alive() //先让效果保持存活
|
||||
|
||||
Reference in New Issue
Block a user