MCPcopy Create free account
hub / github.com/EasyRPG/Player / ChangeLevel

Method ChangeLevel

src/game_actor.cpp:794–821  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

792}
793
794void Game_Actor::ChangeLevel(int new_level, PendingMessage* pm) {
795 int old_level = GetLevel();
796 SetLevel(new_level);
797 new_level = GetLevel(); // Level adjusted to max
798
799 if (new_level > old_level) {
800 if (pm) {
801 pm->PushLine(ActorMessage::GetLevelUpMessage(*this, new_level));
802 }
803
804 // Learn new skills
805 LearnLevelSkills(old_level + 1, new_level, pm);
806
807 if (pm) {
808 pm->PushPageEnd();
809 }
810
811 // Experience adjustment:
812 // At least level minimum
813 SetExp(max(GetBaseExp(), GetExp()));
814 } else if (new_level < old_level) {
815 // Experience adjustment:
816 // Level minimum if higher then Level maximum
817 if (GetExp() >= GetNextExp()) {
818 SetExp(GetBaseExp());
819 }
820 }
821}
822
823bool Game_Actor::IsEquippable(int item_id) const {
824 const lcf::rpg::Item* item = lcf::ReaderUtil::GetElement(lcf::Data::items, item_id);

Callers 3

CommandChangeLevelMethod · 0.80
DoLevelMethod · 0.80
SetupBattleTestMethod · 0.80

Calls 4

GetLevelUpMessageFunction · 0.85
maxFunction · 0.85
PushPageEndMethod · 0.80
PushLineMethod · 0.45

Tested by

no test coverage detected