From 04595b03ce5b00ec9e4d64a573f31e8c2a8c549c Mon Sep 17 00:00:00 2001 From: WinterSolstice8 <60417494+wintersolstice8@users.noreply.github.com> Date: Mon, 13 May 2024 21:54:38 -0600 Subject: [PATCH] [core] Fix SMN job point gifts for pet stats not working --- src/map/utils/petutils.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/map/utils/petutils.cpp b/src/map/utils/petutils.cpp index 5b5614d7171..09d9afd7408 100644 --- a/src/map/utils/petutils.cpp +++ b/src/map/utils/petutils.cpp @@ -723,19 +723,6 @@ namespace petutils ref(&PPet->stats, counter) = (uint16)(raceStat + jobStat); counter += 2; } - - // SMN Job Gift Bonuses, DRG and PUP handled in their respective functions - if (PMaster->GetMJob() == JOB_SMN) - { - PPet->addModifier(Mod::ATT, PMaster->getMod(Mod::PET_ATK_DEF)); - PPet->addModifier(Mod::DEF, PMaster->getMod(Mod::PET_ATK_DEF)); - PPet->addModifier(Mod::ACC, PMaster->getMod(Mod::PET_ACC_EVA)); - PPet->addModifier(Mod::EVA, PMaster->getMod(Mod::PET_ACC_EVA)); - PPet->addModifier(Mod::MATT, PMaster->getMod(Mod::PET_MAB_MDB)); - PPet->addModifier(Mod::MDEF, PMaster->getMod(Mod::PET_MAB_MDB)); - PPet->addModifier(Mod::MACC, PMaster->getMod(Mod::PET_MACC_MEVA)); - PPet->addModifier(Mod::MEVA, PMaster->getMod(Mod::PET_MACC_MEVA)); - } } void CalculateAvatarStats(CBattleEntity* PMaster, CPetEntity* PPet) @@ -831,6 +818,7 @@ namespace petutils // Set E evasion and def PPet->setModifier(Mod::EVA, battleutils::GetMaxSkill(SKILL_THROWING, JOB_WHM, mLvl > 99 ? 99 : mLvl)); PPet->setModifier(Mod::DEF, battleutils::GetMaxSkill(SKILL_THROWING, JOB_WHM, mLvl > 99 ? 99 : mLvl)); + // cap all magic skills so they play nice with spell scripts for (int i = SKILL_DIVINE_MAGIC; i <= SKILL_BLUE_MAGIC; i++) { @@ -866,6 +854,19 @@ namespace petutils PPet->addModifier(Mod::BP_DAMAGE, PChar->PJobPoints->GetJobPointValue(JP_BLOOD_PACT_DMG_BONUS) * 3); } + // SMN Job Gift Bonuses, DRG and PUP handled in their respective functions + if (PMaster->GetMJob() == JOB_SMN) + { + PPet->addModifier(Mod::ATT, PMaster->getMod(Mod::PET_ATK_DEF)); + PPet->addModifier(Mod::DEF, PMaster->getMod(Mod::PET_ATK_DEF)); + PPet->addModifier(Mod::ACC, PMaster->getMod(Mod::PET_ACC_EVA)); + PPet->addModifier(Mod::EVA, PMaster->getMod(Mod::PET_ACC_EVA)); + PPet->addModifier(Mod::MATT, PMaster->getMod(Mod::PET_MAB_MDB)); + PPet->addModifier(Mod::MDEF, PMaster->getMod(Mod::PET_MAB_MDB)); + PPet->addModifier(Mod::MACC, PMaster->getMod(Mod::PET_MACC_MEVA)); + PPet->addModifier(Mod::MEVA, PMaster->getMod(Mod::PET_MACC_MEVA)); + } + PMaster->setModifier(Mod::AVATAR_PERPETUATION, PerpetuationCost(petID, mLvl)); FinalizePetStatistics(PMaster, PPet);