diff --git a/src/components/info/banners/app_banner.tsx b/src/components/info/banners/app_banner.tsx index e90b7437d..e17e4747e 100644 --- a/src/components/info/banners/app_banner.tsx +++ b/src/components/info/banners/app_banner.tsx @@ -3,7 +3,7 @@ import { useTheme } from 'context/useTheme' const AppBanner = () => { const { isDark } = useTheme() - const name = '2022-tzeentch-battletome' + const name = '2022-october-faqs' return ( { variant={isDark ? `info` : `info`} > - NEW: Tzeentch battletome has been added! + NEW: October 2022 FAQs have been added! ) diff --git a/src/factions/beasts_of_chaos/battle_traits.ts b/src/factions/beasts_of_chaos/battle_traits.ts index bf514386c..c59bddbc8 100644 --- a/src/factions/beasts_of_chaos/battle_traits.ts +++ b/src/factions/beasts_of_chaos/battle_traits.ts @@ -166,9 +166,9 @@ const BattleTraits = { effects: [ { name: `Primal Roar`, - desc: `Roll a D6. On a 1, nothing happens. On a 2-5, you receive 1 primordial call point. On a 6, you receive 3 primordial call points.`, + desc: `Roll a dice. On a 3+, you receive 1 primordial call point.`, when: [END_OF_CHARGE_PHASE], - rule_sources: [rule_sources.WHITE_DWARF_FEBRUARY_2022], + rule_sources: [rule_sources.WHITE_DWARF_FEBRUARY_2022, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Feast on Flesh`, diff --git a/src/factions/beasts_of_chaos/rule_sources.ts b/src/factions/beasts_of_chaos/rule_sources.ts index fef22cdc5..47c43413b 100644 --- a/src/factions/beasts_of_chaos/rule_sources.ts +++ b/src/factions/beasts_of_chaos/rule_sources.ts @@ -22,6 +22,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2018/10/HYzly0qA0Pc3PJS2.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2018/10/Z4yU8A75ZhwQjNSv.pdf', + }, } export default rule_sources diff --git a/src/factions/beasts_of_chaos/spells.ts b/src/factions/beasts_of_chaos/spells.ts index 20b5b0054..b64f4f33c 100644 --- a/src/factions/beasts_of_chaos/spells.ts +++ b/src/factions/beasts_of_chaos/spells.ts @@ -102,8 +102,9 @@ const Spells = { effects: [ { name: `Devolve`, - desc: `Casting value of 7. Pick an enemy unit within 18" of the caster that is visible to them and not within 3" of any friendly units. Your opponent must move that unit up to 2D6" so that each model in the unit ends its move as close as possible to a model from the friendly unit that was closest to it at the start of the move.`, + desc: `Casting value of 7. Pick an enemy unit within 18" of the caster that is visible to them and not within 3" of any friendly units. If it is possible to do so, your opponent must make a normal move with that unit of up to 2D6" so that each model in the unit ends its move as close as possible to a model from the friendly unit that was closest to it at the start of the move.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, @@ -120,8 +121,9 @@ const Spells = { effects: [ { name: `Boon of Mutation`, - desc: `Casting value of 7. Pick an enemy unit within 18" of the caster and visible to them. That unit suffers D3 mortal wounds. For each enemy model slain by these mortal wounds, you can add 1 new TZAANGOR model to a single friendly TZAANGORS unit. Each new TZAANGOR model must be set up wholly within 12" of the caster and within 1" of the unit they are being added to.`, + desc: `Casting value of 7 and a range of 18". Pick 1 enemy unit within range and visible to the caster. That unit suffers D3 mortal wounds. For each model that is slain by a mortal wound caused by this spell, you can add 1 Tzaangor model that is not a Tzaangor Champion or Tzaangor Mutant to a friendly TZAANGOR HOST within 12" of the caster. Set up models that are added to a unit one at a time within 1" of the unit they are being added to. Models that are added to a unit can only be set up within 3" of an enemy unit if a model from their unit is already within 3" of that enemy unit. The models added to a unit can take it above its maximum size.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/beasts_of_chaos/units.ts b/src/factions/beasts_of_chaos/units.ts index a527eaf89..5150a530b 100644 --- a/src/factions/beasts_of_chaos/units.ts +++ b/src/factions/beasts_of_chaos/units.ts @@ -370,15 +370,23 @@ const Units = { }, 'Tzaangor Skyfires': { effects: [ + { + name: `Champion`, + desc: `The leader of this unit is an Aviarch. Add 1 to the Attacks characteristic of that model's Arrow of Fate.`, + when: [SHOOTING_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], + }, { name: `Guided by the Future`, - desc: `In the combat phase, you can reroll hit and wound rolls for attacks made by this unit if no enemy units within 3" of this unit have already fought in that phase.`, - when: [COMBAT_PHASE], + desc: `Ignore negative modifiers to hit rolls or wound rolls for attacks made with missile weapons by this unit, and ignore positive modifiers to save rolls for attacks made with missile weapons by this unit.`, + when: [SHOOTING_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Judgement from Afar`, - desc: `An unmodified hit roll of 6 for an attack made with an Arrow of Fate inflicts D3 mortal wounds on the target and the attack sequence ends (do not make a wound or save roll).`, + desc: `If the unmodified hit roll for an attack made with an Arrow of Fate is 6, the target suffers D3 mortal wounds and the attack sequence ends (do not make a wound roll or save roll).`, when: [SHOOTING_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, @@ -387,75 +395,75 @@ const Units = { spells: [keyPicker(Spells, ['Boon of Mutation'])], }, effects: [ + GenericEffects.WizardOneSpellEffect, { name: `Sorcerous Elixir`, - desc: `Once per battle, in your hero phase, this model can attempt to cast one additional spell. If it does so, you can reroll the casting roll for that spell.`, - when: [HERO_PHASE], - }, - { - name: `Visions of the Future`, - desc: `Add 1 to hit rolls for attacks made with a friendly TZAANGOR SKYFIRE unit's Arrows of Fate while that unit is wholly within 12" of a friendly TZAANGOR SHAMAN.`, - when: [SHOOTING_PHASE], - }, - { - name: `Visions of the Past`, - desc: `Add 1 to hit rolls for attacks made with a friendly TZAANGOR ENLIGHTENED unit's Tzeentchian Spears and Vicious Beaks while that unit is wholly within 12" of a friendly TZAANGOR SHAMAN.`, - when: [COMBAT_PHASE], - }, - { - name: `Magic`, - desc: `This model is a WIZARD. It can attempt to cast one spell in your hero phase, and attempt to unbind one spell in the enemy hero phase. It knows the Arcane Bolt, Mystic Shield and Boon of Mutation spells.`, + desc: `Once per battle, in your hero phase, this unit can attempt to cast 1 extra spell. If it does so, you can add 3 to the casting roll for that spell.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, 'Tzaangor Enlightened': { effects: [ + { + name: `Champion`, + desc: `1 model in this unit can be an Aviarch. Add 1 to the Attacks characteristic of that model's Tzeentchian Spear.`, + when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], + }, { name: `Babbling Stream of Secrets`, - desc: `If an enemy unit fails a battleshock test within 9" of any friendly TZAANGOR ENLIGHTENED units, add 1 to the number of models that flee.`, - when: [BATTLESHOCK_PHASE], + desc: `In the combat phase, enemy units within 3" of any friendly units with this ability cannot receive commands.`, + when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Guided by the Past`, - desc: `In the combat phase, you can reroll hit and wound rolls for attacks made by this unit if any enemy units within 3" of this unit have already fought in that phase.`, + desc: `You can add 1 to wound rolls for attacks made with melee weapons by friendly units with this ability if you are taking the second turn in the current battle round. This ability does not affect attacks made by a mount.`, when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, Tzaangors: { effects: [ { - name: `Twistbray`, - desc: `The leader of this unit is a Twistbray. Add 1 to hit rolls for attacks made with a Twistbray's melee weapons.`, + name: `Champion`, + desc: `1 model in this unit can be a Twistbray. Add 1 to the Attacks characteristic of that model's melee weapons.`, when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, { - name: `Icon Bearers`, - desc: `While this unit has any Icon Bearers, it can use the Ornate Totems ability.`, + name: `Standard Bearer`, + desc: `1 in every 10 models in this unit can be an Icon Bearer. While this unit includes any Icon Bearers, it can use the Ornate Totems ability.`, when: [START_OF_HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, - BrayhornEffect, - GenericEffects.ArcaniteShieldEffect, { - name: `Destined Mayhem`, - desc: `Add 1 to wound rolls for attacks made by this unit with melee weapons while this unit is wholly within 12" of any friendly ARCANITE HEROES.`, - when: [COMBAT_PHASE], + name: `Musician`, + desc: `1 in every 10 models in this unit can be a Brayhorn Blower. While this unit includes any Brayhorn Blowers, it can run and still charge later in the turn.`, + when: [MOVEMENT_PHASE, CHARGE_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, { - name: `Paired Savage Blades`, - desc: `Add 1 to hit rolls for attacks made with a pair of Savage Blades.`, + name: `Tzaangor Mutant`, + desc: `1 in every 5 models in this unit can be a Tzaangor Mutant armed with a pair of Savage Blades and Vicious Beak. Add 1 to the Attacks characteristic of that model's pair of Savage Blades.`, when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, + GenericEffects.ArcaniteShieldEffect, { name: `Savagery Unleashed`, - desc: `Add 1 to the Attacks characteristic of this unit's melee weapons if it has at least 9 models when the attacks are being made.`, + desc: `Add 1 to the Attacks characteristic of this unit's Vicious Beaks if it made a charge move in the same turn.`, when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Ornate Totems`, - desc: `While this unit has one or more Icon Bearers, at the start of your hero phase you can pick an enemy unit within 18" of this unit and visible to it. Then, roll a number of dice equal to the number of WIZARD units that are within 9" of this unit. For each 4+ that enemy unit suffers 1 mortal wound.`, + desc: `While this unit includes any Icon Bearers, at the start of your hero phase, you can pick 1 enemy unit within 18" of this unit that is visible to it and roll 1 dice for each Wizard that is within 9" of this unit. For each 4+, the unit you picked suffers 1 mortal wound.`, when: [START_OF_HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_BEASTS_OF_CHAOS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/cities_of_sigmar/flavors.ts b/src/factions/cities_of_sigmar/flavors.ts index 9d0d0d47e..732a28da8 100644 --- a/src/factions/cities_of_sigmar/flavors.ts +++ b/src/factions/cities_of_sigmar/flavors.ts @@ -134,9 +134,13 @@ const Flavors = { }, { name: `Mages of the Whitefire Court`, - desc: `HALLOWHEART WIZARDS can attempt to cast 1 extra spell in your hero phase. In addition, HALLOWHEART WIZARDS know 2 spells from the Lore of Whitefire (pg 75) instead of 1.`, + desc: `HALLOWHEART WIZARDS can attempt to cast 1 extra spell in your hero phase. In addition, when you pick a spell from the Lore of Whitefire (pg 75) for a friendly HALLOWHEART WIZARD to know, if it is the first time you have picked a spell from that spell lore for that WIZARD, you can pick a second spell from that spell lore for that WIZARD to know as well.`, when: [HERO_PHASE], - rule_source: [rule_sources.BATTLETOME_CITIES_OF_SIGMAR, rule_sources.ERRATA_AUGUST_2021], + rule_sources: [ + rule_sources.BATTLETOME_CITIES_OF_SIGMAR, + rule_sources.ERRATA_AUGUST_2021, + rule_sources.ERRATA_OCTOBER_2022, + ], }, ], }, diff --git a/src/factions/cities_of_sigmar/rule_sources.ts b/src/factions/cities_of_sigmar/rule_sources.ts index 7f128434d..53a4c3e46 100644 --- a/src/factions/cities_of_sigmar/rule_sources.ts +++ b/src/factions/cities_of_sigmar/rule_sources.ts @@ -18,6 +18,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/10/OGOJxSXwXA2ArN7d.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/10/9ZnJjc7zaC674ZaY.pdf', + }, } export default rule_sources diff --git a/src/factions/flesh_eater_courts/rule_sources.ts b/src/factions/flesh_eater_courts/rule_sources.ts index 1eecec671..e54dfd2d6 100644 --- a/src/factions/flesh_eater_courts/rule_sources.ts +++ b/src/factions/flesh_eater_courts/rule_sources.ts @@ -18,6 +18,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/ugVroWjM8JLcLMLd.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/YycRW11IwpyhGToB.pdf', + }, } export default rule_sources diff --git a/src/factions/flesh_eater_courts/spells.ts b/src/factions/flesh_eater_courts/spells.ts index 7a46320a7..5326ac587 100644 --- a/src/factions/flesh_eater_courts/spells.ts +++ b/src/factions/flesh_eater_courts/spells.ts @@ -1,5 +1,6 @@ import { tagAs } from 'factions/metatagger' import { COMBAT_PHASE, HERO_PHASE } from 'types/phases' +import rule_sources from './rule_sources' const Spells = { Bonestorm: { @@ -15,8 +16,9 @@ const Spells = { effects: [ { name: `Spectral Host`, - desc: `Casting value of 6. Pick 1 friendly unit wholly within 12" of the caster that is visible to them. That unit can fly until your next hero phase. If that unit can already fly, until your next hero phase it can run and still charge in the same turn. If the casting roll was 10 or more, you can pick up to 3 friendly units to be affected by the spell instead of 1.`, + desc: `Casting value of 6. Pick 1 friendly unit wholly within 12" of the caster that is visible to them. That unit can fly until your next hero phase. If that unit can already fly, until your next hero phase, it can run and still charge in the same turn. If the casting roll was 10 or more, you can pick up to 3 different friendly units to be affected by the spell instead of 1.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_FLESH_EATER_COURTS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/gloomspite_gitz/rule_sources.ts b/src/factions/gloomspite_gitz/rule_sources.ts index 35766c3f4..5f0c28bbb 100644 --- a/src/factions/gloomspite_gitz/rule_sources.ts +++ b/src/factions/gloomspite_gitz/rule_sources.ts @@ -18,6 +18,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/15OewpHIqpgF1d8I.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/NhxmzLVEU40WVKtx.pdf', + }, } export default rule_sources diff --git a/src/factions/gloomspite_gitz/spells.ts b/src/factions/gloomspite_gitz/spells.ts index 6a53a641e..287daed39 100644 --- a/src/factions/gloomspite_gitz/spells.ts +++ b/src/factions/gloomspite_gitz/spells.ts @@ -154,8 +154,9 @@ const Spells = { effects: [ { name: `Face of Da Bad Moon`, - desc: `Casting value of 5. Pick 1 enemy unit within 3" of the caster that is visible to them. That unit must make a normal move, and must retreat. If it is impossible for the unit to make the move for any reason, it suffers D6 mortal wounds instead.`, + desc: `Casting value of 5. Pick 1 enemy unit within 3" of the caster that is visible to them. That unit must retreat. If it is impossible for the unit to make the move for any reason, it suffers D6 mortal wounds instead.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_GLOOMSPITE_GITZ, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/kharadron_overlords/battle_traits.ts b/src/factions/kharadron_overlords/battle_traits.ts index 25152a531..6b2a1d0ad 100644 --- a/src/factions/kharadron_overlords/battle_traits.ts +++ b/src/factions/kharadron_overlords/battle_traits.ts @@ -30,9 +30,9 @@ const BattleTraits = { }, { name: `Boots on the Ground`, - desc: `Pick 3 friendly units garrisoned in SKYVESSELS. You complete this battle tactic at the end of the turn if those units are all on the battlefield and wholly within enemy territory.`, + desc: `Pick 3 friendly units garrisoned in SKYVESSELS. You complete this battle tactic at the end of the turn if those units are all on the battlefield, are not garrisoned and are wholly within enemy territory.`, when: [START_OF_HERO_PHASE], - rule_sources: [rule_sources.WHITE_DWARF_MAY_2022], + rule_sources: [rule_sources.WHITE_DWARF_MAY_2022, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/kharadron_overlords/rule_sources.ts b/src/factions/kharadron_overlords/rule_sources.ts index aa21a87b0..0583b6a61 100644 --- a/src/factions/kharadron_overlords/rule_sources.ts +++ b/src/factions/kharadron_overlords/rule_sources.ts @@ -27,6 +27,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2018/06/yZSgwuU45O72wNtB.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2018/06/L1l9ZHIAyq7tBRbT.pdf', + }, } export default rule_sources diff --git a/src/factions/kharadron_overlords/units.ts b/src/factions/kharadron_overlords/units.ts index a71349c38..d69e236af 100644 --- a/src/factions/kharadron_overlords/units.ts +++ b/src/factions/kharadron_overlords/units.ts @@ -21,7 +21,7 @@ const FlyingTransportEffect = { name: `Flying Transport`, desc: `This model can fly, and can be garrisoned by up to 15 (25 if IRONCLAD) friendly Marine models even though it is not a terrain feature. If this unit is in a warscroll battalion, other units in the same battalion that can garrison this unit can be set up as this unit's garrison when this unit is set up. - Halve this model's Move characteristic and it cannot Fly High if there are 11 (16 if IRONCLAD) or more models in its garrison. Units cannot join or leave this model's garrison if it has made a move or flown high in the same phase (they can join or leave before it does so). Models in the garrison are not counted towards gaining control of an objective. + Halve this model's Move characteristic and it cannot Fly High if there are 11 (16 if IRONCLAD) or more models in its garrison. Units cannot join or leave this model's garrison if it has made a move or flown high in the same phase (they can join or leave before it does so). Models cannot contest objectives while garrisoning a SKYVESSEL. An attack made by a weapon that is in range of this model can target either this model or a unit in its garrison. If this model is destroyed, before it is removed from play, roll 1 dice for each model in its garrison. On a 1, that model is slain. Set up any surviving models wholly within 3" of this model and more than 3" from any enemy units. @@ -31,6 +31,7 @@ const FlyingTransportEffect = { rule_sources.BATTLETOME_KHARADRON_OVERLORDS, rule_sources.ERRATA_JANUARY_2021, rule_sources.ERRATA_JULY_2021, + rule_sources.ERRATA_OCTOBER_2022, ], shared: true, } diff --git a/src/factions/legions_of_nagash/spells.ts b/src/factions/legions_of_nagash/spells.ts index a777ec321..445d4ef21 100644 --- a/src/factions/legions_of_nagash/spells.ts +++ b/src/factions/legions_of_nagash/spells.ts @@ -26,7 +26,7 @@ const Spells = { effects: [ { name: `Spectral Grasp (Deathmages)`, - desc: `Casting value of 6. Pick a terrain feature within 18" of the caster that is visible to them. Until your next hero phase, halve the Move characteristic (rounding down) of enemy units within 3" of any terrain features affected by any Spectral Grasp spells at the start of their movement phase.`, + desc: `Casting value of 6. Pick 1 terrain feature wholly within 18" of the caster that is visible to them. Until your next hero phase, if an enemy unit starts a normal move within 3" of that terrain feature, halve the Move characteristic (rounding down) of that unit until your next hero phase.`, when: [HERO_PHASE], }, ], diff --git a/src/factions/nighthaunt/rule_sources.ts b/src/factions/nighthaunt/rule_sources.ts index 9ac5bb558..ec4012c1e 100644 --- a/src/factions/nighthaunt/rule_sources.ts +++ b/src/factions/nighthaunt/rule_sources.ts @@ -8,6 +8,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/K4iAr34vBjsg1BaI.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/p2QjqiUdVWzSKpbn.pdf', + }, } export default rule_sources diff --git a/src/factions/nighthaunt/units.ts b/src/factions/nighthaunt/units.ts index 76f0ae68f..e19323f32 100644 --- a/src/factions/nighthaunt/units.ts +++ b/src/factions/nighthaunt/units.ts @@ -406,8 +406,9 @@ const Units = { GenericEffects.Elite, { name: `Drawn to War`, - desc: `Before you allocate a wound or mortal wound to a friendly Nighthaunt HERO, or instead of making a ward roll for a wound or mortal wound that would be allocated to that HERO, if any friendly units with this ability are within 3" of that HERO, you can roll a dice. On a 3+, that wound or mortal wound is allocated to a friendly unit with this ability instead of that HERO and cannot be negated.`, + desc: `Before you allocate a wound or mortal wound to a friendly NIGHTHAUNT HERO, or instead of making a ward roll for a wound or mortal wound that would be allocated to that HERO, if any friendly units with this ability are within 3" of that HERO, you can roll a dice. On a 3+, that wound or mortal wound is allocated to a friendly unit with this ability that is within 3" of that HERO instead of that HERO and cannot be negated.`, when: [WOUND_ALLOCATION_PHASE], + rule_sources: [rule_sources.BATTLETOME_NIGHTHAUNT, rule_sources.ERRATA_OCTOBER_2022], }, ], }, @@ -495,9 +496,10 @@ const Units = { 'Krulghast Cruciator': { effects: [ { - name: `Empowering Excruciation`, - desc: `If this unit is within 12" of any terrified units, subtract 1 from the damage inflicted (to a minimum of 1) by each successful attack that targets a friendly Nighthaunt unit wholly within 12" of this unit.`, + name: `Empowered Through Excruciation`, + desc: `If this unit is within 12" of any terrified units, subtract 1 from the damage inflicted (to a minimum of 1) by each successful attack that targets a friendly NIGHTHAUNT unit wholly within 12" of this unit. The same enemy unit cannot be affected by this ability more than once per phase.`, when: [SHOOTING_PHASE, COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_NIGHTHAUNT, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/orruk_warclans/kruleboyz/units.ts b/src/factions/orruk_warclans/kruleboyz/units.ts index d093933f4..5861f27be 100644 --- a/src/factions/orruk_warclans/kruleboyz/units.ts +++ b/src/factions/orruk_warclans/kruleboyz/units.ts @@ -16,6 +16,7 @@ import { WARDS_PHASE, WOUND_ALLOCATION_PHASE, } from 'types/phases' +import rule_sources from '../rule_sources' import spells from './spells' const AllPartOfDaPlanEffect = { @@ -105,12 +106,13 @@ const KruleboyzUnits = { }, { name: `Poisons and Elixers`, - desc: `In your hero phase, if this unit is more than 3" from all enemy units, instead of attempting to cast any spells with this unit, you can say that they are brewing either a poison or an elixir. If you do so, pick 1 friendly KRULEBOYZ ORRUK unit wholly within 12" of this unit, more than 3" from all enemy units and that has at least 1 model within 3" of this unit to be given that poison or elixir. A unit that has been given a poison or elixir cannot be given another poison or elixir in the same hero phase. + desc: `In your hero phase, if this unit is more than 3" from all enemy units, you can say that they are brewing either a poison or an elixir. If you do so, pick 1 friendly KRULEBOYZ ORRUK unit wholly within 12" of this unit, more than 3" from all enemy units and that has at least 1 model within 3" of this unit to be given that poison or elixir. A unit that has been given a poison or elixir cannot be given another poison or elixir in the same hero phase. If that unit is given a poison, until your next hero phase, when you use the Venom-crusted Weapons allegiance ability for that unit, mortal wounds are caused on an unmodified roll of 5+ instead of 6. If that unit is given an elixir, add 1 to save rolls for that unit until your next hero phase.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_ORRUK_WARCLANS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/orruk_warclans/rule_sources.ts b/src/factions/orruk_warclans/rule_sources.ts index ce412add3..f5a7d03b9 100644 --- a/src/factions/orruk_warclans/rule_sources.ts +++ b/src/factions/orruk_warclans/rule_sources.ts @@ -18,6 +18,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2020/07/ZHSSm4hs7Ud0plKY.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2020/07/koYAcRdlIdWRYJhN.pdf', + }, } export default rule_sources diff --git a/src/factions/ossiarch_bonereapers/rule_sources.ts b/src/factions/ossiarch_bonereapers/rule_sources.ts index 4487a0bcd..fbb362e3c 100644 --- a/src/factions/ossiarch_bonereapers/rule_sources.ts +++ b/src/factions/ossiarch_bonereapers/rule_sources.ts @@ -22,6 +22,11 @@ const rule_sources = { name: 'White Dwarf (January 2022)', type: 'white_dwarf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/11/Pep6tfaIjFE9BzDR.pdf', + }, } export default rule_sources diff --git a/src/factions/ossiarch_bonereapers/spells.ts b/src/factions/ossiarch_bonereapers/spells.ts index 2f181364d..055d5aa1a 100644 --- a/src/factions/ossiarch_bonereapers/spells.ts +++ b/src/factions/ossiarch_bonereapers/spells.ts @@ -40,8 +40,9 @@ const EmpowerNadiriteWeaponsEffect = { const ProtectionOfNagashEffect = { name: `Protection of Nagash`, - desc: `Casting value of 6. Roll a D6 each time a wound or mortal wounds is allocated to the caster. On a 5+, that wound or mortal wound is negated. If any wounds or mortal wounds are allocated to the caster and not negated, and the caster is not slain, remove them from the battlefield after all wounds or mortal wounds have been allocated. Then, set them up anywhere on the battlefield more than 9" from any enemy units. After setting up this model, this spell is unbound.`, + desc: `Casting value of 6. Roll a D6 each time a wound or mortal wounds is allocated to the caster. On a 5+, that wound or mortal wound is negated. If any wounds or mortal wounds are allocated to the caster and not negated, and the caster is not slain, remove them from the battlefield after all wounds or mortal wounds have been allocated. Then, set them up anywhere on the battlefield more than 9" from any enemy units. After setting up the model, or if the model cannot be removed from or set up on the battlefield, this spell is unbound.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_OSSIARCH_BONEREAPERS, rule_sources.ERRATA_OCTOBER_2022], shared: true, } diff --git a/src/factions/ossiarch_bonereapers/units.ts b/src/factions/ossiarch_bonereapers/units.ts index a34fd93c8..517a5969a 100644 --- a/src/factions/ossiarch_bonereapers/units.ts +++ b/src/factions/ossiarch_bonereapers/units.ts @@ -70,7 +70,7 @@ const Units = { effects: [ { name: `Bone Harvest`, - desc: `Roll a dice each time a model is slain within 3" of any models with this ability. On a 4+, you can pick 1 friendly OSSIARCH BONEREAPERS unit within 6" of this model. If you do so, and the slain model had a Wounds characteristic of: + desc: `Roll a dice each time a model is removed from play after being slain within 3" of any models with this ability. On a 4+, you can pick 1 friendly OSSIARCH BONEREAPERS unit within 6" of this model. If you do so, and the slain model had a Wounds characteristic of: 4 or less - you can heal 1 wound allocated to that unit 5-9 - you can heal up to D3 wounds allocated to that unit @@ -78,7 +78,11 @@ const Units = { If there are no wounds allocated to the unit you pick, you can return a number of slain models to that unit with a combined Wounds chacteristic that is equal to or less than the number of wounds you could have healed.`, when: [WOUND_ALLOCATION_PHASE], - rule_sources: [rule_sources.BATTLETOME_OSSIARCH_BONEREAPERS, rule_sources.ERRATA_JULY_2021], + rule_sources: [ + rule_sources.BATTLETOME_OSSIARCH_BONEREAPERS, + rule_sources.ERRATA_JULY_2021, + rule_sources.ERRATA_OCTOBER_2022, + ], }, { name: `Soulcrusher Bludgeons`, diff --git a/src/factions/skaven/flavors.ts b/src/factions/skaven/flavors.ts index 45aa3b90b..05b6a88eb 100644 --- a/src/factions/skaven/flavors.ts +++ b/src/factions/skaven/flavors.ts @@ -10,6 +10,7 @@ import { TURN_ONE_START_OF_ROUND, WOUND_ALLOCATION_PHASE, } from 'types/phases' +import rule_sources from './rule_sources' const Flavors = { Masterclan: { @@ -21,13 +22,15 @@ const Flavors = { }, { name: `Always Three Clawsteps Ahead`, - desc: `You can only use this ability if you include 3 or more MASTERCLAN HEROES in your starting army. After you pick a friendly SKAVEN unit to be your first unit to run in a phase and make a run roll for that unit, you can use that run roll in place of any other run rolls you make for friendly SKAVEN units until the end of that phase.`, + desc: `You can only use this ability if you include 3 or more MASTERCLAN HEROES in your starting army. After you pick a friendly Skaven unit to be your first unit to run in a phase and make a run roll for that unit, you can use that unmodified run roll in place of any other run rolls you make for friendly Skaven units until the end of that phase.`, when: [MOVEMENT_PHASE], + rule_sources: [rule_sources.BATTLETOME_SKAVEN, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Always Three Clawsteps Ahead`, desc: `You can only use this ability if you include 3 or more MASTERCLAN HEROES in your starting army. After you pick a friendly SKAVEN unit to be your first unit to attempt a charge in a phase and make a charge roll for that unit, you can use that charge roll in place of any other charge rolls you make for friendly SKAVEN units until the end of that phase.`, when: [CHARGE_PHASE], + rule_sources: [rule_sources.BATTLETOME_SKAVEN, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Always Three Clawsteps Ahead`, @@ -35,6 +38,7 @@ const Flavors = { Designer's Note: This ability does not prevent a unit from making another pile-in move when it is picked to fight.`, when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_SKAVEN, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/skaven/rule_sources.ts b/src/factions/skaven/rule_sources.ts index 4e710b391..4fff0c02e 100644 --- a/src/factions/skaven/rule_sources.ts +++ b/src/factions/skaven/rule_sources.ts @@ -3,6 +3,11 @@ const rule_sources = { name: 'Battletome: Skaven', type: 'battletome', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/MqngzVQxuC9OhX5q.pdf', + }, } export default rule_sources diff --git a/src/factions/soulblight_gravelords/rule_sources.ts b/src/factions/soulblight_gravelords/rule_sources.ts index e1a23790e..17facad93 100644 --- a/src/factions/soulblight_gravelords/rule_sources.ts +++ b/src/factions/soulblight_gravelords/rule_sources.ts @@ -22,6 +22,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2021/07/neE2fiW9jBAqtFJt.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2021/07/b7aMa7iJBXfm3UB8.pdf', + }, } export default rule_sources diff --git a/src/factions/soulblight_gravelords/spells.ts b/src/factions/soulblight_gravelords/spells.ts index 77c02d4cb..0651fb857 100644 --- a/src/factions/soulblight_gravelords/spells.ts +++ b/src/factions/soulblight_gravelords/spells.ts @@ -94,8 +94,9 @@ const Spells = { effects: [ { name: `Spectral Grasp`, - desc: `Casting value of 6. Pick 1 terrain feature wholly within 18" of the caster that is visible to them. Until your next hero phase, halve the Move characteristic (rounding down) of enemy units that start a normal move within 3" of that terrain feature.`, + desc: `Casting value of 6. Pick 1 terrain feature wholly within 18" of the caster that is visible to them. Until your next hero phase, if an enemy unit starts a normal move within 3" of that terrain feature, halve the Move characteristic (rounding down) of that unit until your next hero phase.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_SOULBLIGHT_GRAVELORDS, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/stormcast_eternals/endless_spells.ts b/src/factions/stormcast_eternals/endless_spells.ts index 4643634cb..bfe67e27c 100644 --- a/src/factions/stormcast_eternals/endless_spells.ts +++ b/src/factions/stormcast_eternals/endless_spells.ts @@ -1,14 +1,16 @@ import { tagAs } from 'factions/metatagger' import { GenericEffects } from 'generic_rules' import { COMBAT_PHASE, END_OF_HERO_PHASE, HERO_PHASE, SHOOTING_PHASE } from 'types/phases' +import rule_sources from './rule_sources' const EndlessSpells = { 'Celestian Vortex': { effects: [ { name: `Summoning`, - desc: `Casting value of 5 and range of 6". If successfully cast, set up the endless spell wholly within range and visible to the caster, and more than 1" from all models and other endless spells or invocations.`, + desc: `Casting value of 5 and range of 6". If successfully cast, set up the endless spell wholly within range and visible to the caster, and more than 1" from all models and other endless spells or invocations. Only STORMCAST ETERNALS WIZARDS can attempt to summon this endless spell.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_STORMCAST_ETERNALS, rule_sources.ERRATA_OCTOBER_2022], }, GenericEffects.Predatory.Eight_Inches, { @@ -31,8 +33,11 @@ const EndlessSpells = { For rules purposes, the caster and this endless spell are treated as a single model in the caster's army that uses the caster's warscroll as well as the endless spell rules (core rules, 19.3). A Wizard on a Dais Arcanum has a Move characteristic of 12" and can fly. - If the caster attempts to dispel this endless spell, it is automatically dispelled (do not make a dispelling roll). If the caster is slain, this endless spell is dispelled. If this endless spell is dispelled and the caster has not been slain, before removing the endless spell from play, set up the caster wholly within 6" of the endless spell and more than 3" from all enemy units.`, + If the caster attempts to dispel this endless spell, it is automatically dispelled (do not make a dispelling roll). If the caster is slain, this endless spell is dispelled. If this endless spell is dispelled and the caster has not been slain, before removing the endless spell from play, set up the caster wholly within 6" of the endless spell and more than 3" from all enemy units. + + Only STORMCAST ETERNALS WIZARDS can attempt to summon this endless spell.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_STORMCAST_ETERNALS, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Arcane Enhancement`, @@ -50,8 +55,9 @@ const EndlessSpells = { effects: [ { name: `Summoning`, - desc: `Casting value of 6 and range of 36". If successfully cast, set up the endless spell wholly within range and visible to the caster, and more than 1" from all models and other endless spells or invocations.`, + desc: `Casting value of 6 and range of 36". If successfully cast, set up the endless spell wholly within range and visible to the caster, and more than 1" from all models and other endless spells or invocations. Only STORMCAST ETERNALS WIZARDS can attempt to summon this endless spell.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_STORMCAST_ETERNALS, rule_sources.ERRATA_OCTOBER_2022], }, { name: `Arcane Disruption`, diff --git a/src/factions/stormcast_eternals/rule_sources.ts b/src/factions/stormcast_eternals/rule_sources.ts index 762ac00ce..e00089084 100644 --- a/src/factions/stormcast_eternals/rule_sources.ts +++ b/src/factions/stormcast_eternals/rule_sources.ts @@ -18,6 +18,11 @@ const rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/10/K12650xacakOrNCt.pdf', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/10/y8MJra9HoDU6VlqR.pdf', + }, } export default rule_sources diff --git a/src/factions/sylvaneth/battle_traits.ts b/src/factions/sylvaneth/battle_traits.ts index 607538a77..74dab8c85 100644 --- a/src/factions/sylvaneth/battle_traits.ts +++ b/src/factions/sylvaneth/battle_traits.ts @@ -10,6 +10,7 @@ import { START_OF_ROUND, WARDS_PHASE, } from 'types/phases' +import rule_sources from './rule_sources' const BattleTraits = { [SYLVANETH]: { @@ -33,8 +34,9 @@ const BattleTraits = { }, { name: `Strike and Fade`, - desc: `Once per turn, in your combat phase, immediately after a friendly SYLVANETH unit that is wholly within 9" of an overgrown terrain feature or friendly Awakened Wyldwood has fought, you can remove that unit from the battlefield and set it up again more than 9" from all enemy units and wholly within 9" of either a different overgrown terrain feature that is more than 3" from all enemy units or a different Awakened Wyldwood that is more than 3" from enemy units.`, + desc: `Once per turn, in your combat phase, immediately after a friendly Sylvaneth unit that is wholly within 9" of an overgrown terrain feature or friendly Awakened Wyldwood has fought and any slain models have been removed from play (core rules, 14.2), you can remove that unit from the battlefield and set it up again more than 9" from all enemy units and wholly within 9" of either a different overgrown terrain feature that is more than 3" from all enemy units or a different friendly Awakened Wyldwood that is more than 3" from all enemy units.`, when: [COMBAT_PHASE], + rule_sources: [rule_sources.BATTLETOME_SYLVANETH, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/sylvaneth/command_traits.ts b/src/factions/sylvaneth/command_traits.ts index a6ec39c8b..5054279e8 100644 --- a/src/factions/sylvaneth/command_traits.ts +++ b/src/factions/sylvaneth/command_traits.ts @@ -1,5 +1,6 @@ import { tagAs } from 'factions/metatagger' import { COMBAT_PHASE, HERO_PHASE, MOVEMENT_PHASE, SAVES_PHASE } from 'types/phases' +import rule_sources from './rule_sources' const CommandTraits = { 'Gnarled Warrior': { @@ -42,10 +43,9 @@ const CommandTraits = { effects: [ { name: `Spellsinger`, - desc: `When this general attempts to cast a spell, before making the roll, you can pick 1 friendly Awakened Wyldwood on the battlefield. - - If you do so and the spell is successfully cast and not unbound, you must measure the range and visibility for that spell from that friendly Awakened Wyldwood.`, + desc: `When this general attempts to cast a spell, before making the casting roll, you can pick 1 friendly Awakened Wyldwood on the battlefield. If you do so and the spell is successfully cast and not unbound, the range, visibility and effect of that spell can be measured from 1 scenery piece that is a part of that friendly Awakened Wyldwood. Spells that summon endless spells do not benefit from this effect.`, when: [HERO_PHASE], + rule_sources: [rule_sources.BATTLETOME_SYLVANETH, rule_sources.ERRATA_OCTOBER_2022], }, ], }, diff --git a/src/factions/sylvaneth/rule_sources.ts b/src/factions/sylvaneth/rule_sources.ts index fa8e9977b..39c394b43 100644 --- a/src/factions/sylvaneth/rule_sources.ts +++ b/src/factions/sylvaneth/rule_sources.ts @@ -3,6 +3,11 @@ const rule_sources = { name: 'Battletome: Sylvaneth', type: 'battletome', }, + ERRATA_OCTOBER_2022: { + name: 'Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/08/aYMD9OEkOOdb02oN.pdf', + }, } export default rule_sources diff --git a/src/factions/sylvaneth/units.ts b/src/factions/sylvaneth/units.ts index e3352b735..3c8c900ce 100644 --- a/src/factions/sylvaneth/units.ts +++ b/src/factions/sylvaneth/units.ts @@ -22,6 +22,7 @@ import { WOUND_ALLOCATION_PHASE, } from 'types/phases' import command_abilities from './command_abilities' +import rule_sources from './rule_sources' import scenery from './scenery' import spells from './spells' @@ -68,8 +69,9 @@ const BugRiderEffects = [ }, { name: `Thrumming with Life`, - desc: `At the end of each phase, if any models were slain by an attack made by this unit, you can heal all wounds allocated to this unit.`, + desc: `At the end of each phase, if any enemy models were slain by an attack made by this unit in that phase, you can heal all wounds allocated to this unit.`, when: [DURING_GAME, WOUND_ALLOCATION_PHASE], + rule_sources: [rule_sources.BATTLETOME_SYLVANETH, rule_sources.ERRATA_OCTOBER_2022], shared: true, }, ] diff --git a/src/generic_rules/core_rules.ts b/src/generic_rules/core_rules.ts index c9912a8cf..e2aabe0f2 100644 --- a/src/generic_rules/core_rules.ts +++ b/src/generic_rules/core_rules.ts @@ -121,9 +121,9 @@ const CoreRules: TEntry[] = [ effects: [ { name: `20.3 - Invocations`, - desc: `An invocation is a divine entity that is summoned to the battlefield by chanting the prayer on its invocation warscroll (see 24.0). Unless noted otherwise, an invocation cannot be attacked or be affected by abilities. You can move models across or through an invocation as if it were not there, but you cannot finish a model's move on an invocation. Invocations are under the command of the player who summoned them.`, + desc: `An invocation is a divine entity that is summoned to the battlefield by chanting the prayer on its invocation warscroll (see 24.0). Unless noted otherwise, an invocation cannot be attacked or be affected by abilities. You can move models across or through an invocation as if it were not there, but you cannot finish a model's move on an invocation. Invocations are under the command of the player who summoned them. After an invocation is removed from play (see 20.3.3), it can be summoned again if the prayer on its warscroll is successfully chanted in a different hero phase (it cannot be set up in the turn in which it is removed).`, when: [HERO_PHASE], - rule_sources: [meta_rule_sources.CORE_RULES_2021], + rule_sources: [meta_rule_sources.CORE_RULES_2021, meta_rule_sources.ERRATA_CORE_RULES_OCTOBER_2022], }, { name: `20.3.1 - Summoning Invocations`, diff --git a/src/generic_rules/realmscapes.ts b/src/generic_rules/realmscapes.ts index ce1500868..921ecb3d2 100644 --- a/src/generic_rules/realmscapes.ts +++ b/src/generic_rules/realmscapes.ts @@ -126,9 +126,11 @@ const Realmscapes: TEntry[] = [ }, { name: `Gaze of Ghur`, - desc: `Casting value of 7 and a range of 12". Pick 1 enemy unit within range and visible to the caster. When determining the number of models in that enemy unit that are contesting an objective, your opponent must halve that number, rounding down. All WIZARDS know the Gaze of Ghur in addition to any others that they know.`, + desc: `Gaze of Ghur is a spell that has a casting value of 7 and a range of 12". If successfully cast, pick 1 enemy unit within range and visible to the caster. Until your next hero phase, when determining the number of models in that enemy unit that are contesting an objective, your opponent must halve that number, rounding down. + + Designer's Note: Effects that modify the number of models a model counts as when contesting an objective are applied after effects that fix the number of models a model counts as when contesting an objective at a set value. For example, if a Mega-Gargant counts as 20 models because of the 'Mightier Makes Rightier' battle trait, 'Gaze of Ghur' would make that unit count as 10 models instead. `, when: [HERO_PHASE], - rule_sources: [meta_rule_sources.GHB_2022], + rule_sources: [meta_rule_sources.GHB_2022, meta_rule_sources.ERRATA_GHB_OCTOBER_2022], spell: true, // TODO: This doesn't appear in dropdowns }, { diff --git a/src/meta/rule_sources.ts b/src/meta/rule_sources.ts index 6c6997e71..4cd9d36c0 100644 --- a/src/meta/rule_sources.ts +++ b/src/meta/rule_sources.ts @@ -103,6 +103,11 @@ const meta_rule_sources = { type: 'errata', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/TKy3YFHtTFpL4ZVW.pdf', }, + ERRATA_CORE_RULES_OCTOBER_2022: { + name: 'Core Rules Errata (October 2022)', + type: 'errata', + url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/svhEUwlP6J1AQFXl.pdf', + }, GHB_2021: { name: "General's Handbook (2021)", @@ -117,6 +122,11 @@ const meta_rule_sources = { type: 'ghb', url: 'https://www.warhammer-community.com/wp-content/uploads/2019/07/Nx3vTlkaz7ekCv7J.pdf', }, + ERRATA_GHB_OCTOBER_2022: { + name: "General's Handbook Errata (October 2022)", + type: 'ghb', + url: 'https://www.warhammer-community.com/wp-content/uploads/2022/06/v1iepvOM3Oycl774.pdf', + }, CROSS_FACTION_HEROES_JULY_2022: { name: 'Cross Faction Heroes (July 2022)',