Skip to content

Commit

Permalink
Add Mawpit and Gorger Mawpack (#1673)
Browse files Browse the repository at this point in the history
* Fix clean script to handle dashes for spells

* Add Mawpit and Gorger Mawpack

* Update artifacts.ts

* Fix some bad grammer and typos

* Update endless_spells.ts
  • Loading branch information
daviseford authored Nov 27, 2023
1 parent e816545 commit 1df6b4b
Show file tree
Hide file tree
Showing 32 changed files with 105 additions and 52 deletions.
4 changes: 2 additions & 2 deletions clean.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ const replaceOptions = {
/(?<!:)(?<=desc: `.+[\w()])[,(/#!$^&;=\-_~]`/g, // Replace trailing punctuation with periods in descriptions
/(?<!:)(?<=desc: `.+[\w()])[.]+`/g, // Replace trailing ellipses with one period
/(?<!:)(?<=desc: `.+\w)`/g, // Add a period to descriptions
/(?<=[desc]: `)[\w' ]+ has a casting value of+(?=.+`)/g, // Shorten casting descriptions
/(?<=[desc]: `)[\w' -]+ has a casting value of+(?=.+`)/g, // Shorten casting descriptions
/(?<=\. )If successfully cast, pick+(?=.+`)/g, // Shorten casting descriptions
/(?<=[desc]: `)[\w' ]+ is a prayer that has an answer value of+(?=.+`)/g, // Shorten prayer descriptions
/(?<=[desc]: `)[\w' -]+ is a prayer that has an answer value of+(?=.+`)/g, // Shorten prayer descriptions
/R[eE] ?- ?[rR][oO][lL]{2}/g, // Handle "Re - roll" -> "Reroll"
/r[eE] ?- ?[rR][oO][lL]{2}/g, // Handle "re-roll" -> "reroll"
],
Expand Down
4 changes: 2 additions & 2 deletions src/factions/beasts_of_chaos/units.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ const Units = {
effects: [
{
name: `Dual Axes`,
desc: `If the unmodified hit roll for an attack made with a melee weapon by this unit is 6, that attack causes a number of mortal wounds to the target equal to the weapon's Damage characteristic and the attack sequence ends (do not make a wound roll or save roll).`,
desc: `If the unmodified hit roll for an attack made with a melee weapon by this unit is 6, that attack causes a number of mortal wounds to the target equal to the weapon's Damage characteristic and the attack sequence ends (do not make a wound roll or save roll).`,
when: [COMBAT_PHASE],
},
{
Expand Down Expand Up @@ -450,7 +450,7 @@ const Units = {
ChampionEffect,
{
name: `Guided by the Future`,
desc: `Ignore negative modifiers to hit or wound rolls for attacks made with missle weapons by this unit, and ignore positive modifiers to save rolls for attacks made with missle weapons by this unit.`,
desc: `Ignore negative modifiers to hit 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],
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/factions/cities_of_sigmar/artifacts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ const Artifacts = {
effects: [
{
name: `Traitor's Banner (Har Kuron)`,
desc: `Subtract 1 from missle attack hit rolls made against units wholly within 12" of the bearer.`,
desc: `Subtract 1 from missile attack hit rolls made against units wholly within 12" of the bearer.`,
when: [SHOOTING_PHASE],
},
],
Expand Down
6 changes: 3 additions & 3 deletions src/factions/cities_of_sigmar/spells.ts
Original file line number Diff line number Diff line change
Expand Up @@ -275,12 +275,12 @@ const Spells = {
effects: [
{
name: `Illuminate (Settler's Gain)`,
desc: `Casting value of 6. Pick 1 enemy unit within 12" of the caster and visible. Until your next hero phase add 1 to missle hit rolls targeting that unit.`,
desc: `Casting value of 6. Pick 1 enemy unit within 12" of the caster and visible. Until your next hero phase add 1 to missile hit rolls targeting that unit.`,
when: [HERO_PHASE],
},
{
name: `Illuminate (Settler's Gain)`,
desc: `If active, add 1 to missle hit rolls targeting the debuffed unit.`,
desc: `If active, add 1 to missile hit rolls targeting the debuffed unit.`,
when: [SHOOTING_PHASE],
},
],
Expand Down Expand Up @@ -442,7 +442,7 @@ const Spells = {
effects: [
{
name: `Armour of Thorns`,
desc: `7+ casting value. Pick 1 friendly WANDERERS unit wholly within 18" of the caster that is visible to them. Until that unit moves, that unit is treated as being in cover.In addition, until that unit moves, if the unmodified save roll for an attack made with a melee weapon that targets that unit is 6, the attacking unit suffers 1 mortal wound after all of its attacks have been resolved.`,
desc: `7+ casting value. Pick 1 friendly WANDERERS unit wholly within 18" of the caster that is visible to them. Until that unit moves, that unit is treated as being in cover. In addition, until that unit moves, if the unmodified save roll for an attack made with a melee weapon that targets that unit is 6, the attacking unit suffers 1 mortal wound after all of its attacks have been resolved.`,
when: [HERO_PHASE],
},
],
Expand Down
2 changes: 1 addition & 1 deletion src/factions/daughters_of_khaine/command_abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const CommandAbilities = {
effects: [
{
name: `Wrath of the Scathborn`,
desc: `You can use this command ability in your charge phase if this unit is part of your army and on the battlefield. The command can only be issued by this unit, and the unit that receives the command must be a friendly MELUSAI unit. That unit can attempt a charge even if it ran in the same turn.`,
desc: `You can use this command ability in your charge phase if this unit is part of your army and on the battlefield. The command can only be issued by this unit, and the unit that receives the command must be a friendly MELUSAI unit. That unit can attempt a charge even if it ran in the same turn.`,
when: [CHARGE_PHASE],
rule_sources: [rule_sources.BATTLETOME_DAUGHTERS_OF_KHAINE, rule_sources.ERRATA_JULY_2022],
},
Expand Down
4 changes: 2 additions & 2 deletions src/factions/kharadron_overlords/command_abilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ const CommandAbilities = {
effects: [
{
name: `Bring Every Gun to Bear`,
desc: `You can use this command ability at the start of your shooting phase. The unit that receieves the command must be a friendly SKYVESSEL that is more than 3" from all enemy units, that remained stationary in the preceding movement phase and that did not receive the Fly High command in the preceding movement phase. Add 1 to the Attacks characteristic of that unit's missile weapons until the end of the phase.`,
desc: `You can use this command ability at the start of your shooting phase. The unit that receieves the command must be a friendly SKYVESSEL that is more than 3" from all enemy units, that remained stationery in the preceding movement phase and that did not receive the Fly High command in the preceding movement phase. Add 1 to the Attacks characteristic of that unit's missile weapons until the end of the phase.`,
when: [START_OF_SHOOTING_PHASE],
},
],
Expand All @@ -56,7 +56,7 @@ const CommandAbilities = {
effects: [
{
name: `Command the Fleet`,
desc: `You can use this command ability at the start of your movement phase. Up to 3 friendly SKYVESSELS that are more than 3" from all enemy units can receive the command. In that phase you can reroll run rolls for the units that receive the command. In addition, the units that recieve the command can run and still shoot and/or charge later in the turn.`,
desc: `You can use this command ability at the start of your movement phase. Up to 3 friendly SKYVESSELS that are more than 3" from all enemy units can receive the command. In that phase you can reroll run rolls for the units that receive the command. In addition, the units that receive the command can run and still shoot and/or charge later in the turn.`,
when: [START_OF_MOVEMENT_PHASE],
},
],
Expand Down
2 changes: 1 addition & 1 deletion src/factions/kharadron_overlords/units.ts
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ const Units = {
},
{
name: `Grudgebreaker Rounds`,
desc: `Once per battle, at the start of your shooting phase, pick 1 friendly KHARADRON OVERLORDS unit wholly within 12" of this unit that is not a SKYVESSEL. Until the end of that phase, improve the Rend characteristic of that unit's missle weapons by 1. The same unit cannot be picked to benefit from this ability than once in the same phase.`,
desc: `Once per battle, at the start of your shooting phase, pick 1 friendly KHARADRON OVERLORDS unit wholly within 12" of this unit that is not a SKYVESSEL. Until the end of that phase, improve the Rend characteristic of that unit's missile weapons by 1. The same unit cannot be picked to benefit from this ability than once in the same phase.`,
when: [START_OF_SHOOTING_PHASE],
},
],
Expand Down
2 changes: 1 addition & 1 deletion src/factions/lumineth_realmlords/endless_spells.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const EndlessSpells = {
},
GenericEffects.Linked,
{
name: `Stationary`,
name: `Stationery`,
desc: `While this endless spell is on the battlefield, the model that summoned this endless spell cannot move.`,
when: [MOVEMENT_PHASE],
rule_sources: [rule_sources.ERRATA_JULY_2021],
Expand Down
4 changes: 2 additions & 2 deletions src/factions/lumineth_realmlords/spells.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ const Spells = {
effects: [
{
name: `Crippling Vertigo`,
desc: `Casting value of 6 and a range of 18". Pick 1 enemy unit wholly within range and visible to the caster. Until your next hero phase, roll 2D6 before that unit makes a normal move, runs, retreats, makes a charge move or makes a pile-in move. If the roll is greater than that unit's bravery, it cannot make that move.`,
desc: `Casting value of 6 and a range of 18". Pick 1 enemy unit wholly within range and visible to the caster. Until your next hero phase, roll 2D6 before that unit makes a normal move, runs, retreats, makes a charge move or makes a pile-in move. If the roll is greater than that unit's bravery, it cannot make that move.`,
when: [HERO_PHASE],
},
{
Expand Down Expand Up @@ -261,7 +261,7 @@ const Spells = {
effects: [
{
name: `Dazzling Light`,
desc: `Casting value of 6. Until your next hero phase, subtract 1 from hit rolls targeting the caster and subtract 1 from missle weapon attacks targeting friendly units wholly within 6" of the caster.`,
desc: `Casting value of 6. Until your next hero phase, subtract 1 from hit rolls targeting the caster and subtract 1 from missile weapon attacks targeting friendly units wholly within 6" of the caster.`,
when: [HERO_PHASE],
},
{
Expand Down
6 changes: 3 additions & 3 deletions src/factions/lumineth_realmlords/units.ts
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ const Units = {
},
{
name: `Warding Lanterns`,
desc: `This unit has a ward of 6+ if it remains stationary in the same turn.`,
desc: `This unit has a ward of 6+ if it remains stationery in the same turn.`,
when: [WARDS_PHASE],
},
],
Expand Down Expand Up @@ -512,7 +512,7 @@ const Units = {
MoveLikeTheWindEffect,
{
name: `Fan of Redirection`,
desc: `Add 1 to save rolls for attacks made with missile weapons that target this model. In addition, if the unmodified save roll for an attack made with a missle weapon that targets this unit is 6, after all the attacking unit's attacks have been resolved, you can cause 1 mortal wound to 1 enemy unit within 9" of this unit and visible to it.`,
desc: `Add 1 to save rolls for attacks made with missile weapons that target this model. In addition, if the unmodified save roll for an attack made with a missile weapon that targets this unit is 6, after all the attacking unit's attacks have been resolved, you can cause 1 mortal wound to 1 enemy unit within 9" of this unit and visible to it.`,
when: [WOUND_ALLOCATION_PHASE],
},
{
Expand All @@ -528,7 +528,7 @@ const Units = {
MoveLikeTheWindEffect,
{
name: `Windcharger Arrows`,
desc: `Ward rolls cannot be made for wounds and mortal wounds caused by attacks made with missle weapons by this unit.`,
desc: `Ward rolls cannot be made for wounds and mortal wounds caused by attacks made with missile weapons by this unit.`,
when: [SAVES_PHASE],
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/factions/nighthaunt/spells.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const Spells = {
effects: [
{
name: `Grief-Stricken`,
desc: `Grief-stricken is a spell that has a casting value of 7 and a range of 18". Pick 1 enemy unit within range and visible to the caster. Subtract 1 from hit rolls for attacks made by that unit and add 1 to hit rolls for attacks made with melee weapons by friendly Nighthaunt units that target that unit until your next hero phase.`,
desc: `Casting value of 7 and a range of 18". Pick 1 enemy unit within range and visible to the caster. Subtract 1 from hit rolls for attacks made by that unit and add 1 to hit rolls for attacks made with melee weapons by friendly Nighthaunt units that target that unit until your next hero phase.`,
when: [HERO_PHASE],
},
],
Expand Down
28 changes: 27 additions & 1 deletion src/factions/ogor_mawtribes/scenery.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { tagAs } from 'factions/metatagger'
import { GenericEffects } from 'generic_rules'
import { HERO_PHASE, WOUND_ALLOCATION_PHASE } from 'types/phases'
import { END_OF_CHARGE_PHASE, HERO_PHASE, WOUND_ALLOCATION_PHASE } from 'types/phases'
import rule_sources from './rule_sources'

const Scenery = {
Expand Down Expand Up @@ -28,6 +28,32 @@ const Scenery = {
},
],
},

Mawpit: {
effects: [
GenericEffects.FactionTerrainSetup,
GenericEffects.Defensible,
{
name: `The Throat of Ghur`,
desc: `At the end of the charge phase, the player whose turn is taking place must roll a dice for each unit in their army that is within 12" of this terrain feature and within 12" of any units in their opponent's army and more than 3" from all units in their opponent's army. On a 3+, that unit suffers D3 mortal wounds.
If this terrain feature has a Head Butcher, this ability affects units within 18" of this terrain feature instead of 12". This ability has no effect on GUTBUSTERS units.`,
when: [END_OF_CHARGE_PHASE],
},
{
name: `Head Butcher`,
desc: `If this terrain feature has a Head Butcher, in your hero phase, you can say that an offering will be made to the Mawpit. If you do so, pick 1 enemy unit within 18" of this terrain feature and roll D6. If the roll is more than twice that enemy unit's Wounds characteristic, 1 model in that unit is slain. If the roll is more than three times that enemy unit's Wounds characteristic, 3 models in that unit are slain.`,
when: [HERO_PHASE],
},
{
name: `It Fights Back`,
desc: `If this terrain feature is picked as the target of the Smash To Rubble monstrous rampage, and that monstrous rampage is unsuccessful, the MONSTER that carried out that monstrous rampage suffers 3D6 mortal wounds.
Designer's Note: A Smash To Rubble monstrous rampage is unsuccessful if the roll was not a 3+.`,
when: [END_OF_CHARGE_PHASE],
},
],
},
}

export default tagAs(Scenery, 'scenery')
39 changes: 33 additions & 6 deletions src/factions/ogor_mawtribes/units.ts
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ const Units = {
},
{
name: `Line Breaker`,
desc: `Subtract 1 from wound rolls for attacks made with missle weapons that target this unit.`,
desc: `Subtract 1 from wound rolls for attacks made with missile weapons that target this unit.`,
when: [SHOOTING_PHASE],
},
{
Expand Down Expand Up @@ -376,7 +376,7 @@ const Units = {
},
{
name: `Thunderous Blasts of Hot Metal`,
desc: `If this unit remained stationary in your movement phase, when this unit shoots in your following shooting phase, the Attacks characterisitc is 2D3 instead of D3.`,
desc: `If this unit remained stationery in your movement phase, when this unit shoots in your following shooting phase, the Attacks characterisitc is 2D3 instead of D3.`,
when: [SHOOTING_PHASE],
},
],
Expand All @@ -401,9 +401,7 @@ const Units = {
},
{
name: `Gutguard`,
desc: `Before you allocate a wound, mortal to a friendly TYRANT within 3" or make a ward roll for that TYRANT you can roll a dice.
On a 1-2 that wound or mortal wound is allocated to that TYRANT as normal.
On a 3+ that wound or mortal wound is allocated to this unit instead of that TYRANT.`,
desc: `Before you allocate a wound, mortal to a friendly TYRANT within 3" or make a ward roll for that TYRANT you can roll a dice. On a 1-2 that wound or mortal wound is allocated to that TYRANT as normal. On a 3+ that wound or mortal wound is allocated to this unit instead of that TYRANT.`,
when: [WOUND_ALLOCATION_PHASE],
},
],
Expand All @@ -423,7 +421,7 @@ const Units = {
},
{
name: `Tribal Banner Bearer with Lookout Gnoblar`,
desc: `Subtract 1 from wound rolls from missle weapons that target this unit while it has any Tribal Banner Bearer with Lookout Gnoblar.`,
desc: `Subtract 1 from wound rolls from missile weapons that target this unit while it has any Tribal Banner Bearer with Lookout Gnoblar.`,
when: [SHOOTING_PHASE],
},
IronfistEffect,
Expand Down Expand Up @@ -596,6 +594,35 @@ const Units = {
},
],
},
'Gorger Mawpack': {
effects: [
{
name: `Clawback`,
desc: `1 in every 5 models in this unit must be a Clawback. Add 1 to the Attacks characteristic of that model's Bone-shattering Strikes. That model can issue commands to their own unit.`,
when: [COMBAT_PHASE],
},
{
name: `Cave Howler`,
desc: `1 in every 5 models in this unit must be a Cave Howler.`,
when: [DURING_GAME],
},
{
name: `Ambushing Hunters`,
desc: `During deployment, instead of setting up this unit on the battlefield, you can place it to one side and say that it is set up in ambush as a reserve unit. If you do so, at the end of your movement phase, you can set up this unit on the battlefield more than 9" from all enemy units.`,
when: [DURING_SETUP],
},
{
name: `Ambushing Hunters`,
desc: `If this unit is set up in ambush as a reserve unit, at the end of your movement phase, you can set up this unit on the battlefield more than 9" from all enemy units.`,
when: [END_OF_MOVEMENT_PHASE],
},
{
name: `Agonising Roar`,
desc: `Roll a dice each time an enemy unit receives a command within 12" of a friendly Cave Howler. On a 5+, that command is not received (the command ability still counts as having been used) and the command point that was spent to issue that command is lost.`,
when: [DURING_GAME],
},
],
},
}

export default tagAs(Units, 'unit')
2 changes: 1 addition & 1 deletion src/factions/orruk_warclans/bonesplitterz/spells.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ const BonesplitterzSpells = {
effects: [
{
name: `Power of the Were-boar`,
desc: `Power of the Were-boar is a spell that has a casting value of 6 and range of 24". If successfully pick 1 friendly BONESPLITTERZ unit wholly within range and visible to the caster. Until your next hero phase, add 1 to run rolls and charge rolls for that unit, and add 1 to hit rolls for attacks made by that unit, but that unit cannot shoot.`,
desc: `Casting value of 6 and range of 24". If successfully pick 1 friendly BONESPLITTERZ unit wholly within range and visible to the caster. Until your next hero phase, add 1 to run rolls and charge rolls for that unit, and add 1 to hit rolls for attacks made by that unit, but that unit cannot shoot.`,
when: [HERO_PHASE],
},
],
Expand Down
Loading

0 comments on commit 1df6b4b

Please sign in to comment.