refactor: 重构签到系统和战斗特效逻辑

This commit is contained in:
xinian
2026-04-06 02:51:13 +08:00
committed by cnb
parent 5b37d9493b
commit a16a06e389
9 changed files with 358 additions and 530 deletions

View File

@@ -145,6 +145,28 @@ func (our *Input) SetCurPetAt(index int, pet *info.BattlePetEntity) {
our.CurPet[index] = pet
}
func applyInitPetEffectBonus(pet *info.BattlePetEntity, effect model.PetEffectInfo) {
if pet == nil || effect.EID != 26 || len(effect.Args) < 2 {
return
}
for i := 0; i+1 < len(effect.Args); i += 2 {
attr := effect.Args[i]
value := effect.Args[i+1]
if value <= 0 {
continue
}
switch attr {
case 0:
pet.Info.MaxHp += uint32(value)
pet.Info.Hp += uint32(value)
case 1, 2, 3, 4, 5:
pet.Info.Prop[attr-1] += uint32(value)
}
}
}
// 非原地交换收集非0血量精灵 + 0血量精灵拼接后返回
func (our *Input) SortPet() {
var nonZeroHP []*info.BattlePetEntity // 收集血量>0的精灵保持原顺序
@@ -167,6 +189,7 @@ func (our *Input) SortPet() {
t.Duration(-1)
applyInitPetEffectBonus(s, e1)
our.AddEffect(our, t)
}
@@ -338,9 +361,6 @@ func (our *Input) Parseskill(skill *action.SelectSkillAction) {
args := xmlres.EffectArgs[v]
t := our.InitEffect(EffectType.Skill, v, temparg[:args]...)
//这里是给双方添加buff
if t != nil {
// t.SetArgs(our, temparg[:args]...) //设置入参,施加方永远是我方