UNPKG

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
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(); }