//////////////////////////////// //// XP System for ZC ////////// //// v.75 ////////// /////////////////////////////////////////////////////////////////////////// /// Creator: ZoriaRPG ///////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// /// ASSISTANCE BY: ////// CONTRIBUTORS: ////// TESTING: ////// /// anikom15 ////// MoscowModder ////// ////// /// Avataro ////// ////// ////// /// MoscowModder ////// ////// ////// /////////////////////////////////////////////////////////////////////////// import "std.zh" //import "stdExtra.zh" //Not a dependency at this time. //immport "sdtZoria.zh" //Not a dependency at this time. const int HP_DEAD = -999; const int NPC_MISC_MAXHP = 0; //Which npc->Misc[] value to store HP in (don't touch) const int EXP_HP_RATIO = 1; //Enemy EXP value = HP divided by this const int CR_HP = 8; const int CR_MP = 9; const int CR_HP_MAX = 10; const int CR_MP_MAX = 11; const int CR_XP = 12; const int CR_LEVEL = 13; const int CR_LVL = 13; const int CR_XP_10K = 14; const int CR_STAT_MUSC = 26; const int CR_STAT_BODY = 27; const int CR_STAT_MIND = 28; const int CR_STAT_MYST = 29; const int CR_STAT_INFL = 30; const int CR_STAT_LUCK = 31; const int L1String = 1; const int L2String = 1; const int L3String = 1; const int L4String = 1; const int L5String = 3; const int L6String = 1; const int L7String = 1; const int L8String = 1; const int L9String = 1; const int L10String = 1; const int L11String = 1; const int L12String = 1; const int L13String = 1; const int L14String = 1; const int L15String = 1; const int L16String = 1; const int L17String = 1; const int L18String = 1; const int L19String = 1; const int L20String = 1; const int levelSound = 253; int gainLevel; global script active{ void run(){ Game->MCounter[CR_LEVEL] = 20; Game->MCounter[CR_XP] = 211500; Game->Counter[CR_STAT_BODY] = 10; Game->MCounter[CR_STAT_BODY] = 100; Game->Counter[CR_STAT_MUSC] = 10; Game->MCounter[CR_STAT_MUSC] = 100; Game->Counter[CR_STAT_MIND] = 10; Game->MCounter[CR_STAT_MIND] = 100; Game->Counter[CR_STAT_MYST] = 10; Game->MCounter[CR_STAT_MYST] = 100; Game->Counter[CR_STAT_INFL] = 10; Game->MCounter[CR_STAT_INFL] = 100; Game->Counter[CR_STAT_LUCK] = 10; Game->MCounter[CR_STAT_LUCK] = 100; while (true) { Game->Counter[CR_HP] = Link->HP; Game->Counter[CR_MP] = Link->MP; Game->Counter[CR_HP_MAX] = Link->MaxHP; Game->Counter[CR_MP_MAX] = Link->MaxMP; //UpdateEWeapons(); //CleanUpGhostFFCs(); // Only needed if __GH_USE_DRAWCOMBO is 0 //UpdateLWeapons(); //UpdateLastItem(); //if (Link->PressB) {LastItemUsed = GetEquipmentB();} //if (Link->PressA) {LastItemUsed = GetEquipmentA();} Waitdraw(); XP(); //AutoGhost(); //DrawGhostFFCs(); //lastScreen = Game->GetCurDMapScreen(); //Update last screen/DMap //lastDMap = Game->GetCurDMap(); Waitframe(); } } } ////////////////////////////////// //// XP System Base Functions //// ////////////////////////////////// int enemyEXPWorth(npc enem){ return Max(1, enem->Misc[NPC_MISC_MAXHP] / EXP_HP_RATIO); } void giveEXP(int amount){ //Give EXP Game->Counter[CR_XP] += amount; } //Check for new enemies and set their max HP void setMaxHP(){ for ( int i = Screen->NumNPCs(); i > 0; i-- ){ npc enem = Screen->LoadNPC(i); if ( enem->Misc[NPC_MISC_MAXHP] == 0 ) enem->Misc[NPC_MISC_MAXHP] = enem->HP; } } void checkEnemiesKilled(){ for ( int i = Screen->NumNPCs(); i > 0; i-- ){ npc enem = Screen->LoadNPC(i); if ( enem->HP <= 0 && enem->HP > HP_DEAD ){ enem->HP = HP_DEAD; int worth = enemyEXPWorth(enem); //Leadership: Chance to increase EXP worth //if ( Link->Item[I_LEADERSHIP] && Rand(EXP_LEADERSHIPCHANCE) == 0 ) worth++; giveEXP(worth); } } } void XP() { setMaxHP(); checkEnemiesKilled(); tenThousandPlace(); levelSystem(); } ////Counters need to resetat each level. //XP caps out at L15, and counter rolls over.If XP_10K == 1 && XP == 5000 // is the same as if XP == 15000 //or use 2nd counter to 10K place. Every 10K points, increase XP_10K by 1 //and work code to operateon both counters. void tenThousandPlace() { if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 0 ) { Game->Counter[CR_XP] = 1; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 1 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 2 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 3 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 4 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 5 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 6 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 7 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 8 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 9 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 10 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 11 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 12 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 13 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 14 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 15 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 16 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 17 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 18 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 19 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 20 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] == 21 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] > 21 && Game->Counter[CR_XP_10K] < 99 ) { Game->Counter[CR_XP] = 0; Game->Counter[CR_XP_10K]++; } if ( Game->Counter[CR_XP] > 9999 && Game->Counter[CR_XP_10K] > 98 ) { Game->Counter[CR_XP] = 9999; } } void levelSystem() { if ( Game->Counter[CR_LVL] == 0 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 100 ){ Game->Counter[CR_LVL] = 1; Level1(); } } if ( Game->Counter[CR_LVL] == 1 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 150 ) { Game->Counter[CR_LVL] = 2; Level2(); } } if ( Game->Counter[CR_LVL] == 1 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 2; Level2(); } } if ( Game->Counter[CR_LVL] == 2 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 225 ) { Game->Counter[CR_LVL] = 3; Level3(); } } if ( Game->Counter[CR_LVL] == 2 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 3; Level3(); } } if ( Game->Counter[CR_LVL] == 3 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 338 ) { Game->Counter[CR_LVL] = 4; Level4(); } } if ( Game->Counter[CR_LVL] == 3 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 4; Level4(); } } if ( Game->Counter[CR_LVL] == 4 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 507 ) { Game->Counter[CR_LVL] = 5; Level5(); } } if ( Game->Counter[CR_LVL] == 4 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 5; Level5(); } } if ( Game->Counter[CR_LVL] == 5 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 760 ){ Game->Counter[CR_LVL] = 6; Level6(); } } if ( Game->Counter[CR_LVL] == 5 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 6; Level6(); } } if ( Game->Counter[CR_LVL] == 6 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 1140 ){ Game->Counter[CR_LVL] = 7; Level7(); } } if ( Game->Counter[CR_LVL] == 6 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 7; Level7(); } } if ( Game->Counter[CR_LVL] == 7 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 1710 ){ Game->Counter[CR_LVL] = 8; Level8(); } } if ( Game->Counter[CR_LVL] == 7 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 8; Level8(); } } if ( Game->Counter[CR_LVL] == 8 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 2565 ){ Game->Counter[CR_LVL] = 9; Level9(); } } if ( Game->Counter[CR_LVL] == 8 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 9; Level9(); } } if ( Game->Counter[CR_LVL] == 9 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 3848 ){ Game->Counter[CR_LVL] = 10; Level10(); } } if ( Game->Counter[CR_LVL] == 9 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 10; Level10(); } } if ( Game->Counter[CR_LVL] == 10 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 11; Level11(); } } if ( Game->Counter[CR_LVL] == 10 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 5772 ){ Game->Counter[CR_LVL] = 11; Level11(); } } if ( Game->Counter[CR_LVL] == 10 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 11; Level11(); } } if ( Game->Counter[CR_LVL] == 11 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 8658 ){ Game->Counter[CR_LVL] = 12; Level12(); } } if ( Game->Counter[CR_LVL] == 11 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 12; Level12(); } } if ( Game->Counter[CR_LVL] == 12 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP] >= 2987 && Game->Counter[CR_XP_10K] > 0 ) { Game->Counter[CR_LVL] = 13; Level13(); } } if ( Game->Counter[CR_LVL] == 12 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 1 ) { Game->Counter[CR_LVL] = 13; Level13(); } } if ( Game->Counter[CR_LVL] == 13 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 9481 && Game->Counter[CR_XP_10K] > 0) { Game->Counter[CR_LVL] = 14; Level14(); } } if ( Game->Counter[CR_LVL] == 13 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 1 ) { Game->Counter[CR_LVL] = 14; Level14(); } } if ( Game->Counter[CR_LVL] == 14 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 9222 && Game->Counter[CR_XP_10K] > 1 ){ Game->Counter[CR_LVL] = 15; Level15(); } } if ( Game->Counter[CR_LVL] == 14 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 2 ) { Game->Counter[CR_LVL] = 15; Level15(); } } if ( Game->Counter[CR_LVL] == 15 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 3833 && Game->Counter[CR_XP_10K] > 3 ){ Game->Counter[CR_LVL] = 16; Level16(); } } if ( Game->Counter[CR_LVL] == 15 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 4 ) { Game->Counter[CR_LVL] = 16; Level16(); } } if ( Game->Counter[CR_LVL] == 16 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 5750 && Game->Counter[CR_XP_10K] > 5 ){ Game->Counter[CR_LVL] = 17; Level17(); } } if ( Game->Counter[CR_LVL] == 16 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 6 ) { Game->Counter[CR_LVL] = 17; Level17(); } } if ( Game->Counter[CR_LVL] == 17 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 8625 && Game->Counter[CR_XP_10K] > 8 ){ Game->Counter[CR_LVL] = 18; Level18(); } } if ( Game->Counter[CR_LVL] == 17 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 9 ) { Game->Counter[CR_LVL] = 18; Level18(); } } if ( Game->Counter[CR_LVL] == 18 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 7938 && Game->Counter[CR_XP_10K] > 13 ){ Game->Counter[CR_LVL] = 19; Level19(); } } if ( Game->Counter[CR_LVL] == 18 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 14 ) { Game->Counter[CR_LVL] = 19; Level19(); } } if ( Game->Counter[CR_LVL] == 19 && Screen->NumNPCs() == 0 ) { if ( Game->Counter[CR_XP] >= 500 && Game->Counter[CR_XP_10K] > 20 ){ Game->Counter[CR_LVL] = 20; Level20(); } } if ( Game->Counter[CR_LVL] == 19 && Screen->NumNPCs() == 0 ){ if ( Game->Counter[CR_XP_10K] > 21 ) { Game->Counter[CR_LVL] = 20; Level20(); } } } //////////////////////// /// XP TABLE /////////// //////////////////////// /// 0 = 0 //////// /// 100 = 1 //////// /// 150 = 2 //////// /// 225 = 3 //////// /// 338 = 4 //////// /// 507 = 5 //////// /// 760 = 6 //////// /// 1140 = 7 //////// /// 1710 = 8 //////// /// 2565 = 9 //////// /// 3848 = 10 //////// /// 5772 = 11 //////// /// 8658 = 12 //////// /// 12987 = 13 //////// /// 19481 = 14 //////// /// 29222 = 15 //////// /// 43833 = 16 //////// /// 65750 = 17 //////// /// 98625 = 18 //////// /// 147938 = 19 //////// /// 210500 = 20 //////// ////////////////////////////////////////// //// XP Algorithm //// //// C = Current Base //// //// H = Half Current Base //// //// N = Amount Needed for Next Level //// //// C + H = N //// //// Thus C (100) + H (50) = N (150) //// ////////////////////////////////////////// ///////////////////////// //// Bump Functions //// ///////////////////////// void increaseMP() { int amount = ( rollDie(10) + rollDie(10) + rollDie(10) ); int myst = ( getMystStat() / 2 ); int total = ( amount + myst ); Link->MP += total; Link->MaxMP += total; } void increaseHP() { int amount = ( rollDie(10) + rollDie(10) + rollDie(10) + rollDie(10) + rollDie(10) ); int body = ( getBodyStat() / 2 ); int total = ( amount + body ); Link->HP += total; Link->MaxHP += total; } //////////////////////// //// Roll Functions //// //////////////////////// int rollStat() { int r = Rand(1, 6); //specific value of 1-6 set at random; if ( r == 1 ) { int stat = CR_STAT_BODY; return stat; } else if ( r == 2 ) { int stat = CR_STAT_MIND; return stat; } else if ( r == 3 ) { int stat = CR_STAT_LUCK; return stat; } else if ( r == 4 ) { int stat = CR_STAT_MYST; return stat; } else if ( r == 5 ) { int stat = CR_STAT_INFL; return stat; } else if ( r == 6 ) { int stat = CR_STAT_MUSC; return stat; } } void increaseStat() { int stat = rollStat(); int n = rollDie(6); Game->Counter[stat] += n; } int rollDie(int type){ int n = Rand(1, type); return n; } int roll1d4() { int n = Rand(1, 4); return n; } int roll1d6() { int n = Rand(1, 6); return n; } int roll4d6(){ int a = Rand(1, 6); int b = Rand(1, 6); int c = Rand(1, 6); int d = Rand(1, 6); int t = ( a + b + c + d ); return t; } int roll1d8() { int n = Rand(1, 8); return n; } int roll1d10() { int n = Rand(1, 10); return n; } int roll1d12() { int n = Rand(1, 12); return n; } int roll1d20() { int n = Rand(1, 20); return n; } int roll1d50() { int n = Rand(1, 50); return n; } int roll1d100() { int n = Rand(1, 100); return n; } ///////////////////////// //// Stats Functions //// ///////////////////////// //void setBodyStat(value){ //} // //void setMindStat(value){ //} // //void setLuckStat(value){ //} // //void setMystStat(value){ //} // //void setInflStat(value){ //} // //void setMuscStat(value){ //} //void setStat(stat, value){ //} int getBodyStat(){ int stat = CR_STAT_BODY; return stat; } int getMindStat(){ int stat = CR_STAT_MIND; return stat; } int getLuckStat(){ int stat = CR_STAT_LUCK; return stat; } int getMystStat(){ int stat = CR_STAT_MYST; return stat; } int getInflStat(){ int stat = CR_STAT_INFL; return stat; } int getMuscStat(){ int stat = CR_STAT_MUSC; return stat; } // Using Stats // heavy weapon script particles // discover present slot of item // set int of slot of item for bools // when trying to use the item // if CT_MUSC < x // set other slot to 'hand' until item is changed. // // Use Body to affect HP: // Use Body to set HP at level increases. Use to set HP regen rate. // Use MUSC to set-augment weapon damage, via roll1dX rands. // Use MUSC for ability to move objects. // bracelets increase Musc, as well as activating triggers. // Bracelet / gauntlet takes up a slot. Any combination of two rings, or one ring and one bracelet at one time. // Use Luck to set jinx durations. // Use Myst to set spell damage. // Require Myst of certain value to use some spells. // Ue Mind for Lore skills. // Use Mind for raw (untrained) examination checks. // Create LWeapon that deals damage based on dX rolls. // Is there any way to use MUSC and random damage on swords? // Possibly replace rhe power of the LW_SWORD generated with a sword with a different value? // INF should set the strings used on FFC scripts when conversing. // A higher INF would open up more lines of dialogue. ///////////////////////// //// Level Functions //// ///////////////////////// void Level1() { Game->PlaySound(levelSound); Screen->Message(L1String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); //Increases HP by 4d10 increaseMP(); //Increases MP by 3d10 increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level2() { Game->PlaySound(levelSound); Screen->Message(L2String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level3() { Game->PlaySound(levelSound); Screen->Message(L3String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level4() { Game->PlaySound(levelSound); Screen->Message(L4String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level5() { Game->PlaySound(levelSound); Screen->Message(L5String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. Game->Generic[GEN_CANSLASH] = 1; //This should occur when gaining this level, and be permanent. } void Level6() { Game->PlaySound(levelSound); Screen->Message(L6String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level7() { Game->PlaySound(levelSound); Screen->Message(L7String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level8() { Game->PlaySound(levelSound); Screen->Message(L8String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level9() { Game->PlaySound(levelSound); Screen->Message(L9String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level10() { Game->PlaySound(levelSound); Screen->Message(L10String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level11() { Game->PlaySound(levelSound); Screen->Message(L11String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level12() { Game->PlaySound(levelSound); Screen->Message(L12String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level13() { Game->PlaySound(levelSound); Screen->Message(L13String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level14() { Game->PlaySound(levelSound); Screen->Message(L14String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level15() { Game->PlaySound(levelSound); Screen->Message(L15String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level16() { Game->PlaySound(levelSound); Screen->Message(L16String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level17() { Game->PlaySound(levelSound); Screen->Message(L17String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level18() { Game->PlaySound(levelSound); Screen->Message(L18String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level19() { Game->PlaySound(levelSound); Screen->Message(L19String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. } void Level20() { Game->PlaySound(levelSound); Screen->Message(L20String); //This should show on-screen one time, when gaining the level, and not remain forever. increaseHP(); increaseMP(); increaseStat(); //This should happen one time, when gaining this level, and be permanent. }