``refactor(pet): 提取宠物基础属性计算逻辑到GetBasic方法,优化经验计算流程``

This commit is contained in:
1
2025-10-17 21:38:24 +00:00
parent 6e7dc9ebca
commit 31c7687036
2 changed files with 22 additions and 14 deletions

View File

@@ -37,24 +37,19 @@ func calculateExperience(level uint32, baseValue uint32) uint32 {
func (p *Player) AddPetExp(petinfo *model.PetInfo, addExp uint32, bro bool) {
originalLevel := petinfo.Level
basic := xmlres.PetMAP[int(petinfo.ID)]
for {
basic := xmlres.PetMAP[int(petinfo.ID)]
ba := basic.Atk +
basic.Def +
basic.SpAtk +
basic.SpDef +
basic.Spd +
uint32(basic.HP)
needExp := calculateExperience(petinfo.Level, ba)
needExp := calculateExperience(petinfo.Level, basic.GetBasic())
needExp -= petinfo.Exp
if addExp >= needExp {
basic := xmlres.PetMAP[int(petinfo.ID)]
addExp -= needExp
p.Info.ExpPool -= needExp //减去已使用的经验
petinfo.Level++
petinfo.Exp = 0
if originalLevel < 100 && petinfo.Level == 100 { //升到100了
petinfo.Cure()
petinfo.NextLvExp = calculateExperience(petinfo.Level, ba)
break //停止升级
}
@@ -69,13 +64,17 @@ func (p *Player) AddPetExp(petinfo *model.PetInfo, addExp uint32, bro bool) {
} else {
p.Info.ExpPool -= addExp //减去已使用的经验
petinfo.Exp = addExp //零头添到这里
petinfo.NextLvExp = calculateExperience(petinfo.Level, ba)
petinfo.Exp += addExp //零头添到这里
break
}
}
petinfo.NextLvExp = calculateExperience(petinfo.Level, basic.GetBasic())
//治疗
if petinfo.Level != originalLevel {
petinfo.Cure()
}
//petinfo.Exp = addExp
petinfo.LvExp = petinfo.NextLvExp - petinfo.Exp