diff --git a/acs/spelllib.o b/acs/spelllib.o index 5d61fdd57..a6e123949 100644 Binary files a/acs/spelllib.o and b/acs/spelllib.o differ diff --git a/scripts/SPELLSRC.acs b/scripts/SPELLSRC.acs index 4be97703a..b7350d232 100644 --- a/scripts/SPELLSRC.acs +++ b/scripts/SPELLSRC.acs @@ -127,7 +127,6 @@ ["EmulateGiveArmorBonus"] - Emulates Armor Bonuses for all four types of normal armor in DVI[I]-DS. [Applies Only to Deggaris and Illucia] (also one part of the Sauron's Gauntlet hit effect) ["SauronItemSpawnerCheck"] - Calculates the occurance rate of Sauron's Gauntlets and Sauron's Helmet Dropping. ["SetSauravatarHealth"] - Configures the full max health of the Sauravatar and sets it to its proper Health to start the fight [DVI-DS & DVII-DS] - ["AddSceptreEXP"] - Accmulate EXP for Sceptre of Empyrea [Flora only] ["Hand-GravityAttack"] - Using a Diabloist's Hands' HP Gravity attack-projectile on an enemy. ["GetPlayerLevel"] - Returns the Player's Level [for A_JumpIf checks in DECORATE] ["WeaponAngleLoop"] - For the Sceptre's Spin Attack & HellCore Weapons (used as a replacement for uservars in weapons) @@ -25314,190 +25313,6 @@ script "SPECIALMAPEVENTS" ENTER } } -// Accmulate EXP for Sceptre -script "AddSceptreEXP" (int SExPts, int Check2, int DivAmount) -{ - int ExpPiecesToAdd; - int EXPBonus1; - int BossEnemy; - int DeftnessExpBase = GetCVar("dvds_deftnessexpbase"); - int SceptreExpMultiplier = GetCVar("dvds_sceptreexpmultiplier"); - - if (ModType == 0 && GetCVar("dvds_noscexpgains") != 0) terminate; - - if (BossEnemy != 0) DivAmount *= 10; - if (DivAmount <= 1) DivAmount = 1; - - if (CharacterClass != 2) terminate; - if (CharacterClass == 2) - { - if (Check2 > 0) - { - ExpPiecesToAdd = 16 - SceptreActualLevel; - if (ExpPiecesToAdd < 1) ExpPiecesToAdd += 16; - if (ExpPiecesToAdd > 16) ExpPiecesToAdd -= 16; - - EXPBonus1 = 1000; - // Pearly Corset [+2.5/5% EXP Bonus] - if (CheckActorInventory(Player1TID,"SafeTeaShoes")) - { - if (random(1,100) <= 5) EXPBonus1 += 50; // 5% Chance of +5% EXP Bonus - else EXPBonus1 += 25; // Else +2.5% EXP Bonus - } - // Pearly Corset [+20/30% EXP Bonus] - if (CheckActorInventory(Player1TID,"PearlyCorset")) - { - if (random(1,100) <= 5) EXPBonus1 += 300; // 5% Chance of +30% EXP Bonus - else EXPBonus1 += 200; // Else +20% EXP Bonus - } - // Dove's [+2.5/5% EXP Bonus] - if (CheckActorInventory(Player1TID,"DoveRibbon")) - { - if (random(1,100) <= 5) EXPBonus1 += 50; // 5% Chance of +5% EXP Bonus - else EXPBonus1 += 25; // Else +2.5% EXP Bonus - } - ExpPiecesToAdd = ExpPiecesToAdd * EXPBonus1 / 1000; - - EXPBonus1 = 1000; - // Divine Avatar {+25% EXP Bonus] - if (PowerupTimer[7] > 0) - { - if (random(1,100) <= 20) EXPBonus1 += 500; // 20% Chance of +50% EXP Bonus - else EXPBonus1 += 250; // 20% Else +25% EXP Bonus - } - ExpPiecesToAdd = ExpPiecesToAdd * EXPBonus1 / 1000; - ExpPiecesToAdd = ExpPiecesToAdd * (DeftnessExpBase + MiscellaneousVars[33]) / DeftnessExpBase; - ExpPiecesToAdd = ExpPiecesToAdd * SceptreExpMultiplier / 100; - - // "Higher Learning" Grand Mastery Perk - if (MiscellaneousVars[11001] == 1) ExpPiecesToAdd = ExpPiecesToAdd * 23 / 20; // [115%] - if (MiscellaneousVars[11001] == 2) ExpPiecesToAdd = ExpPiecesToAdd * 13 / 10; // [130%] - - if (ModType == 0) ExpPiecesToAdd = ExpPiecesToAdd * 4 / 3; // Classic Doom 1/2 / Heretic / Hexen / Strife - MiscellaneousVars[203] += ExpPiecesToAdd; - - - // PrintBold(d:ExpPiecesToAdd); - while (MiscellaneousVars[203] > 15) // if (MiscellaneousVars[203] > 15) - { - MiscellaneousVars[203] -= 16; - SceptreLevelEXP += 1; - } - } - else - { - if (GetUserVariable(0,"user_MaxHP") > 0) SExPts = GetUserVariable(0,"user_MaxHP"); else SExPts = GetActorProperty(0,APROP_SpawnHealth); - if (ModType == 0) SExPts = SExPts * 4 / 3; // Classic Doom 1/2 / Heretic / Hexen / Strife - SExPts *= 16; // * 16 is because each full Sceptre EXP Point is 16 "fragments". - SExPts = SExPts / 300; - - // Check for if the monster calling the script is a boss or strong monster [to cut down on SExp Gains] - if (CheckActorClass(0, "Benellus1DS")) DivAmount *= 16; - if (CheckActorClass(0, "Benellus2DS")) DivAmount *= 16; - if (CheckActorClass(0, "Benellus3DS")) DivAmount *= 16; - if (CheckActorClass(0, "DragonNew")) DivAmount *= 16; - if (CheckActorClass(0, "HeresiarchNew")) DivAmount *= 16; - if (CheckActorClass(0, "ClericBossNew")) DivAmount *= 16; - if (CheckActorClass(0, "MageBossNew")) DivAmount *= 16; - if (CheckActorClass(0, "FighterBossNew")) DivAmount *= 16; - if (CheckActorClass(0, "DSparilMountedNew")) DivAmount *= 12; // 12 - if (CheckActorClass(0, "DSparilUnmountedNew")) DivAmount *= 16; - if (CheckActorClass(0, "KoraxNew")) DivAmount *= 16; - if (CheckActorClass(0, "Zakachi")) DivAmount *= 16; - if (CheckActorClass(0, "AvatarNew")) DivAmount *= 16; // 32 - if (CheckActorClass(0, "ProgrammerNew")) DivAmount *= 16; - if (CheckActorClass(0, "StrifeBishopNew")) DivAmount *= 16; - if (CheckActorClass(0, "OracleNew")) DivAmount *= 16; - if (CheckActorClass(0, "Macil1New")) DivAmount *= 16; - if (CheckActorClass(0, "Macil2New")) DivAmount *= 16; - if (CheckActorClass(0, "LoremasterNew")) DivAmount *= 16; - if (CheckActorClass(0, "SourceGuardian")) DivAmount *= 16; - if (CheckActorClass(0, "AlienSpectre1New")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre2New")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre3New")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre4New")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre5New")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre1Model")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre2Model")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre3Model")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre4Model")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "AlienSpectre5Model")) DivAmount *= 16; // 24 - if (CheckActorClass(0, "EntityBossNew")) DivAmount *= 24; // 32 - if (CheckActorClass(0, "EntitySecondNew")) DivAmount *= 24; // 32 - if (CheckActorClass(0, "EntityAscended")) DivAmount *= 24; // 32 - if (CheckActorClass(0, "DSMotherDemon64")) DivAmount *= 16; - if (CheckActorClass(0, "ThamuzNew")) DivAmount *= 24; // 32 - if (CheckActorClass(0, "TchernobogNew")) DivAmount *= 24; // 32 - if (CheckActorClass(0, "PennywiseBoss")) DivAmount *= 32; // 32 - if (CheckActorClass(0, "TheSource")) DivAmount *= 32; // 128 - if (CheckActorClass(0, "Magmantis")) DivAmount *= 64; // 32 - if (CheckActorClass(0, "AdolfHitlerDS")) DivAmount *= 64; // 32 - if (CheckActorClass(0, "Sauravatar")) DivAmount *= 96; // 128 - - - if (DivAmount >= 1) SExPts = SExPts / DivAmount; - SExPts = SExPts + 16; - - int Randomizer = random(1,256); - if (Randomizer == 1) SExPts = SExPts * 8; - if (Randomizer == 2) SExPts = SExPts * 4; - if (Randomizer == 3) SExPts = SExPts * 4; - if (Randomizer == 4) SExPts = SExPts * 2; - if (Randomizer == 5) SExPts = SExPts * 2; - if (Randomizer == 6) SExPts = SExPts * 2; - if (Randomizer == 7) SExPts = SExPts * 2; - - // Higher Levels = slightly less chances to get all EXP - if (SceptreActualLevel > 15 && Randomizer == 241) SExPts = SExPts / 2; - if (SceptreActualLevel > 14 && Randomizer == 242) SExPts = SExPts / 2; - if (SceptreActualLevel > 13 && Randomizer == 243) SExPts = SExPts / 2; - if (SceptreActualLevel > 12 && Randomizer == 244) SExPts = SExPts / 2; - if (SceptreActualLevel > 11 && Randomizer == 245) SExPts = SExPts / 2; - if (SceptreActualLevel > 10 && Randomizer == 246) SExPts = SExPts / 2; - if (SceptreActualLevel > 9 && Randomizer == 247) SExPts = SExPts / 2; - if (SceptreActualLevel > 8 && Randomizer == 248) SExPts = SExPts / 2; - if (SceptreActualLevel > 7 && Randomizer == 249) SExPts = SExPts / 2; - if (SceptreActualLevel > 6 && Randomizer == 250) SExPts = SExPts / 2; - if (SceptreActualLevel > 5 && Randomizer == 251) SExPts = SExPts / 2; - if (SceptreActualLevel > 4 && Randomizer == 252) SExPts = SExPts / 2; - if (SceptreActualLevel > 3 && Randomizer == 253) SExPts = SExPts / 2; - if (SceptreActualLevel > 2 && Randomizer == 254) SExPts = SExPts / 2; - if (SceptreActualLevel > 1 && Randomizer == 255) SExPts = SExPts / 2; - if (SceptreActualLevel > 0 && Randomizer == 256) SExPts = SExPts / 2; - - EXPBonus1 = 1000; - // Pearly Corset [+30%/+45% EXP Bonus] - if (CheckActorInventory(Player1TID,"PearlyCorset")) - { - if (random(1,100) <= 5) EXPBonus1 += 450; // 5% Chance of +45% EXP Bonus - else EXPBonus1 += 300; // Else +30% EXP Bonus - } - if (PowerupTimer[7] > 0) // Divine Avatar - { - if (random(1,100) <= 20) EXPBonus1 += 500; // 20% Chance of +50% EXP Bonus - else EXPBonus1 += 250; // Else +25% EXP Bonus - } - - SExPts = SExPts * EXPBonus1 / 1000; - SExPts = SExPts * (DeftnessExpBase + MiscellaneousVars[33]) / DeftnessExpBase; - SExPts = SExPts * SceptreExpMultiplier / 100; - - while (SExPts > 15) - { - SExPts -= 16; - SceptreLevelEXP += 1; - } - MiscellaneousVars[203] += SExPts; - - while (MiscellaneousVars[203] > 15) // if (MiscellaneousVars[203] > 15) - { - MiscellaneousVars[203] -= 16; - SceptreLevelEXP += 1; - } - } - } -} - // script: Red Tunnel Vision/Heartbeat Effect when badly injured [HudMessage id 4] script "TunnelVisionControl" ENTER {