Skip to content

Commit

Permalink
Merge pull request #73 from wowsims/talent-trees
Browse files Browse the repository at this point in the history
Fix Talent Tree locks
  • Loading branch information
rosenrusinov authored Apr 14, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
2 parents 30d2668 + b324db1 commit edf6811
Showing 12 changed files with 84 additions and 24 deletions.
1 change: 1 addition & 0 deletions ui/core/player_spec.ts
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@ export abstract class PlayerSpec<SpecType extends Spec> {
static weaponTypes: EligibleWeaponType[];
static rangedWeaponTypes: RangedWeaponType[];

abstract readonly specIndex: number;
abstract readonly specID: SpecType;
abstract readonly classID: SpecClasses<SpecType>;
abstract readonly friendlyName: string;
6 changes: 6 additions & 0 deletions ui/core/player_specs/death_knight.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class BloodDeathKnight extends PlayerSpec<Spec.SpecBloodDeathKnight> {
static specIndex = 0;
static specID = Spec.SpecBloodDeathKnight as Spec.SpecBloodDeathKnight;
static classID = Class.ClassDeathKnight as Class.ClassDeathKnight;
static friendlyName = 'Blood';
@@ -16,6 +17,7 @@ export class BloodDeathKnight extends PlayerSpec<Spec.SpecBloodDeathKnight> {

static canDualWield = true;

readonly specIndex = BloodDeathKnight.specIndex;
readonly specID = BloodDeathKnight.specID;
readonly classID = BloodDeathKnight.classID;
readonly friendlyName = BloodDeathKnight.friendlyName;
@@ -38,6 +40,7 @@ export class BloodDeathKnight extends PlayerSpec<Spec.SpecBloodDeathKnight> {
}

export class FrostDeathKnight extends PlayerSpec<Spec.SpecFrostDeathKnight> {
static specIndex = 1;
static specID = Spec.SpecFrostDeathKnight as Spec.SpecFrostDeathKnight;
static classID = Class.ClassDeathKnight as Class.ClassDeathKnight;
static friendlyName = 'Frost';
@@ -50,6 +53,7 @@ export class FrostDeathKnight extends PlayerSpec<Spec.SpecFrostDeathKnight> {

static canDualWield = true;

readonly specIndex = FrostDeathKnight.specIndex;
readonly specID = FrostDeathKnight.specID;
readonly classID = FrostDeathKnight.classID;
readonly friendlyName = FrostDeathKnight.friendlyName;
@@ -72,6 +76,7 @@ export class FrostDeathKnight extends PlayerSpec<Spec.SpecFrostDeathKnight> {
}

export class UnholyDeathKnight extends PlayerSpec<Spec.SpecUnholyDeathKnight> {
static specIndex = 2;
static specID = Spec.SpecUnholyDeathKnight as Spec.SpecUnholyDeathKnight;
static classID = Class.ClassDeathKnight as Class.ClassDeathKnight;
static friendlyName = 'Unholy';
@@ -84,6 +89,7 @@ export class UnholyDeathKnight extends PlayerSpec<Spec.SpecUnholyDeathKnight> {

static canDualWield = true;

readonly specIndex = UnholyDeathKnight.specIndex;
readonly specID = UnholyDeathKnight.specID;
readonly classID = UnholyDeathKnight.classID;
readonly friendlyName = UnholyDeathKnight.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/druid.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class BalanceDruid extends PlayerSpec<Spec.SpecBalanceDruid> {
static specIndex = 0;
static specID = Spec.SpecBalanceDruid as Spec.SpecBalanceDruid;
static classID = Class.ClassDruid as Class.ClassDruid;
static friendlyName = 'Balance';
@@ -16,6 +17,7 @@ export class BalanceDruid extends PlayerSpec<Spec.SpecBalanceDruid> {

static canDualWield = false;

readonly specIndex = BalanceDruid.specIndex;
readonly specID = BalanceDruid.specID;
readonly classID = BalanceDruid.classID;
readonly friendlyName = BalanceDruid.friendlyName;
@@ -38,6 +40,7 @@ export class BalanceDruid extends PlayerSpec<Spec.SpecBalanceDruid> {
}

export class FeralDruid extends PlayerSpec<Spec.SpecFeralDruid> {
static specIndex = 1;
static specID = Spec.SpecFeralDruid as Spec.SpecFeralDruid;
static classID = Class.ClassDruid as Class.ClassDruid;
static friendlyName = 'Feral';
@@ -50,6 +53,7 @@ export class FeralDruid extends PlayerSpec<Spec.SpecFeralDruid> {

static canDualWield = false;

readonly specIndex = FeralDruid.specIndex;
readonly specID = FeralDruid.specID;
readonly classID = FeralDruid.classID;
readonly friendlyName = FeralDruid.friendlyName;
@@ -72,6 +76,7 @@ export class FeralDruid extends PlayerSpec<Spec.SpecFeralDruid> {
}

export class RestorationDruid extends PlayerSpec<Spec.SpecRestorationDruid> {
static specIndex = 2;
static specID = Spec.SpecRestorationDruid as Spec.SpecRestorationDruid;
static classID = Class.ClassDruid as Class.ClassDruid;
static friendlyName = 'Restoration';
@@ -84,6 +89,7 @@ export class RestorationDruid extends PlayerSpec<Spec.SpecRestorationDruid> {

static canDualWield = false;

readonly specIndex = RestorationDruid.specIndex;
readonly specID = RestorationDruid.specID;
readonly classID = RestorationDruid.classID;
readonly friendlyName = RestorationDruid.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/hunter.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class BeastMasteryHunter extends PlayerSpec<Spec.SpecBeastMasteryHunter> {
static specIndex = 0;
static specID = Spec.SpecBeastMasteryHunter as Spec.SpecBeastMasteryHunter;
static classID = Class.ClassHunter as Class.ClassHunter;
static friendlyName = 'Beast Mastery';
@@ -16,6 +17,7 @@ export class BeastMasteryHunter extends PlayerSpec<Spec.SpecBeastMasteryHunter>

static canDualWield = true;

readonly specIndex = BeastMasteryHunter.specIndex;
readonly specID = BeastMasteryHunter.specID;
readonly classID = BeastMasteryHunter.classID;
readonly friendlyName = BeastMasteryHunter.friendlyName;
@@ -38,6 +40,7 @@ export class BeastMasteryHunter extends PlayerSpec<Spec.SpecBeastMasteryHunter>
}

export class MarksmanshipHunter extends PlayerSpec<Spec.SpecMarksmanshipHunter> {
static specIndex = 1;
static specID = Spec.SpecMarksmanshipHunter as Spec.SpecMarksmanshipHunter;
static classID = Class.ClassHunter as Class.ClassHunter;
static friendlyName = 'Marksmanship';
@@ -50,6 +53,7 @@ export class MarksmanshipHunter extends PlayerSpec<Spec.SpecMarksmanshipHunter>

static canDualWield = true;

readonly specIndex = MarksmanshipHunter.specIndex;
readonly specID = MarksmanshipHunter.specID;
readonly classID = MarksmanshipHunter.classID;
readonly friendlyName = MarksmanshipHunter.friendlyName;
@@ -72,6 +76,7 @@ export class MarksmanshipHunter extends PlayerSpec<Spec.SpecMarksmanshipHunter>
}

export class SurvivalHunter extends PlayerSpec<Spec.SpecSurvivalHunter> {
static specIndex = 2;
static specID = Spec.SpecSurvivalHunter as Spec.SpecSurvivalHunter;
static classID = Class.ClassHunter as Class.ClassHunter;
static friendlyName = 'Survival';
@@ -84,6 +89,7 @@ export class SurvivalHunter extends PlayerSpec<Spec.SpecSurvivalHunter> {

static canDualWield = true;

readonly specIndex = SurvivalHunter.specIndex;
readonly specID = SurvivalHunter.specID;
readonly classID = SurvivalHunter.classID;
readonly friendlyName = SurvivalHunter.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/mage.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class ArcaneMage extends PlayerSpec<Spec.SpecArcaneMage> {
static specIndex = 0;
static specID = Spec.SpecArcaneMage as Spec.SpecArcaneMage;
static classID = Class.ClassMage as Class.ClassMage;
static friendlyName = 'Arcane';
@@ -16,6 +17,7 @@ export class ArcaneMage extends PlayerSpec<Spec.SpecArcaneMage> {

static canDualWield = false;

readonly specIndex = ArcaneMage.specIndex;
readonly specID = ArcaneMage.specID;
readonly classID = ArcaneMage.classID;
readonly friendlyName = ArcaneMage.friendlyName;
@@ -38,6 +40,7 @@ export class ArcaneMage extends PlayerSpec<Spec.SpecArcaneMage> {
}

export class FireMage extends PlayerSpec<Spec.SpecFireMage> {
static specIndex = 1;
static specID = Spec.SpecFireMage as Spec.SpecFireMage;
static classID = Class.ClassMage as Class.ClassMage;
static friendlyName = 'Fire';
@@ -50,6 +53,7 @@ export class FireMage extends PlayerSpec<Spec.SpecFireMage> {

static canDualWield = false;

readonly specIndex = FireMage.specIndex;
readonly specID = FireMage.specID;
readonly classID = FireMage.classID;
readonly friendlyName = FireMage.friendlyName;
@@ -72,6 +76,7 @@ export class FireMage extends PlayerSpec<Spec.SpecFireMage> {
}

export class FrostMage extends PlayerSpec<Spec.SpecFrostMage> {
static specIndex = 2;
static specID = Spec.SpecFrostMage as Spec.SpecFrostMage;
static classID = Class.ClassMage as Class.ClassMage;
static friendlyName = 'Frost';
@@ -84,6 +89,7 @@ export class FrostMage extends PlayerSpec<Spec.SpecFrostMage> {

static canDualWield = false;

readonly specIndex = FrostMage.specIndex;
readonly specID = FrostMage.specID;
readonly classID = FrostMage.classID;
readonly friendlyName = FrostMage.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/paladin.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class HolyPaladin extends PlayerSpec<Spec.SpecHolyPaladin> {
static specIndex = 0;
static specID = Spec.SpecHolyPaladin as Spec.SpecHolyPaladin;
static classID = Class.ClassPaladin as Class.ClassPaladin;
static friendlyName = 'Holy';
@@ -16,6 +17,7 @@ export class HolyPaladin extends PlayerSpec<Spec.SpecHolyPaladin> {

static canDualWield = false;

readonly specIndex = HolyPaladin.specIndex;
readonly specID = HolyPaladin.specID;
readonly classID = HolyPaladin.classID;
readonly friendlyName = HolyPaladin.friendlyName;
@@ -38,6 +40,7 @@ export class HolyPaladin extends PlayerSpec<Spec.SpecHolyPaladin> {
}

export class ProtectionPaladin extends PlayerSpec<Spec.SpecProtectionPaladin> {
static specIndex = 1;
static specID = Spec.SpecProtectionPaladin as Spec.SpecProtectionPaladin;
static classID = Class.ClassPaladin as Class.ClassPaladin;
static friendlyName = 'Protection';
@@ -50,6 +53,7 @@ export class ProtectionPaladin extends PlayerSpec<Spec.SpecProtectionPaladin> {

static canDualWield = false;

readonly specIndex = ProtectionPaladin.specIndex;
readonly specID = ProtectionPaladin.specID;
readonly classID = ProtectionPaladin.classID;
readonly friendlyName = ProtectionPaladin.friendlyName;
@@ -72,6 +76,7 @@ export class ProtectionPaladin extends PlayerSpec<Spec.SpecProtectionPaladin> {
}

export class RetributionPaladin extends PlayerSpec<Spec.SpecRetributionPaladin> {
static specIndex = 2;
static specID = Spec.SpecRetributionPaladin as Spec.SpecRetributionPaladin;
static classID = Class.ClassPaladin as Class.ClassPaladin;
static friendlyName = 'Retribution';
@@ -84,6 +89,7 @@ export class RetributionPaladin extends PlayerSpec<Spec.SpecRetributionPaladin>

static canDualWield = false;

readonly specIndex = RetributionPaladin.specIndex;
readonly specID = RetributionPaladin.specID;
readonly classID = RetributionPaladin.classID;
readonly friendlyName = RetributionPaladin.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/priest.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class DisciplinePriest extends PlayerSpec<Spec.SpecDisciplinePriest> {
static specIndex = 0;
static specID = Spec.SpecDisciplinePriest as Spec.SpecDisciplinePriest;
static classID = Class.ClassPriest as Class.ClassPriest;
static friendlyName = 'Discipline';
@@ -16,6 +17,7 @@ export class DisciplinePriest extends PlayerSpec<Spec.SpecDisciplinePriest> {

static canDualWield = false;

readonly specIndex = DisciplinePriest.specIndex;
readonly specID = DisciplinePriest.specID;
readonly classID = DisciplinePriest.classID;
readonly friendlyName = DisciplinePriest.friendlyName;
@@ -38,6 +40,7 @@ export class DisciplinePriest extends PlayerSpec<Spec.SpecDisciplinePriest> {
}

export class HolyPriest extends PlayerSpec<Spec.SpecHolyPriest> {
static specIndex = 1;
static specID = Spec.SpecHolyPriest as Spec.SpecHolyPriest;
static classID = Class.ClassPriest as Class.ClassPriest;
static friendlyName = 'Holy';
@@ -50,6 +53,7 @@ export class HolyPriest extends PlayerSpec<Spec.SpecHolyPriest> {

static canDualWield = false;

readonly specIndex = HolyPriest.specIndex;
readonly specID = HolyPriest.specID;
readonly classID = HolyPriest.classID;
readonly friendlyName = HolyPriest.friendlyName;
@@ -72,6 +76,7 @@ export class HolyPriest extends PlayerSpec<Spec.SpecHolyPriest> {
}

export class ShadowPriest extends PlayerSpec<Spec.SpecShadowPriest> {
static specIndex = 2;
static specID = Spec.SpecShadowPriest as Spec.SpecShadowPriest;
static classID = Class.ClassPriest as Class.ClassPriest;
static friendlyName = 'Shadow';
@@ -84,6 +89,7 @@ export class ShadowPriest extends PlayerSpec<Spec.SpecShadowPriest> {

static canDualWield = false;

readonly specIndex = ShadowPriest.specIndex;
readonly specID = ShadowPriest.specID;
readonly classID = ShadowPriest.classID;
readonly friendlyName = ShadowPriest.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/rogue.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class AssassinationRogue extends PlayerSpec<Spec.SpecAssassinationRogue> {
static specIndex = 0;
static specID = Spec.SpecAssassinationRogue as Spec.SpecAssassinationRogue;
static classID = Class.ClassRogue as Class.ClassRogue;
static friendlyName = 'Assassination';
@@ -16,6 +17,7 @@ export class AssassinationRogue extends PlayerSpec<Spec.SpecAssassinationRogue>

static canDualWield = true;

readonly specIndex = AssassinationRogue.specIndex;
readonly specID = AssassinationRogue.specID;
readonly classID = AssassinationRogue.classID;
readonly friendlyName = AssassinationRogue.friendlyName;
@@ -38,6 +40,7 @@ export class AssassinationRogue extends PlayerSpec<Spec.SpecAssassinationRogue>
}

export class CombatRogue extends PlayerSpec<Spec.SpecCombatRogue> {
static specIndex = 1;
static specID = Spec.SpecCombatRogue as Spec.SpecCombatRogue;
static classID = Class.ClassRogue as Class.ClassRogue;
static friendlyName = 'Combat';
@@ -50,6 +53,7 @@ export class CombatRogue extends PlayerSpec<Spec.SpecCombatRogue> {

static canDualWield = true;

readonly specIndex = CombatRogue.specIndex;
readonly specID = CombatRogue.specID;
readonly classID = CombatRogue.classID;
readonly friendlyName = CombatRogue.friendlyName;
@@ -72,6 +76,7 @@ export class CombatRogue extends PlayerSpec<Spec.SpecCombatRogue> {
}

export class SubtletyRogue extends PlayerSpec<Spec.SpecSubtletyRogue> {
static specIndex = 2;
static specID = Spec.SpecSubtletyRogue as Spec.SpecSubtletyRogue;
static classID = Class.ClassRogue as Class.ClassRogue;
static friendlyName = 'Subtlety';
@@ -84,6 +89,7 @@ export class SubtletyRogue extends PlayerSpec<Spec.SpecSubtletyRogue> {

static canDualWield = true;

readonly specIndex = SubtletyRogue.specIndex;
readonly specID = SubtletyRogue.specID;
readonly classID = SubtletyRogue.classID;
readonly friendlyName = SubtletyRogue.friendlyName;
6 changes: 6 additions & 0 deletions ui/core/player_specs/shaman.ts
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ import { Class, Spec } from '../proto/common';
import { getSpecSiteUrl } from '../proto_utils/utils';

export class ElementalShaman extends PlayerSpec<Spec.SpecElementalShaman> {
static specIndex = 0;
static specID = Spec.SpecElementalShaman as Spec.SpecElementalShaman;
static classID = Class.ClassShaman as Class.ClassShaman;
static friendlyName = 'Elemental';
@@ -16,6 +17,7 @@ export class ElementalShaman extends PlayerSpec<Spec.SpecElementalShaman> {

static canDualWield = false;

readonly specIndex = ElementalShaman.specIndex;
readonly specID = ElementalShaman.specID;
readonly classID = ElementalShaman.classID;
readonly friendlyName = ElementalShaman.friendlyName;
@@ -38,6 +40,7 @@ export class ElementalShaman extends PlayerSpec<Spec.SpecElementalShaman> {
}

export class EnhancementShaman extends PlayerSpec<Spec.SpecEnhancementShaman> {
static specIndex = 1;
static specID = Spec.SpecEnhancementShaman as Spec.SpecEnhancementShaman;
static classID = Class.ClassShaman as Class.ClassShaman;
static friendlyName = 'Enhancement';
@@ -50,6 +53,7 @@ export class EnhancementShaman extends PlayerSpec<Spec.SpecEnhancementShaman> {

static canDualWield = true;

readonly specIndex = EnhancementShaman.specIndex;
readonly specID = EnhancementShaman.specID;
readonly classID = EnhancementShaman.classID;
readonly friendlyName = EnhancementShaman.friendlyName;
@@ -72,6 +76,7 @@ export class EnhancementShaman extends PlayerSpec<Spec.SpecEnhancementShaman> {
}

export class RestorationShaman extends PlayerSpec<Spec.SpecRestorationShaman> {
static specIndex = 2;
static specID = Spec.SpecRestorationShaman as Spec.SpecRestorationShaman;
static classID = Class.ClassShaman as Class.ClassShaman;
static friendlyName = 'Restoration';
@@ -84,6 +89,7 @@ export class RestorationShaman extends PlayerSpec<Spec.SpecRestorationShaman> {

static canDualWield = false;

readonly specIndex = RestorationShaman.specIndex;
readonly specID = RestorationShaman.specID;
readonly classID = RestorationShaman.classID;
readonly friendlyName = RestorationShaman.friendlyName;
Loading

0 comments on commit edf6811

Please sign in to comment.