osrs-tools
Version:
A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information
1,086 lines (1,085 loc) • 33.3 kB
JavaScript
import { DEMONIC_PACTS_LEAGUES_7 } from "./DemonicPacts";
const DEMONIC_PACTS_BY_ID = new Map(DEMONIC_PACTS_LEAGUES_7.pacts.map((pact) => [pact.id, pact]));
function getPactOrThrow(pactId) {
const pact = DEMONIC_PACTS_BY_ID.get(pactId);
if (!pact) {
throw new Error(`Unknown demonic pact id: ${pactId}`);
}
return pact;
}
export class DemonicPactClass {
pactId;
constructor(pactId) {
this.pactId = pactId;
}
toPact() {
return getPactOrThrow(this.pactId);
}
}
export class RegenAmmoNode1 extends DemonicPactClass {
static pactId = "node1";
constructor() {
super(RegenAmmoNode1.pactId);
}
}
export class RangedRegenEchoChanceNode2 extends DemonicPactClass {
static pactId = "node2";
constructor() {
super(RangedRegenEchoChanceNode2.pactId);
}
}
export class BowAlwaysPassAccuracyNode3 extends DemonicPactClass {
static pactId = "node3";
constructor() {
super(BowAlwaysPassAccuracyNode3.pactId);
}
}
export class CrossbowEchoReprocChanceNode4 extends DemonicPactClass {
static pactId = "node4";
constructor() {
super(CrossbowEchoReprocChanceNode4.pactId);
}
}
export class ThrownMaxhitEchoesNode5 extends DemonicPactClass {
static pactId = "node5";
constructor() {
super(ThrownMaxhitEchoesNode5.pactId);
}
}
export class DefenceBoostNode6 extends DemonicPactClass {
static pactId = "node6";
constructor() {
super(DefenceBoostNode6.pactId);
}
}
export class AllStyleAccuracyNode7 extends DemonicPactClass {
static pactId = "node7";
constructor() {
super(AllStyleAccuracyNode7.pactId);
}
}
export class DefenceBoostNode8 extends DemonicPactClass {
static pactId = "node8";
constructor() {
super(DefenceBoostNode8.pactId);
}
}
export class MaxAccuracyRollFromRangeNode9 extends DemonicPactClass {
static pactId = "node9";
constructor() {
super(MaxAccuracyRollFromRangeNode9.pactId);
}
}
export class RegenAmmoNode10 extends DemonicPactClass {
static pactId = "node10";
constructor() {
super(RegenAmmoNode10.pactId);
}
}
export class AllStyleAccuracyNode11 extends DemonicPactClass {
static pactId = "node11";
constructor() {
super(AllStyleAccuracyNode11.pactId);
}
}
export class OffhandStatBoostNode12 extends DemonicPactClass {
static pactId = "node12";
constructor() {
super(OffhandStatBoostNode12.pactId);
}
}
export class PercentageRangedDamageNode13 extends DemonicPactClass {
static pactId = "node13";
constructor() {
super(PercentageRangedDamageNode13.pactId);
}
}
export class BuffedRangedPrayersNode14 extends DemonicPactClass {
static pactId = "node14";
constructor() {
super(BuffedRangedPrayersNode14.pactId);
}
}
export class PercentageRangedDamageNode15 extends DemonicPactClass {
static pactId = "node15";
constructor() {
super(PercentageRangedDamageNode15.pactId);
}
}
export class RangedStrengthHpDifferenceNode16 extends DemonicPactClass {
static pactId = "node16";
constructor() {
super(RangedStrengthHpDifferenceNode16.pactId);
}
}
export class PercentageRangedDamageNode17 extends DemonicPactClass {
static pactId = "node17";
constructor() {
super(PercentageRangedDamageNode17.pactId);
}
}
export class RangedEchoCyclicalNode18 extends DemonicPactClass {
static pactId = "node18";
constructor() {
super(RangedEchoCyclicalNode18.pactId);
}
}
export class PercentageRangedDamageNode19 extends DemonicPactClass {
static pactId = "node19";
constructor() {
super(PercentageRangedDamageNode19.pactId);
}
}
export class BowFastHitsNode20 extends DemonicPactClass {
static pactId = "node20";
constructor() {
super(BowFastHitsNode20.pactId);
}
}
export class CrossbowSlowBigHitsNode21 extends DemonicPactClass {
static pactId = "node21";
constructor() {
super(CrossbowSlowBigHitsNode21.pactId);
}
}
export class ThrownWeaponMeleeStrScaleNode22 extends DemonicPactClass {
static pactId = "node22";
constructor() {
super(ThrownWeaponMeleeStrScaleNode22.pactId);
}
}
export class PercentageRangedDamageNode23 extends DemonicPactClass {
static pactId = "node23";
constructor() {
super(PercentageRangedDamageNode23.pactId);
}
}
export class PercentageRangedDamageNode24 extends DemonicPactClass {
static pactId = "node24";
constructor() {
super(PercentageRangedDamageNode24.pactId);
}
}
export class PercentageRangedDamageNode25 extends DemonicPactClass {
static pactId = "node25";
constructor() {
super(PercentageRangedDamageNode25.pactId);
}
}
export class BowMinHitStackingIncreaseNode26 extends DemonicPactClass {
static pactId = "node26";
constructor() {
super(BowMinHitStackingIncreaseNode26.pactId);
}
}
export class PercentageRangedDamageNode27 extends DemonicPactClass {
static pactId = "node27";
constructor() {
super(PercentageRangedDamageNode27.pactId);
}
}
export class BowMaxHitStackingIncreaseNode28 extends DemonicPactClass {
static pactId = "node28";
constructor() {
super(BowMaxHitStackingIncreaseNode28.pactId);
}
}
export class CrossbowMaxHitNode29 extends DemonicPactClass {
static pactId = "node29";
constructor() {
super(CrossbowMaxHitNode29.pactId);
}
}
export class PercentageRangedDamageNode30 extends DemonicPactClass {
static pactId = "node30";
constructor() {
super(PercentageRangedDamageNode30.pactId);
}
}
export class CrossbowDoubleAccuracyRollNode31 extends DemonicPactClass {
static pactId = "node31";
constructor() {
super(CrossbowDoubleAccuracyRollNode31.pactId);
}
}
export class ThrownWeaponAccuracyNode32 extends DemonicPactClass {
static pactId = "node32";
constructor() {
super(ThrownWeaponAccuracyNode32.pactId);
}
}
export class PercentageRangedDamageNode33 extends DemonicPactClass {
static pactId = "node33";
constructor() {
super(PercentageRangedDamageNode33.pactId);
}
}
export class ThrownWeaponMultiNode34 extends DemonicPactClass {
static pactId = "node34";
constructor() {
super(ThrownWeaponMultiNode34.pactId);
}
}
export class RangedRegenEchoChanceNode38 extends DemonicPactClass {
static pactId = "node38";
constructor() {
super(RangedRegenEchoChanceNode38.pactId);
}
}
export class RangedRegenEchoChanceNode39 extends DemonicPactClass {
static pactId = "node39";
constructor() {
super(RangedRegenEchoChanceNode39.pactId);
}
}
export class MeleeRangeMultiplierNode43 extends DemonicPactClass {
static pactId = "node43";
constructor() {
super(MeleeRangeMultiplierNode43.pactId);
}
}
export class RegenMagicLevelBoostNode44 extends DemonicPactClass {
static pactId = "node44";
constructor() {
super(RegenMagicLevelBoostNode44.pactId);
}
}
export class AirruneRegenPrayerRestoreNode45 extends DemonicPactClass {
static pactId = "node45";
constructor() {
super(AirruneRegenPrayerRestoreNode45.pactId);
}
}
export class WaterruneRegenHealingNode46 extends DemonicPactClass {
static pactId = "node46";
constructor() {
super(WaterruneRegenHealingNode46.pactId);
}
}
export class FireruneRegenDamageBoostNode47 extends DemonicPactClass {
static pactId = "node47";
constructor() {
super(FireruneRegenDamageBoostNode47.pactId);
}
}
export class EarthruneRegenDefenceBoostNode48 extends DemonicPactClass {
static pactId = "node48";
constructor() {
super(EarthruneRegenDefenceBoostNode48.pactId);
}
}
export class RegenStaveChargesWaterNode53 extends DemonicPactClass {
static pactId = "node53";
constructor() {
super(RegenStaveChargesWaterNode53.pactId);
}
}
export class RegenStaveChargesFireNode54 extends DemonicPactClass {
static pactId = "node54";
constructor() {
super(RegenStaveChargesFireNode54.pactId);
}
}
export class AllStyleAccuracyNode55 extends DemonicPactClass {
static pactId = "node55";
constructor() {
super(AllStyleAccuracyNode55.pactId);
}
}
export class AllStyleAccuracyNode56 extends DemonicPactClass {
static pactId = "node56";
constructor() {
super(AllStyleAccuracyNode56.pactId);
}
}
export class AllStyleAccuracyNode57 extends DemonicPactClass {
static pactId = "node57";
constructor() {
super(AllStyleAccuracyNode57.pactId);
}
}
export class AllStyleAccuracyNode58 extends DemonicPactClass {
static pactId = "node58";
constructor() {
super(AllStyleAccuracyNode58.pactId);
}
}
export class OverhealingViaTalentsNode59 extends DemonicPactClass {
static pactId = "node59";
constructor() {
super(OverhealingViaTalentsNode59.pactId);
}
}
export class RegenAmmoNode60 extends DemonicPactClass {
static pactId = "node60";
constructor() {
super(RegenAmmoNode60.pactId);
}
}
export class DefenceBoostNode61 extends DemonicPactClass {
static pactId = "node61";
constructor() {
super(DefenceBoostNode61.pactId);
}
}
export class RegenAmmoNode62 extends DemonicPactClass {
static pactId = "node62";
constructor() {
super(RegenAmmoNode62.pactId);
}
}
export class DefenceBoostNode63 extends DemonicPactClass {
static pactId = "node63";
constructor() {
super(DefenceBoostNode63.pactId);
}
}
export class DefenceBoostNode64 extends DemonicPactClass {
static pactId = "node64";
constructor() {
super(DefenceBoostNode64.pactId);
}
}
export class MaxHitStyleSwapNode65 extends DemonicPactClass {
static pactId = "node65";
constructor() {
super(MaxHitStyleSwapNode65.pactId);
}
}
export class PrayerPenAllNode66 extends DemonicPactClass {
static pactId = "node66";
constructor() {
super(PrayerPenAllNode66.pactId);
}
}
export class PercentageMagicDamageNode67 extends DemonicPactClass {
static pactId = "node67";
constructor() {
super(PercentageMagicDamageNode67.pactId);
}
}
export class PercentageMagicDamageNode68 extends DemonicPactClass {
static pactId = "node68";
constructor() {
super(PercentageMagicDamageNode68.pactId);
}
}
export class PercentageMagicDamageNode69 extends DemonicPactClass {
static pactId = "node69";
constructor() {
super(PercentageMagicDamageNode69.pactId);
}
}
export class PercentageMagicDamageNode70 extends DemonicPactClass {
static pactId = "node70";
constructor() {
super(PercentageMagicDamageNode70.pactId);
}
}
export class ThornsDamageNode71 extends DemonicPactClass {
static pactId = "node71";
constructor() {
super(ThornsDamageNode71.pactId);
}
}
export class LightWeaponDoublehitNode72 extends DemonicPactClass {
static pactId = "node72";
constructor() {
super(LightWeaponDoublehitNode72.pactId);
}
}
export class FreeRandomWeaponAttackChanceNode73 extends DemonicPactClass {
static pactId = "node73";
constructor() {
super(FreeRandomWeaponAttackChanceNode73.pactId);
}
}
export class DistanceMeleeMinhitNode74 extends DemonicPactClass {
static pactId = "node74";
constructor() {
super(DistanceMeleeMinhitNode74.pactId);
}
}
export class MultiHitStrIncreaseNode79 extends DemonicPactClass {
static pactId = "node79";
constructor() {
super(MultiHitStrIncreaseNode79.pactId);
}
}
export class MeleeDistanceHealingChanceNode80 extends DemonicPactClass {
static pactId = "node80";
constructor() {
super(MeleeDistanceHealingChanceNode80.pactId);
}
}
export class DefenceBoostNode81 extends DemonicPactClass {
static pactId = "node81";
constructor() {
super(DefenceBoostNode81.pactId);
}
}
export class AllStyleAccuracyNode82 extends DemonicPactClass {
static pactId = "node82";
constructor() {
super(AllStyleAccuracyNode82.pactId);
}
}
export class AllStyleAccuracyNode83 extends DemonicPactClass {
static pactId = "node83";
constructor() {
super(AllStyleAccuracyNode83.pactId);
}
}
export class ShieldReflectNode84 extends DemonicPactClass {
static pactId = "node84";
constructor() {
super(ShieldReflectNode84.pactId);
}
}
export class SpecForFreeNode85 extends DemonicPactClass {
static pactId = "node85";
constructor() {
super(SpecForFreeNode85.pactId);
}
}
export class AllStyleAccuracyNode86 extends DemonicPactClass {
static pactId = "node86";
constructor() {
super(AllStyleAccuracyNode86.pactId);
}
}
export class RegenAmmoNode87 extends DemonicPactClass {
static pactId = "node87";
constructor() {
super(RegenAmmoNode87.pactId);
}
}
export class RestoreSaEnergyFromDistanceNode88 extends DemonicPactClass {
static pactId = "node88";
constructor() {
super(RestoreSaEnergyFromDistanceNode88.pactId);
}
}
export class PrayerPenAllNode91 extends DemonicPactClass {
static pactId = "node91";
constructor() {
super(PrayerPenAllNode91.pactId);
}
}
export class RegenAmmoNode92 extends DemonicPactClass {
static pactId = "node92";
constructor() {
super(RegenAmmoNode92.pactId);
}
}
export class RegenAmmoNode93 extends DemonicPactClass {
static pactId = "node93";
constructor() {
super(RegenAmmoNode93.pactId);
}
}
export class DefenceBoostNode94 extends DemonicPactClass {
static pactId = "node94";
constructor() {
super(DefenceBoostNode94.pactId);
}
}
export class DefenceBoostNode95 extends DemonicPactClass {
static pactId = "node95";
constructor() {
super(DefenceBoostNode95.pactId);
}
}
export class OverhealingViaTalentsNode96 extends DemonicPactClass {
static pactId = "node96";
constructor() {
super(OverhealingViaTalentsNode96.pactId);
}
}
export class PrayerPenAllNode97 extends DemonicPactClass {
static pactId = "node97";
constructor() {
super(PrayerPenAllNode97.pactId);
}
}
export class DefenceBoostNode98 extends DemonicPactClass {
static pactId = "node98";
constructor() {
super(DefenceBoostNode98.pactId);
}
}
export class DefenceBoostNode99 extends DemonicPactClass {
static pactId = "node99";
constructor() {
super(DefenceBoostNode99.pactId);
}
}
export class OverhealingViaTalentsNode100 extends DemonicPactClass {
static pactId = "node100";
constructor() {
super(OverhealingViaTalentsNode100.pactId);
}
}
export class PrayerPenAllNode101 extends DemonicPactClass {
static pactId = "node101";
constructor() {
super(PrayerPenAllNode101.pactId);
}
}
export class PrayerRestoreNoOverheadNode102 extends DemonicPactClass {
static pactId = "node102";
constructor() {
super(PrayerRestoreNoOverheadNode102.pactId);
}
}
export class PrayerPenAllNode103 extends DemonicPactClass {
static pactId = "node103";
constructor() {
super(PrayerPenAllNode103.pactId);
}
}
export class PrayerPenAllNode106 extends DemonicPactClass {
static pactId = "node106";
constructor() {
super(PrayerPenAllNode106.pactId);
}
}
export class AirSpellDamageActivePrayersNode107 extends DemonicPactClass {
static pactId = "node107";
constructor() {
super(AirSpellDamageActivePrayersNode107.pactId);
}
}
export class PercentageMagicDamageNode108 extends DemonicPactClass {
static pactId = "node108";
constructor() {
super(PercentageMagicDamageNode108.pactId);
}
}
export class AirSpellMaxHitPrayerBonusNode109 extends DemonicPactClass {
static pactId = "node109";
constructor() {
super(AirSpellMaxHitPrayerBonusNode109.pactId);
}
}
export class SmokeCountsAsAirNode111 extends DemonicPactClass {
static pactId = "node111";
constructor() {
super(SmokeCountsAsAirNode111.pactId);
}
}
export class WaterSpellDamageHighHpNode112 extends DemonicPactClass {
static pactId = "node112";
constructor() {
super(WaterSpellDamageHighHpNode112.pactId);
}
}
export class PercentageMagicDamageNode113 extends DemonicPactClass {
static pactId = "node113";
constructor() {
super(PercentageMagicDamageNode113.pactId);
}
}
export class WaterSpellBouceHealNode114 extends DemonicPactClass {
static pactId = "node114";
constructor() {
super(WaterSpellBouceHealNode114.pactId);
}
}
export class FireHpConsumeForDamageNode117 extends DemonicPactClass {
static pactId = "node117";
constructor() {
super(FireHpConsumeForDamageNode117.pactId);
}
}
export class PercentageMagicDamageNode118 extends DemonicPactClass {
static pactId = "node118";
constructor() {
super(PercentageMagicDamageNode118.pactId);
}
}
export class FireSpellBurnBounceNode119 extends DemonicPactClass {
static pactId = "node119";
constructor() {
super(FireSpellBurnBounceNode119.pactId);
}
}
export class MagicAttackSpeedTraditionalNode122 extends DemonicPactClass {
static pactId = "node122";
constructor() {
super(MagicAttackSpeedTraditionalNode122.pactId);
}
}
export class IceCountsAsWaterNode123 extends DemonicPactClass {
static pactId = "node123";
constructor() {
super(IceCountsAsWaterNode123.pactId);
}
}
export class BloodCountsAsFireNode124 extends DemonicPactClass {
static pactId = "node124";
constructor() {
super(BloodCountsAsFireNode124.pactId);
}
}
export class EarthReduceDefenceNode127 extends DemonicPactClass {
static pactId = "node127";
constructor() {
super(EarthReduceDefenceNode127.pactId);
}
}
export class PercentageMagicDamageNode128 extends DemonicPactClass {
static pactId = "node128";
constructor() {
super(PercentageMagicDamageNode128.pactId);
}
}
export class EarthScaleDefenceStatNode129 extends DemonicPactClass {
static pactId = "node129";
constructor() {
super(EarthScaleDefenceStatNode129.pactId);
}
}
export class ShadowCountsAsEarthNode131 extends DemonicPactClass {
static pactId = "node131";
constructor() {
super(ShadowCountsAsEarthNode131.pactId);
}
}
export class MagicAttackSpeedPoweredNode133 extends DemonicPactClass {
static pactId = "node133";
constructor() {
super(MagicAttackSpeedPoweredNode133.pactId);
}
}
export class PrayerPenAllNode134 extends DemonicPactClass {
static pactId = "node134";
constructor() {
super(PrayerPenAllNode134.pactId);
}
}
export class ShieldBlockHealNode135 extends DemonicPactClass {
static pactId = "node135";
constructor() {
super(ShieldBlockHealNode135.pactId);
}
}
export class PrayerPenAllNode136 extends DemonicPactClass {
static pactId = "node136";
constructor() {
super(PrayerPenAllNode136.pactId);
}
}
export class DefenceRecoilScalingNode139 extends DemonicPactClass {
static pactId = "node139";
constructor() {
super(DefenceRecoilScalingNode139.pactId);
}
}
export class PercentageMeleeDamageNode140 extends DemonicPactClass {
static pactId = "node140";
constructor() {
super(PercentageMeleeDamageNode140.pactId);
}
}
export class ThornsDoubleHitNode141 extends DemonicPactClass {
static pactId = "node141";
constructor() {
super(ThornsDoubleHitNode141.pactId);
}
}
export class LightWeaponFasterNode142 extends DemonicPactClass {
static pactId = "node142";
constructor() {
super(LightWeaponFasterNode142.pactId);
}
}
export class PercentageMeleeDamageNode143 extends DemonicPactClass {
static pactId = "node143";
constructor() {
super(PercentageMeleeDamageNode143.pactId);
}
}
export class HitRestoreSpecEnergyNode144 extends DemonicPactClass {
static pactId = "node144";
constructor() {
super(HitRestoreSpecEnergyNode144.pactId);
}
}
export class PercentageMeleeDamageNode145 extends DemonicPactClass {
static pactId = "node145";
constructor() {
super(PercentageMeleeDamageNode145.pactId);
}
}
export class MeleeDistanceHealingChanceNode146 extends DemonicPactClass {
static pactId = "node146";
constructor() {
super(MeleeDistanceHealingChanceNode146.pactId);
}
}
export class UniqueBlindbagChanceNode150 extends DemonicPactClass {
static pactId = "node150";
constructor() {
super(UniqueBlindbagChanceNode150.pactId);
}
}
export class PercentageMeleeDamageNode151 extends DemonicPactClass {
static pactId = "node151";
constructor() {
super(PercentageMeleeDamageNode151.pactId);
}
}
export class UniqueBlindbagDamageNode152 extends DemonicPactClass {
static pactId = "node152";
constructor() {
super(UniqueBlindbagDamageNode152.pactId);
}
}
export class PercentageMeleeMaxhitDistanceNode153 extends DemonicPactClass {
static pactId = "node153";
constructor() {
super(PercentageMeleeMaxhitDistanceNode153.pactId);
}
}
export class PercentageMeleeDamageNode154 extends DemonicPactClass {
static pactId = "node154";
constructor() {
super(PercentageMeleeDamageNode154.pactId);
}
}
export class MeleeRangeConditionalBoostNode155 extends DemonicPactClass {
static pactId = "node155";
constructor() {
super(MeleeRangeConditionalBoostNode155.pactId);
}
}
export class PercentageMeleeDamageNode156 extends DemonicPactClass {
static pactId = "node156";
constructor() {
super(PercentageMeleeDamageNode156.pactId);
}
}
export class Pact2hMeleeEchosNode157 extends DemonicPactClass {
static pactId = "node157";
constructor() {
super(Pact2hMeleeEchosNode157.pactId);
}
}
export class PercentageMeleeDamageNode161 extends DemonicPactClass {
static pactId = "node161";
constructor() {
super(PercentageMeleeDamageNode161.pactId);
}
}
export class MeleeStrengthPrayerBonusNode162 extends DemonicPactClass {
static pactId = "node162";
constructor() {
super(MeleeStrengthPrayerBonusNode162.pactId);
}
}
export class PercentageMeleeDamageNode163 extends DemonicPactClass {
static pactId = "node163";
constructor() {
super(PercentageMeleeDamageNode163.pactId);
}
}
export class PrayerPenAllNode164 extends DemonicPactClass {
static pactId = "node164";
constructor() {
super(PrayerPenAllNode164.pactId);
}
}
export class OverhealConsumptionBoostNode165 extends DemonicPactClass {
static pactId = "node165";
constructor() {
super(OverhealConsumptionBoostNode165.pactId);
}
}
export class RegenStaveChargesAirNode166 extends DemonicPactClass {
static pactId = "node166";
constructor() {
super(RegenStaveChargesAirNode166.pactId);
}
}
export class RegenStaveChargesEarthNode167 extends DemonicPactClass {
static pactId = "node167";
constructor() {
super(RegenStaveChargesEarthNode167.pactId);
}
}
export const ALL_DEMONIC_PACT_CLASSES = [
RegenAmmoNode1,
RangedRegenEchoChanceNode2,
BowAlwaysPassAccuracyNode3,
CrossbowEchoReprocChanceNode4,
ThrownMaxhitEchoesNode5,
DefenceBoostNode6,
AllStyleAccuracyNode7,
DefenceBoostNode8,
MaxAccuracyRollFromRangeNode9,
RegenAmmoNode10,
AllStyleAccuracyNode11,
OffhandStatBoostNode12,
PercentageRangedDamageNode13,
BuffedRangedPrayersNode14,
PercentageRangedDamageNode15,
RangedStrengthHpDifferenceNode16,
PercentageRangedDamageNode17,
RangedEchoCyclicalNode18,
PercentageRangedDamageNode19,
BowFastHitsNode20,
CrossbowSlowBigHitsNode21,
ThrownWeaponMeleeStrScaleNode22,
PercentageRangedDamageNode23,
PercentageRangedDamageNode24,
PercentageRangedDamageNode25,
BowMinHitStackingIncreaseNode26,
PercentageRangedDamageNode27,
BowMaxHitStackingIncreaseNode28,
CrossbowMaxHitNode29,
PercentageRangedDamageNode30,
CrossbowDoubleAccuracyRollNode31,
ThrownWeaponAccuracyNode32,
PercentageRangedDamageNode33,
ThrownWeaponMultiNode34,
RangedRegenEchoChanceNode38,
RangedRegenEchoChanceNode39,
MeleeRangeMultiplierNode43,
RegenMagicLevelBoostNode44,
AirruneRegenPrayerRestoreNode45,
WaterruneRegenHealingNode46,
FireruneRegenDamageBoostNode47,
EarthruneRegenDefenceBoostNode48,
RegenStaveChargesWaterNode53,
RegenStaveChargesFireNode54,
AllStyleAccuracyNode55,
AllStyleAccuracyNode56,
AllStyleAccuracyNode57,
AllStyleAccuracyNode58,
OverhealingViaTalentsNode59,
RegenAmmoNode60,
DefenceBoostNode61,
RegenAmmoNode62,
DefenceBoostNode63,
DefenceBoostNode64,
MaxHitStyleSwapNode65,
PrayerPenAllNode66,
PercentageMagicDamageNode67,
PercentageMagicDamageNode68,
PercentageMagicDamageNode69,
PercentageMagicDamageNode70,
ThornsDamageNode71,
LightWeaponDoublehitNode72,
FreeRandomWeaponAttackChanceNode73,
DistanceMeleeMinhitNode74,
MultiHitStrIncreaseNode79,
MeleeDistanceHealingChanceNode80,
DefenceBoostNode81,
AllStyleAccuracyNode82,
AllStyleAccuracyNode83,
ShieldReflectNode84,
SpecForFreeNode85,
AllStyleAccuracyNode86,
RegenAmmoNode87,
RestoreSaEnergyFromDistanceNode88,
PrayerPenAllNode91,
RegenAmmoNode92,
RegenAmmoNode93,
DefenceBoostNode94,
DefenceBoostNode95,
OverhealingViaTalentsNode96,
PrayerPenAllNode97,
DefenceBoostNode98,
DefenceBoostNode99,
OverhealingViaTalentsNode100,
PrayerPenAllNode101,
PrayerRestoreNoOverheadNode102,
PrayerPenAllNode103,
PrayerPenAllNode106,
AirSpellDamageActivePrayersNode107,
PercentageMagicDamageNode108,
AirSpellMaxHitPrayerBonusNode109,
SmokeCountsAsAirNode111,
WaterSpellDamageHighHpNode112,
PercentageMagicDamageNode113,
WaterSpellBouceHealNode114,
FireHpConsumeForDamageNode117,
PercentageMagicDamageNode118,
FireSpellBurnBounceNode119,
MagicAttackSpeedTraditionalNode122,
IceCountsAsWaterNode123,
BloodCountsAsFireNode124,
EarthReduceDefenceNode127,
PercentageMagicDamageNode128,
EarthScaleDefenceStatNode129,
ShadowCountsAsEarthNode131,
MagicAttackSpeedPoweredNode133,
PrayerPenAllNode134,
ShieldBlockHealNode135,
PrayerPenAllNode136,
DefenceRecoilScalingNode139,
PercentageMeleeDamageNode140,
ThornsDoubleHitNode141,
LightWeaponFasterNode142,
PercentageMeleeDamageNode143,
HitRestoreSpecEnergyNode144,
PercentageMeleeDamageNode145,
MeleeDistanceHealingChanceNode146,
UniqueBlindbagChanceNode150,
PercentageMeleeDamageNode151,
UniqueBlindbagDamageNode152,
PercentageMeleeMaxhitDistanceNode153,
PercentageMeleeDamageNode154,
MeleeRangeConditionalBoostNode155,
PercentageMeleeDamageNode156,
Pact2hMeleeEchosNode157,
PercentageMeleeDamageNode161,
MeleeStrengthPrayerBonusNode162,
PercentageMeleeDamageNode163,
PrayerPenAllNode164,
OverhealConsumptionBoostNode165,
RegenStaveChargesAirNode166,
RegenStaveChargesEarthNode167,
];
export const DEMONIC_PACT_CLASS_BY_ID = Object.freeze({
"node1": RegenAmmoNode1,
"node2": RangedRegenEchoChanceNode2,
"node3": BowAlwaysPassAccuracyNode3,
"node4": CrossbowEchoReprocChanceNode4,
"node5": ThrownMaxhitEchoesNode5,
"node6": DefenceBoostNode6,
"node7": AllStyleAccuracyNode7,
"node8": DefenceBoostNode8,
"node9": MaxAccuracyRollFromRangeNode9,
"node10": RegenAmmoNode10,
"node11": AllStyleAccuracyNode11,
"node12": OffhandStatBoostNode12,
"node13": PercentageRangedDamageNode13,
"node14": BuffedRangedPrayersNode14,
"node15": PercentageRangedDamageNode15,
"node16": RangedStrengthHpDifferenceNode16,
"node17": PercentageRangedDamageNode17,
"node18": RangedEchoCyclicalNode18,
"node19": PercentageRangedDamageNode19,
"node20": BowFastHitsNode20,
"node21": CrossbowSlowBigHitsNode21,
"node22": ThrownWeaponMeleeStrScaleNode22,
"node23": PercentageRangedDamageNode23,
"node24": PercentageRangedDamageNode24,
"node25": PercentageRangedDamageNode25,
"node26": BowMinHitStackingIncreaseNode26,
"node27": PercentageRangedDamageNode27,
"node28": BowMaxHitStackingIncreaseNode28,
"node29": CrossbowMaxHitNode29,
"node30": PercentageRangedDamageNode30,
"node31": CrossbowDoubleAccuracyRollNode31,
"node32": ThrownWeaponAccuracyNode32,
"node33": PercentageRangedDamageNode33,
"node34": ThrownWeaponMultiNode34,
"node38": RangedRegenEchoChanceNode38,
"node39": RangedRegenEchoChanceNode39,
"node43": MeleeRangeMultiplierNode43,
"node44": RegenMagicLevelBoostNode44,
"node45": AirruneRegenPrayerRestoreNode45,
"node46": WaterruneRegenHealingNode46,
"node47": FireruneRegenDamageBoostNode47,
"node48": EarthruneRegenDefenceBoostNode48,
"node53": RegenStaveChargesWaterNode53,
"node54": RegenStaveChargesFireNode54,
"node55": AllStyleAccuracyNode55,
"node56": AllStyleAccuracyNode56,
"node57": AllStyleAccuracyNode57,
"node58": AllStyleAccuracyNode58,
"node59": OverhealingViaTalentsNode59,
"node60": RegenAmmoNode60,
"node61": DefenceBoostNode61,
"node62": RegenAmmoNode62,
"node63": DefenceBoostNode63,
"node64": DefenceBoostNode64,
"node65": MaxHitStyleSwapNode65,
"node66": PrayerPenAllNode66,
"node67": PercentageMagicDamageNode67,
"node68": PercentageMagicDamageNode68,
"node69": PercentageMagicDamageNode69,
"node70": PercentageMagicDamageNode70,
"node71": ThornsDamageNode71,
"node72": LightWeaponDoublehitNode72,
"node73": FreeRandomWeaponAttackChanceNode73,
"node74": DistanceMeleeMinhitNode74,
"node79": MultiHitStrIncreaseNode79,
"node80": MeleeDistanceHealingChanceNode80,
"node81": DefenceBoostNode81,
"node82": AllStyleAccuracyNode82,
"node83": AllStyleAccuracyNode83,
"node84": ShieldReflectNode84,
"node85": SpecForFreeNode85,
"node86": AllStyleAccuracyNode86,
"node87": RegenAmmoNode87,
"node88": RestoreSaEnergyFromDistanceNode88,
"node91": PrayerPenAllNode91,
"node92": RegenAmmoNode92,
"node93": RegenAmmoNode93,
"node94": DefenceBoostNode94,
"node95": DefenceBoostNode95,
"node96": OverhealingViaTalentsNode96,
"node97": PrayerPenAllNode97,
"node98": DefenceBoostNode98,
"node99": DefenceBoostNode99,
"node100": OverhealingViaTalentsNode100,
"node101": PrayerPenAllNode101,
"node102": PrayerRestoreNoOverheadNode102,
"node103": PrayerPenAllNode103,
"node106": PrayerPenAllNode106,
"node107": AirSpellDamageActivePrayersNode107,
"node108": PercentageMagicDamageNode108,
"node109": AirSpellMaxHitPrayerBonusNode109,
"node111": SmokeCountsAsAirNode111,
"node112": WaterSpellDamageHighHpNode112,
"node113": PercentageMagicDamageNode113,
"node114": WaterSpellBouceHealNode114,
"node117": FireHpConsumeForDamageNode117,
"node118": PercentageMagicDamageNode118,
"node119": FireSpellBurnBounceNode119,
"node122": MagicAttackSpeedTraditionalNode122,
"node123": IceCountsAsWaterNode123,
"node124": BloodCountsAsFireNode124,
"node127": EarthReduceDefenceNode127,
"node128": PercentageMagicDamageNode128,
"node129": EarthScaleDefenceStatNode129,
"node131": ShadowCountsAsEarthNode131,
"node133": MagicAttackSpeedPoweredNode133,
"node134": PrayerPenAllNode134,
"node135": ShieldBlockHealNode135,
"node136": PrayerPenAllNode136,
"node139": DefenceRecoilScalingNode139,
"node140": PercentageMeleeDamageNode140,
"node141": ThornsDoubleHitNode141,
"node142": LightWeaponFasterNode142,
"node143": PercentageMeleeDamageNode143,
"node144": HitRestoreSpecEnergyNode144,
"node145": PercentageMeleeDamageNode145,
"node146": MeleeDistanceHealingChanceNode146,
"node150": UniqueBlindbagChanceNode150,
"node151": PercentageMeleeDamageNode151,
"node152": UniqueBlindbagDamageNode152,
"node153": PercentageMeleeMaxhitDistanceNode153,
"node154": PercentageMeleeDamageNode154,
"node155": MeleeRangeConditionalBoostNode155,
"node156": PercentageMeleeDamageNode156,
"node157": Pact2hMeleeEchosNode157,
"node161": PercentageMeleeDamageNode161,
"node162": MeleeStrengthPrayerBonusNode162,
"node163": PercentageMeleeDamageNode163,
"node164": PrayerPenAllNode164,
"node165": OverhealConsumptionBoostNode165,
"node166": RegenStaveChargesAirNode166,
"node167": RegenStaveChargesEarthNode167,
});
export function createDemonicPactClassById(pactId) {
const PactClass = DEMONIC_PACT_CLASS_BY_ID[pactId];
if (!PactClass) {
throw new Error(`No demonic pact class exists for id: ${pactId}`);
}
return new PactClass();
}