import { useState, ChangeEvent, FormEvent, FC } from 'react';

// interface KeySelectionComponentProps {}

export const TextMapper: FC = () => {
  const text = `
  RIPPER SWARMS
M

T

SV

W

LD

OC

6"

2

6+

4

8+

0

RANGED WEAPONS

RANGE

A

BS

S

AP

D

ABILITIES

Spinemaws [PISTOL]

6"

4

5+

3

0

1

CORE: Deep Strike

MELEE WEAPONS

RANGE

A

WS

S

AP

D

FACTION: Synapse

Xenos claws and teeth [SUSTAINED HITS 1]

Melee

6

5+

2

0

1

Chitinous Horrors (Aura): While an enemy unit is within
Engagement Range of this unit, halve the Objective Control
characteristic of models in that enemy unit.

KEYWORDS: Swarm, Great Devourer, Ripper Swarms

FACTION KEYWORDS:
Tyranids

RIPPER SWARMS
Living carpets of Rippers squirm across the ground wherever the
Tyranid swarms advance. Little more than simple eating machines,
these chitinous horrors swarm over the wounded and dead alike, and
can even drag down trained warriors in sufficient numbers. Once a
Ripper's fangs sink home, it will not let go…

WARGEAR OPTIONS

UNIT COMPOSITION

-  All models in this unit can each be equipped with 1 spinemaws.

- 3-6 Ripper Swarms
Every model is equipped with: xenos claws and teeth.

KEYWORDS: Swarm, Great Devourer, Ripper Swarms

FACTION KEYWORDS:
Tyranids

SCREAMER-KILLER
M

T

SV

W

LD

OC

8"

9

2+

10

8+

3

RANGED WEAPONS
Bio-plasmic scream [ASSAULT, BLAST]

RANGE

A

BS

S

AP

D

ABILITIES

18"

D6+3

4+

8

-2

1

CORE: Deadly Demise 1

MELEE WEAPONS

RANGE

A

WS

S

AP

D

FACTION: Synapse

Screamer-killer talons

Melee

10

3+

10

-2

3

Death Scream: In your Shooting phase, after this model has
shot, select one unit hit by one or more of those attacks.
That unit must take a Battle-shock test, subtracting 1 from
that test.

KEYWORDS: Monster, Great Devourer, Screamer-Killer

FACTION KEYWORDS:
Tyranids

SCREAMER-KILLER
An older adaptation of the basic Carnifex strain, the Screamer-Killer
was christened by terrified Imperial troops for the distinctive howl
it emits as it generates then unleashes its bio-plasmic blasts.
Screamer-Killers are often seen at the forefront of a Tyranid assault,
where they can inflict the most damage quickly.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 1 Screamer-Killer
This model is equipped with: bio-plasmic scream;
Screamer-Killer talons.

KEYWORDS: Monster, Great Devourer, Screamer-Killer

FACTION KEYWORDS:
Tyranids

PSYCHOPHAGE
M

T

SV

W

LD

OC

8"

9

3+

10

8+

3

RANGED WEAPONS
Psychoclastic torrent [IGNORES COVER, TORRENT]

MELEE WEAPONS
Talons and betentacled maw
[ANTI-PSYKER 2+, DEVASTATING WOUNDS]

RANGE

A

BS

S

AP

D

ABILITIES

12"

D6

N/A

6

-1

1

CORE: Deadly Demise 1, Feel No Pain 5+

RANGE

A

WS

S

AP

D

FACTION: Synapse

Melee

D6+1

3+

6

-1

2

Bio-stimulus (Aura): While a friendly Tyranids unit
is within 6" of this model, models in that unit have the
Feel No Pain 6+ ability.
Feeding Frenzy: Each time this model makes a melee attack
that targets a unit that is below its Starting Strength, add 1 to
the Hit roll. If that target is also Below Half-strength, add 1 to
the Wound roll as well.

KEYWORDS: Monster, Great Devourer, Psychophage

FACTION KEYWORDS:
Tyranids

PSYCHOPHAGE
These monsters stampede into battle with frightening speed. They
devour any prey organism in their paths, but especially favour those
victims with psychic abilities. How they metabolise such esoteric
powers is unclear, but doing so allows them to project surges of
psychocorrosive ash that deflagrate their victims' minds and souls.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 1 Psychophage
This model is equipped with: psychoclastic torrent; talons
and betentacled maw.

KEYWORDS: Monster, Great Devourer, Psychophage

FACTION KEYWORDS:
Tyranids

BARBGAUNTS
M

T

SV

W

LD

OC

6"

4

4+

2

8+

1

RANGED WEAPONS

RANGE

A

BS

S

AP

D

ABILITIES

Bio-cannon [BLAST, HEAVY]

24"

D6

4+

5

0

1

FACTION: Synapse

MELEE WEAPONS

RANGE

A

WS

S

AP

D

Xenos claws and teeth

Melee

1

4+

4

0

1

Disruption Bombardment: In your Shooting phase, after
this unit has shot, if an enemy Infantry unit was hit by one
or more of those attacks made by this unit's bio-cannons,
until the end of your opponent's next turn, that enemy unit is
disrupted. While a unit is disrupted, subtract 2 from its Move
characteristic, and subtract 2 from Advance and Charge rolls
made for it.

KEYWORDS: Infantry, Great Devourer, Barbgaunts

FACTION KEYWORDS:
Tyranids

BARBGAUNTS
Barbgaunts are little more than living weapons, their bodies and
bio-cannons slaved to the will of a pulsating ganglio-parasite that
piggybacks them into battle. There, they unleash volleys of chitinous
barbs that detonate with the fury of violent muscle-spasms and
transfix nearby victims with hails of jagged projectiles.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 5-10 Barbgaunts
Every model is equipped with: bio-cannon; xenos claws
and teeth.

KEYWORDS: Infantry, Great Devourer, Barbgaunts

FACTION KEYWORDS:
Tyranids

TERMAGANTS
M

T

SV

W

LD

OC

6"

3

5+

1

8+

2

RANGED WEAPONS

RANGE

A

BS

S

AP

D

ABILITIES

Fleshborer [ASSAULT]

18"

1

4+

5

0

1

FACTION: Synapse

Termagant spinefists [ASSAULT, PISTOL, TWIN-LINKED]

12"

2

4+

3

0

1

Termagant devourer

18"

2

4+

4

0

1

MELEE WEAPONS

RANGE

A

WS

S

AP

D

Xenos claws and teeth

Melee

1

4+

3

0

1

KEYWORDS: Infantry, Great Devourer, Endless Multitude, Termagants

Skulking Horrors: Once per turn, when an enemy unit ends a
Normal, Advance or Fall Back move within 9" of this unit, if this
unit is not within Engagement Range of one or more enemy
units, it can make a Normal move of up to D6".

FACTION KEYWORDS:
Tyranids

TERMAGANTS
Scuttling predators that attack in huge swarms, Termagants were
originally spawned to roam the tight arterial passages of hive ships
and hunt intruders. They harry their prey with a hail of firepower,
seeking always to outflank and envelop their victims as they erode
their numbers.

WARGEAR OPTIONS

UNIT COMPOSITION

-  All models in this unit can each have their fleshborer replaced with 1 Termagant devourer.

- 10-20 Termagants

-  All models in this unit can each have their fleshborer replaced with 1 Termagant spinefists.

Every model is equipped with: fleshborer; xenos claws
and teeth.

KEYWORDS: Infantry, Great Devourer, Endless Multitude, Termagants

FACTION KEYWORDS:
Tyranids

NEUROTYRANT
M

T

SV

W

LD

OC

6"

8

4+

9

7+

3

RANGED WEAPONS

RANGE

A

BS

S

AP

D

ABILITIES

18"

2D6

N/A

5

-1

2

CORE: Leader

MELEE WEAPONS

RANGE

A

WS

S

AP

D

FACTION: Synapse, Shadow in the Warp

Neurotyrant claws and lashes

Melee

6

3+

5

0

1

Node Lash (Psychic): While this model is leading a unit, each
time a model in that unit makes an attack, add 1 to the Hit roll.
If the target is Battle-shocked, add 1 to the Wound roll as well.

Psychic scream [IGNORES COVER, PSYCHIC, TORRENT]

Psychic Terror (Psychic): If one or more Neurotyrants
from your army are on the battlefield when you unleash the
Shadow in the Warp, subtract 1 from the Battle-shock test
each enemy unit on the battlefield must take as a result.
Synaptic Relays: In your Command phase, you can select
up to two friendly Tyranids units within 12" of this model's
unit. Until the start of your next Command phase, the selected
units are always considered to be within Synapse Range of
your army.
Designer's Note: Place a Synaptic Relay token next to each selected unit to
remind you.

INVULNERABLE SAVE
KEYWORDS:  Monster, Character, Fly, Psyker, Great Devourer, Synapse,
Neurotyrant

FACTION KEYWORDS:
Tyranids

4+

NEUROTYRANT
The Shadow in the Warp radiating from this immensely powerful
psyker-analogue creeps in all directions, driving even non-psychic
prey organisms to screaming madness. As its foes writhe in agony,
the Neurotyrant guides the swarms around it to slaughter with
brutal efficiency.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 1 Neurotyrant
This model is equipped with: psychic scream; Neurotyrant
claws and lashes.

LEADER
This model can be attached to the following units:
- Neurogaunts
- Tyrant Guard

KEYWORDS:  Monster, Character, Fly, Psyker, Great Devourer, Synapse,
Neurotyrant

FACTION KEYWORDS:
Tyranids

VON RYAN'S LEAPERS
M

T

SV

W

LD

OC

10"

5

4+

3

8+

1

MELEE WEAPONS

RANGE

A

WS

S

AP

D

ABILITIES

Leaper's talons

Melee

6

3+

5

-1

1

CORE: Fights First, Infiltrators, Stealth
FACTION: Synapse
Pouncing Leap: You can target this unit with the Heroic
Intervention Stratagem for 0CP, and can do so even if
you have already used that Stratagem on a different unit
this phase.

INVULNERABLE SAVE

KEYWORDS: Infantry, Great Devourer, Von Ryan's Leapers

FACTION KEYWORDS:
Tyranids

6+

VON RYAN'S LEAPERS
Stealthy hunters and expert ambushers, Von Ryan's Leapers are swift,
agile and especially lethal when fighting in dense terrain. Akin to
living mines, they lie still at the optimum locations to cause as much
damage as possible. When they sense the perfect time to strike, they
butcher all around in a murderous frenzy.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 3-6 Von Ryan's Leapers
Every model is equipped with: Leaper's talons.

KEYWORDS: Infantry, Great Devourer, Von Ryan's Leapers

FACTION KEYWORDS:
Tyranids

NEUROGAUNTS
M

T

SV

W

LD

OC

6"

3

6+

1

8+

1

MELEE WEAPONS

RANGE

A

WS

S

AP

D

ABILITIES

Xenos claws and teeth

Melee

1

4+

3

0

1

FACTION: Synapse
Neurocytes: While this unit is within Synapse Range of your
army, it has the Synapse keyword.

KEYWORDS: Infantry, Great Devourer, Endless Multitude, Neurogaunts

FACTION KEYWORDS:
Tyranids

NEUROGAUNTS
Neurogaunts scuttle forward in seething masses, driven on by the
parasitic neurocytes that cling to their backs. Their primary purpose is
to protect the synaptic node beasts coordinating invasion swarms. It
is a task they go about with single-minded savagery, slashing, biting
and giving their lives without an instant's hesitation.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 1-2 Neurogaunt Nodebeasts*
- 10-20 Neurogaunts
Every model is equipped with: xenos claws and teeth.
* This unit can only contain 2 Neurogaunt Nodebeasts if it contains
20 Neurogaunts.

KEYWORDS: Infantry, Great Devourer, Endless Multitude, Neurogaunts

FACTION KEYWORDS:
Tyranids

WINGED TYRANID PRIME
M

T

SV

W

LD

OC

12"

5

4+

6

7+

1

MELEE WEAPONS

RANGE

A

WS

S

AP

D

ABILITIES

Prime talons

Melee

6

2+

6

-1

2

CORE: Deep Strike, Leader
FACTION: Shadow in the Warp, Synapse
Alpha Warrior: While this model is leading a unit,
weapons equipped by models in that unit have the
[SUSTAINED HITS 1] ability.
Death Blow: If this model is destroyed by a melee attack, if it
has not fought this phase, roll one D6: on a 4+, do not remove
it from play. The destroyed model can fight after the attacking
model's unit has finished making its attacks, and is then
removed from play.

KEYWORDS:  Infantry, Character, Fly, Great Devourer, Synapse,
Winged Tyranid Prime

FACTION KEYWORDS:
Tyranids
WINGED TYRANID PRIME
Tyranid Primes adapted for flight possess all the physical and synaptic
might of an alpha war-beast, while also boasting the frightening speed
and manoeuvrability imparted by huge leathery wings. Swooping
down into the midst of the foe, they rend and tear until nought remains
but corpses and fleeing prey.

WARGEAR OPTIONS

UNIT COMPOSITION

-   None

- 1 Winged Tyranid Prime
This model is equipped with: Prime talons.

LEADER
This model can be attached to the following units:
- Gargoyles
- Tyranid Warriors with melee Bio-weapons
- Tyranid Warriors with Ranged Bio-weapons

KEYWORDS:  Infantry, Character, Fly, Great Devourer, Synapse,
Winged Tyranid Prime

FACTION KEYWORDS:
Tyranids
  `
  const lineCount = (text: string) => text.split('\n').length

  const numberOfDigits = (num: number) => num.toString().length

  const lineCountDigits = numberOfDigits(lineCount(text));
  
  return (
    <div className="container">
      {text.split('\n').map((l, i) => (
        <div className="flex gap-4 font-mono">
          <div>{(i + 1).toString().padStart(lineCountDigits, '0')}</div>
          <div>{l}</div>
        </div>
      ))}
    </div>
  )
}
