```
feat(blazing): 宠物更新逻辑支持可选升级参数 修改 PetInfo 的 Update 方法,增加可变参数 t 用于控制是否执行升级逻辑。 当调用 Update(true) 时跳过进化检查,仅更新经验与面板属性。 默认情况下仍会进行进化判断与处理。 修复 GenPetInfo 中宠物初始生成时不应触发进化的逻辑问题。 ```
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user