feat(blazing): 宠物更新逻辑支持可选升级参数

修改 PetInfo 的 Update 方法,增加可变参数 t 用于控制是否执行升级逻辑。
当调用 Update(true) 时跳过进化检查,仅更新经验与面板属性。
默认情况下仍会进行进化判断与处理。

修复 GenPetInfo 中宠物初始生成时不应触发进化的逻辑问题。
```
This commit is contained in:
2025-10-24 23:33:28 +08:00
parent db3a21dd91
commit ade9003a11

View File

@@ -133,15 +133,21 @@ func (pet *PetInfo) Cure() {
}
}
}
func (petinfo *PetInfo) Update() {
// 传入bool则不升级
func (petinfo *PetInfo) Update(t ...bool) {
basic := xmlres.PetMAP[int(petinfo.ID)]
// 检查是否可以进化
if basic.EvolvesTo != 0 && // 有明确的进化
int(petinfo.Level) >= basic.EvolvingLv && // 有明确的进化等级
basic.IsLarge == 0 { // 非最终形态
petinfo.ID = uint32(basic.EvolvesTo)
if len(t) == 0 {
// 检查是否可以进化
if basic.EvolvesTo != 0 && // 有明确的进化
int(petinfo.Level) >= basic.EvolvingLv && // 有明确的进化等级
basic.IsLarge == 0 { // 非最终形态
petinfo.ID = uint32(basic.EvolvesTo)
basic = xmlres.PetMAP[int(petinfo.ID)] //重新计算
}
}
petinfo.LvExp = petinfo.NextLvExp
@@ -303,7 +309,7 @@ func GenPetInfo(
p.CalculatePetPane()
p.Hp = p.MaxHp
p.Update()
p.Update(true)
return p
}