From ade9003a11a8faf7f9eb382ff12e4d7f0639f684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <1@72wo.cn> Date: Fri, 24 Oct 2025 23:33:28 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(blazing):=20=E5=AE=A0=E7=89=A9?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91=E6=94=AF=E6=8C=81=E5=8F=AF?= =?UTF-8?q?=E9=80=89=E5=8D=87=E7=BA=A7=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改 PetInfo 的 Update 方法,增加可变参数 t 用于控制是否执行升级逻辑。 当调用 Update(true) 时跳过进化检查,仅更新经验与面板属性。 默认情况下仍会进行进化判断与处理。 修复 GenPetInfo 中宠物初始生成时不应触发进化的逻辑问题。 ``` --- modules/blazing/model/pet.go | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/blazing/model/pet.go b/modules/blazing/model/pet.go index 4a8cb08f..e30972ba 100644 --- a/modules/blazing/model/pet.go +++ b/modules/blazing/model/pet.go @@ -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 }