working my way through the bestiary

This commit is contained in:
Greg Gauthier 2024-07-03 00:00:10 +01:00
parent 57dd85d3ae
commit c0fcd51cf6
34 changed files with 657 additions and 117 deletions

View File

@ -1,55 +1,179 @@
{
"android": {
"description": "Androids are man-made beings who look exactly like Pure Strain Humans and are often mistaken for them. They usually consider Pure Strain Humans to be enemies. All Androids wear Tech Level III armour. Warriors and Thinkers carry Tech Level III weapons.",
"thinker": {
"number": [1, 4, 0],
"morale": [1, 4, 6],
"number": [
1,
4,
0
],
"morale": [
1,
4,
6
],
"armour": 9,
"hit dice": [8, 10, 0],
"environ": ["land"],
"land speed": [12, 900, 18],
"ms": [1, 101, 11],
"in": [1, 101, 11],
"dx": [5, 4, 0],
"ch": [1, 10, 11],
"cn": [1, 10, 11],
"ps": [1, 10, 8],
"attacks": null,
"mutations": null,
"description": "Androids are man-made beings who look exactly like Pure Strain Humans and are often mistaken for them. They usually consider Pure Strain Humans to be enemies. All Androids wear Tech Level III armour. Warriors and Thinkers carry Tech Level III weapons."
"hit dice": [
8,
10,
0
],
"environ": [
"land"
],
"land speed": [
12,
900,
18
],
"ms": [
1,
101,
11
],
"in": [
1,
101,
11
],
"dx": [
5,
4,
0
],
"ch": [
1,
10,
11
],
"cn": [
1,
10,
11
],
"ps": [
1,
10,
8
],
"attacks": {},
"mutations": []
},
"worker": {
"number": [1, 6, 2],
"morale": [1, 4, 0],
"number": [
1,
6,
2
],
"morale": [
1,
4,
0
],
"armour": 8,
"hit dice": [7, 10, 0],
"environ": ["land"],
"land speed": [12, 900, 18],
"ms": [5, 4, 0],
"in": [1, 10, 2],
"dx": [5, 4, 0],
"ch": [1, 10, 2],
"cn": [1, 10, 11],
"ps": [1, 10, 11],
"attacks": null,
"mutations": null,
"description": "Androids are man-made beings who look exactly like Pure Strain Humans and are often mistaken for them. They usually consider Pure Strain Humans to be enemies. All Androids wear Tech Level III armour. Warriors and Thinkers carry Tech Level III weapons."
"hit dice": [
7,
10,
0
],
"environ": [
"land"
],
"land speed": [
12,
900,
18
],
"ms": [
5,
4,
0
],
"in": [
1,
10,
2
],
"dx": [
5,
4,
0
],
"ch": [
1,
10,
2
],
"cn": [
1,
10,
11
],
"ps": [
1,
10,
11
],
"attacks": {},
"mutations": []
},
"warrior": {
"number": [1, 6, 0],
"morale": [1, 6, 4],
"number": [
1,
6,
0
],
"morale": [
1,
6,
4
],
"armour": 7,
"hit dice": [10, 10, 0],
"environ": ["land"],
"land speed": [12, 900, 36],
"ms": [1, 10, 11],
"in": [1, 10, 8],
"dx": [1, 10, 11],
"ch": [1, 10, 11],
"cn": [1, 10, 11],
"ps": [1, 10, 11],
"attacks": null,
"mutations": null,
"description": "Androids are man-made beings who look exactly like Pure Strain Humans and are often mistaken for them. They usually consider Pure Strain Humans to be enemies. All Androids wear Tech Level III armour. Warriors and Thinkers carry Tech Level III weapons."
"hit dice": [
10,
10,
0
],
"environ": [
"land"
],
"land speed": [
12,
900,
36
],
"ms": [
1,
10,
11
],
"in": [
1,
10,
8
],
"dx": [
1,
10,
11
],
"ch": [
1,
10,
11
],
"cn": [
1,
10,
11
],
"ps": [
1,
10,
11
],
"attacks": {},
"mutations": []
}
},
"badder": {
@ -101,7 +225,7 @@
"cn": [5, 4, 0],
"ps": [1, 12, 4],
"attacks": {"bite": [1, 4, 0]},
"mutations": null,
"mutations": [],
"description": "This black predator fish often grows to a length of 1.5 meters. Once per day it can secrete intensity level 18 radioactive oil over an area of 9 meters square. This slick lasts 10 minutes. If killed before it uses the days allotment of oil, the Barl Nep's oil may be extracted and used as a weapon [but will have to be carried in a lead-lined container]. Oil extracted from the Barl Nep will be only intensity level 12."
},
"arn": {
@ -119,7 +243,7 @@
"cn": [1, 12, 4],
"ps": [1, 8, 2],
"attacks": {"bite": [2, 6, 0]},
"mutations": null,
"mutations": [],
"description": "[Dragon Bugs] These 1 to 2-meter long mutated dragonflies can carry loads weighing up to twice their PS in kilograms while airborne, but not while crawling along the ground. They are often captured and domesticated as flying steeds by small Humanoids and Mutated Animals. However, they must be caught young to be trainable."
},
"ber lep": {
@ -128,7 +252,7 @@
"hit dice": [15, 4, 0],
"armour": 6,
"environ": ["water"],
"water speed": null,
"water speed": [0,0,0],
"ms": [1, 4, 0],
"in": [1, 4, 0],
"dx": [1, 4, 0],
@ -136,7 +260,7 @@
"cn": [1, 10, 11],
"ps": [1, 12, 4],
"attacks": {"acid": [2, 8, 0]},
"mutations": null,
"mutations": [],
"description": "[Sweetpads] This 2-meter diameter, free-floating aquatic plant rests on the surface of the water much like a lily pad [to which it is related]. It will support the weight of a normal human, but pressure on the center of the pad causes it to snap shut around the trespasser. The plant secretes a sweet-smelling acid which attracts and gradually dissolves its prey. [HOUSE NOTE: PLAYERS SHOULD MAKE A DEX CHECK WHEN SNARED, TO SEE IF THEY ESCAPE, AND TAKE DAMAGE FOR EVERY ROUND THE CHECK FAILS - GMG]"
},
"blaash": {
@ -154,7 +278,7 @@
"cn": [1, 10, 5],
"ps": [1, 6, 4],
"attacks": {"radiation": [0, 0, 0]},
"mutations": null,
"mutations": [],
"description": "[Gamma Moths] This mutated gypsy moth often grows to 1 meter in length [with a 2 meter wingspan]. It is fearless and quite carnivorous. When attacking, the intensity 18 radiation it emits from its abdomen causes it to glow brightly. All parties within 6 meters must make a Radiation Check."
},
"blood bird": {
@ -171,7 +295,7 @@
"cn": [1, 10, 8],
"ps": [1, 10, 5],
"attacks": {"bite": [1, 4, 0]},
"mutations": null,
"mutations": [],
"description": "[Red Deaths] Mutated Scarlet Tanager. Emits intensity level 10 radiation. Parties within 6 meters must make a Radiation Check each Action Turn. 100% resistant to mental attacks. 1m tall."
},
"blackun": {
@ -241,7 +365,7 @@
"cn": [1, 10, 5],
"ps": [1, 10, 8],
"attacks": {"bite": [10, 6, 0]},
"mutations": null,
"mutations": [],
"description": "[Flying Rippers] This intelligent mutated insect often reaches a length of 2.5 meters. It is immune to weapons using heat or cold. The Cal Then feeds on bone marrow and will rip through anything [even duralloy, given time] to get at fresh bone."
},
"carrin": {
@ -275,7 +399,7 @@
"ch": [1, 4, 0],
"cn": [1, 10, 5],
"ps": [2, 20, 30],
"attacks": null,
"attacks": [],
"mutations": ["Increased Metabolism", "Force Field Generation"],
"description": "[Fast Trotters] Centisteeds are mutated horses of insectoid appearance. Each has between 12 and 18 legs and can carry 2 human sized characters. One rider must concentrate at all times on controlling the mount or it will try to throw [and then trample] the riders. [HOUSE NOTE: Mental Strength Ability Check every round. - GMG]"
},
@ -292,12 +416,12 @@
"ch": [1, 8, 1],
"cn": [1, 10, 2],
"ps": [1, 10, 5],
"attacks": null,
"attacks": [],
"mutations": ["Empathy", "Illusion Generation", "Light Generation", "Repulsion Field",
"Telekinesis", "Telepathy"],
"description": "[Brown Beggars] These highly intelligent 1 meter tall mutated racoons walk upright and have manipulative paws. They are usually found in small family groups and will often have Tech evel III equipment including some weapons but no armour."
},
"cren tosh": {
"cren tosh": {
"number": [1, 4, 2],
"morale": [1, 4, 0],
"hit dice": [16, 6, 0],
@ -312,7 +436,7 @@
"cn": [1, 10, 2],
"ps": [1, 10, 8],
"attacks": {"bite": [1,4,0]},
"mutations": null,
"mutations": [],
"description": "[Lizard Fish] This mutated lizard-fish prefers to live in water as a 2-meter long fish, but can transform itself into any lizard of about the same size (complete with all lizard characteristics) for up to 24 hours at a time. This power may only be used once per day. In fish form, it lives under overhanging banks and lines its nests with shiny objects. It is a vegetarian."
},
"ert": {
@ -329,10 +453,10 @@
"cn": [1, 10, 2],
"ps": [1, 10, 2],
"attacks": {"poison": [0,0,0]},
"mutations": null,
"mutations": [],
"description": "[Stone Fish] This 1-meter long fish injects a chemical into those it bites, causing them to petrify and turn to stone within 60 seconds. For purposes of deciding if a character suffers this result, treat the chemical as intensity level 12 poison. Characters turn to stone on a 'D' result. Other results are ignored. [HOUSE NOTE: Intensity Level 10. I don't want my players constantly dying - GMG]"
},
"ert telden": {
"ert telden": {
"number": [1, 6, 0],
"morale": [1, 4, 0],
"hit dice": [12, 4, 0],
@ -346,7 +470,7 @@
"cn": [1, 10, 2],
"ps": [1, 12, 4],
"attacks": {"fireball": [10,6,0]},
"mutations": null,
"mutations": [],
"description": "[Fire Fish] This 1-meter long fish lives in backwaters and marshes. It secretes a substance which makes it burst into flame 5d6 seconds after being removed from water and exposed to air. The super-heated fish does 10d6 damage to those within 30 meters when it bursts into flames"
},
"crep plant": {
@ -386,6 +510,300 @@
"attacks": {"Tail Slap": [6,6,0]},
"mutations": ["Shape change"],
"description": "[Man Fish] These intelligent Humanoids are adapted for living both on land and in water, having fish-like tails, stubby legs, and both lungs and gills. They can remain out of water for only 24 hours at a time. They are not affected by attacks involving heat or lasers during the first 5 action turns these attacks are used against them in a combat. Fens can shape-change into the form of a bird of their own size. They carry Tech Level I weapons (usually clubs) and wear Fishkin Armour (similar to fiber armour)."
},
"gren": {
"number": [1, 8, 0],
"morale": [1, 4, 6],
"hit dice": [2, 4, 0],
"armour": 4,
"environ": ["land"],
"land speed": [0, 900, 18],
"ms": [1, 10, 11],
"in": [1, 10, 11],
"dx": [1, 10, 11],
"ch": [1, 10, 8],
"cn": [1, 10, 11],
"ps": [1, 10, 11],
"attacks": {},
"mutations": [],
"description": "[Green Men] Grens look like <b>Pure Strain Humans</b> except for their deep green skin which provides excellent camouflage in the deep forests where they live. They hate ancient technology and never keep artefacts. Grens carry Tech Level I equipment. They don't wear armour. Grens tend to live in harmony with nature and shun outsiders who might intrude on their peaceful existence. However, they may (30% chance) aid friendly <b>Pure Strain Humans</b>. Gren communities (of 1d4 score inhabitants) are usually guarded by 1d4 domesticated <b>Blackuns</b>, <b>Gators</b>, <b>Kai Lins</b>, or <b>Obbs</b> for every 10 Grens. Grens encountered outside of their community will not be accompanied by these guardians. Grens often keep <b>Ert Teldens</b> as catapult ammunition."
},
"fleshin": {
"number": [1, 4, -2],
"morale": [1, 4, 3],
"hit dice": [8, 6, 0],
"armour": 8,
"environ": ["water", "air"],
"water speed": [24, 1800, 36],
"air speed": [6, 300, 16],
"ms": [1, 10, 2],
"in": [1, 4, 0],
"dx": [1, 8, 1],
"ch": [1, 4, 0],
"cn": [1, 12, 6],
"ps": [1, 10, 11],
"attacks": {},
"mutations": ["Shapechange", "Spines"],
"description": "[Flying Fish] These 2-meter long fish are found only in large bodies of water. However, they are able to leap into the air and glide from thermal to thermal using their broad pectoral fins as wings. They can spend an unlimited amount of time gliding. They are carnivorous and will sometimes attack PC parties while hunting. Their Spines contain Intensity Level 15 contact poison (to which they are immune). Fleshins may shapechange, but only into <b>Sleeths</b>. They have the Sleeth's special mutational abilities when transformed."
},
"hawkoid": {
"number": [1, 4, -1],
"morale": [1, 4, 5],
"hit dice": [8, 4, 0],
"armour": 7,
"environ": ["air"],
"air speed": [36, 1800, 36],
"ms": [1, 10, 8],
"in": [1, 10, 5],
"dx": [1, 10, 11],
"ch": [1, 8, 1],
"cn": [1, 10, 5],
"ps": [1, 10, 5],
"attacks": {"bite": [1,4,0]},
"mutations": ["Fear Generation", "Levitation", "Repulsion Field"],
"description": "Hawkoids are muted Sparrow Hawks growing to a 1.5 meter height and having a 1-meter wingspan. They have many human elements including legs that end in hands instead of talons. They are also very intelligent and use Tech Level I tools of all types (including specially adapted armour). Hawkoids are both fearless and carnivorous. "
},
"gator": {
"number": [1, 4, -2],
"morale": [1, 4, 5],
"hit dice": [5, 8, 0],
"armour": 4,
"environ": ["land", "water"],
"land speed": [0, 300, 6],
"water speed": [6, 900, 18],
"ms": [1, 10, 8],
"in": [1, 4, 0],
"dx": [1, 10, 2],
"ch": [1, 4, 0],
"cn": [1, 8, 10],
"ps": [1, 10, 11],
"attacks": {"bite": [1,6,0], "tailsap": [1,8,0], "tentacles": [0,0,0]},
"mutations": [],
"description": "[Green Hissers] These mutated alligators are only about 1 to 2 meters long from nose to tail. They have a pair of 1-meter long tentacles attached to their forehead which paralyze on contact (treat as a Metal Attack). Gators are immune to radiation. They may use their bit and tailslap at the same time [in the same attack move, I presume? - GMG]. Though solitary by nature, in the spring they congregate in groups of 10 to 60 to spawn."
},
"herkel": {
"number": [5, 6, 0],
"morale": [1, 4, 6],
"hit dice": [4, 4, 0],
"armour": 9,
"environ": ["water"],
"water speed": [12, 900, 18],
"ms": [1, 8, 1],
"in": [1, 4, 0],
"dx": [1, 4, 0],
"ch": [1, 4, 0],
"cn": [1, 4, 0],
"ps": [1, 4, 0],
"attacks": {"bite": [6,4,0]},
"mutations": [],
"description": "[Devil Fish] These savage fish hunt in schools and will devour anything edible in the water with them. Although only .5-meters long, their bite is quite dangerous since over a third of their length is taken up with teeth and mouth. Herkels secrete a viscous Intensity Level 18 contact poison which coats their scales, making them dangerous to touch. When aroused by large quantities of blood in the water, there is a 30% chance that a school will go into a 'feeding frenzy' during which they will bite anything (including each other) floating near their jaws and will not have to check Morale."
},
"herp": {
"number": [1, 4, -1],
"morale": [1, 4, 4],
"hit dice": [20, 4, 0],
"armour": 3,
"environ": ["land"],
"land speed": [9, 600, 12],
"ms": [1, 10, 8],
"in": [1, 4, 2],
"dx": [1, 10, 5],
"ch": [1, 4, 0],
"cn": [1, 10, 11],
"ps": [1, 20, 30],
"attacks": {"squirt": [15,6,0]},
"mutations": [],
"description": "Herps are 3.5-meter long mutated beetles which have developed a nonfunctional striped wingcase giving them their distinctive appearance and offering total protection against sonic blasts. They can squirt a stream of acid up to 30 meters which will dissolve 1 centimeter of duralloy per minute. Herps are skilled hunters, able to track any prey in any weather."
},
"hopper": {
"number": [1, 20, 0],
"morale": [1, 4, 6],
"hit dice": [3, 12, 0],
"armour": 9,
"environ": ["land"],
"land speed": [16, 900, 24],
"ms": [1, 10, 2],
"in": [1, 4, 0],
"dx": [1, 10, 2],
"ch": [1, 4, 4],
"cn": [1, 10, 11],
"ps": [1, 20, 30],
"attacks": {},
"mutations": ["Chameleon Powers", "Horns/Antlers"],
"description": "[Jackalopes] Hoppers are abysmally stupid herd animals sometimes used as mounts. These mutated jackrabbits have such a rough gait that first-time riders have an 80% chance of falling off their Hopper and suffering 1d6 damage. Each Hopper stands 3 meters at the shoulder and can carry 1 man-sized character. An unencumbered Hopper can leap 3 times the distance listed in the <b>Leaping and Jumping</b> rules."
},
"hisser": {
"number": [1, 10, 0],
"morale": [2, 4, 0],
"hit dice": [18, 4, 0],
"armour": 3,
"environ": ["land"],
"land speed": [6, 30, 12],
"ms": [1, 6, 10],
"in": [1, 10, 5],
"dx": [1, 10, 8],
"ch": [1, 10, 2],
"cn": [1, 10, 11],
"ps": [1, 20, 10],
"attacks": {"bite": [1,6,0]},
"mutations": ["Mass Mind", "Sonic Blast", "Telepathy"],
"description": "[Man Snakes] These intelligent, 3-meter long, scale-covered Humanoids have a human torso and arms and a snake's lower body and head. They inhabit deserts and ruins and will almost always possess 1 or more artefacts. Hisser societies are matriarchal and each village will have 1 queen and 20d4 male attendants. Hissers are immune to lasers and <b>Sonic Blasts</b>. They have no language (using telepathy among themselves) and will seldom know even Trade Language. In addition to their species mutations, all Hissers will have 1 other randomly-selected Mental Mutation."
},
"horl choo": {
"number": [1, 4, -1],
"morale": [1, 4, 3],
"hit dice": [18, 4, 0],
"armour": 5,
"environ": ["land"],
"land speed": [2, 300, 6],
"ms": [3, 6, 0],
"in": [1, 10, 2],
"dx": [1, 8, 1],
"ch": [1, 4, 0],
"cn": [3, 6, 0],
"ps": [3, 6, 0],
"attacks": {"poison": [0,0,0]},
"mutations": ["Dissolving Juices", "Mobility", "Quills/Spines"],
"description": "[Porcupine Plants] This odd, black 3-meter tall plant looks like a lumpy porcupine from a distance. Its spiky appearance stems from its 1-meter long, spear-like quills which it can fling up to 30 meters. Each quill is tipped with Intensity Level 9 poison and is attached to the Plant by a tough, thin vine that the Horl Choo uses to retrieve misses and haul in prey. The quills do 2d6 damage in addition to their poison effect. The plant secretes a digestive fluid that partially dissolves prey (1d6 damage per Action Turn) that is in contact with the Horl Choo's body."
},
"hoop": {
"number": [1, 20, 0],
"morale": [1, 4, 4],
"hit dice": [15, 6, 0],
"armour": 9,
"environ": ["land"],
"land speed": [12, 900, 18],
"ms": [1, 10, 11],
"in": [3, 6, 0],
"dx": [3, 6, 0],
"ch": [3, 6, 0],
"cn": [3, 6, 0],
"ps": [3, 6, 0],
"attacks": {},
"mutations": ["Mass Mind", "Telepathy"],
"description": "[Floppsies] These mutated rabbitoid creatures average 2.6 meters in height and walk erect. They are able to leap twice the distances listed under <b>Leaping and Jumping</b> rules. They may will a metal item they are touching to turn to rubber (all attached metal parts within 1 meter are affected). Hoops love artefacts and there is a 30% chance of any Hoop encountered having 1 or more artefacts and a 20% chance of his knowing how to use each artefact he possesses. Hoops carry a mix of Tech Level I and Tech Level II equipment."
},
"jaget": {
"number": [1, 4, 0],
"morale": [1, 4, 4],
"hit dice": [8, 4, 0],
"armour": 5,
"environ": ["land"],
"land speed": [6, 900, 72],
"ms": [1, 10, 11],
"in": [1, 8, 1],
"dx": [3, 6, 0],
"ch": [1, 4, 0],
"cn": [1, 10, 2],
"ps": [1, 10, 2],
"attacks": {"claw 1": [1,4,0], "claw 2": [1,4,0], "bite": [1,6,0]},
"mutations": ["Attraction Odor", "Fear Generation", "Fear Impulse (set off by intelligent plants with 4+ intelligence", "Levitation", "Poison Susceptibility", "Precognition", "Telekinesis", "Telepathy"],
"description": "[Savannah Cats] These mutated jaguars prowl the vast grasslands of what was once the Midwest. They use their front paws to manipulate and examine objects, but don't normally carry equipment. Jagets have substantial mental powers and will often be found as followers or hirelings of other species."
},
"kai lin": {
"number": [1, 4, 0],
"morale": [1, 4, 1],
"hit dice": [12, 6, 0],
"armour": 6,
"environ": ["land"],
"land speed": [12, 600, 12],
"ms": [1, 10, 2],
"in": [1, 4, 0],
"dx": [1, 10, 2],
"ch": [1, 4, 0],
"cn": [1, 12, 9],
"ps": [3, 6, 0],
"attacks": {},
"mutations": ["Attraction Odor", "Electrical Generation", "Radiation Eyes"],
"description": "[Lizard Bush] This 3-meter tall plant looks like a large reptile from a distance, especially when it runs along the ground on two strong stalks ending in thorny, claw-like pads. It is covered with green, scaly bark that gives complete protection from radiation. It's roots look much like a tail when it is in motion. When it finds carrion, it entwines these roots in the victim and absorbs sustenance. Although it usually eats only carrion, the Kai Lin is capable of hunting live prey if the need arises."
},
"kep plant": {
"number": [1, 4, 0],
"morale": [1, 4, 3],
"hit dice": [20, 6, 0],
"armour": 2,
"environ": ["land"],
"land speed": [0,0,0],
"ms": [1, 4, 0],
"in": [1, 4, 0],
"dx": [3, 6, 0],
"ch": [1, 4, 0],
"cn": [1, 10, 11],
"ps": [1, 12, 30],
"attacks": {"snare": [5, 6, 0]},
"mutations": ["Dissolving Juices", "Seed Mobility", "Modified Vines/Roots"],
"description": "[Sand Devil] This hideous carnivorous plant prefers sandy soil and will not allow other plants to occupy the same ground. It grows entirely underground, throwing a network of pressure-sensitive roots below the surface of a 30-meter diameter area. These roots snap out of the ground to entangle and constrict prey unknowingly walking over the plant. Its roots do 5d6 damage per Action Turn and gradually grow into and digest the flesh of dead victims. After feeding, the Kep releases a mobile seed that burrows 60 meters away and begins sending out its own roots. When a Kep fails a Morale Check, it retreats underground."
},
"kamodo": {
"number": [1, 4, -2],
"morale": [1, 4, 5],
"hit dice": [10, 12, 0],
"armour": 1,
"environ": ["land"],
"land speed": [24,1800,72],
"ms": [1, 10, 8],
"in": [1, 4, 0],
"dx": [1, 10, 2],
"ch": [1, 4, 0],
"cn": [1, 10, 11],
"ps": [4, 20, 80],
"attacks": {"bite": [6, 8, 0], "tailslap": [5,6,0]},
"mutations": ["Absorption (Heat)", "Intuition", "Mental Shield", "Molecular Disruption", "Reflection", "Sonic Blast (3x Strength)", "Will Force"],
"description": "[Thunder Lizard] This 18-meter tall mutated forest iguana is one of the most fearsome carnivores in the entire Gamma World."
},
"keeshin": {
"number": [1, 4, 0],
"morale": [1, 4, 4],
"hit dice": [7, 6, 0],
"armour": 3,
"environ": ["land", "water", "air"],
"land speed": [6,600,12],
"water speed": [12, 900, 18],
"air speed": [0, 900, 36],
"ms": [1, 10, 11],
"in": [1, 10, 11],
"dx": [3, 6, 0],
"ch": [1, 4, 0],
"cn": [3, 6, 0],
"ps": [3, 4, 6],
"attacks": {"bite": [1,4,0]},
"mutations": ["Cryokinesis", "Devolution", "Force Field Generation", "Life Leach", "Mental Blast", "Reflection", "Telekinesis", "Telekinetic Arm", "Telekinetic Flight"],
"description": "[Water Wierds] This 1-meter long, white mutated amphibian lives in small bodies of water. It is a greedy and solitary creature that lines its partially submerged stone dwellings with shiny objects of varying worth. Keeshins can stay submerged for an hour. They die if they are out of the water for more than 24 hours."
},
"lil": {
"number": [1, 20, 0],
"morale": [1, 4, 1],
"hit dice": [6, 4, 0],
"armour": 6,
"environ": ["land", "air"],
"land speed": [0,120,3],
"air speed": [6, 900, 18],
"ms": [1, 10, 8],
"in": [1, 10, 11],
"dx": [1, 10, 11],
"ch": [1, 10, 11],
"cn": [1, 4, 6],
"ps": [1, 4, 2],
"attacks": {},
"mutations": ["Anti-Life Leach", "Dual Brain", "Empathy", "Force Field Generation", "Illusion Generation", "Light Generation", "Mass Mind", "Physical Reflection", "Shorter", "Telepathy", "Total Healing", "Wings"],
"description": "[Wee Ones] The grace and beauty of these 20-centimeter tall Humanoid hides an incredible toughness. They live only in jungles and forests where they build mazes of brambles to hide and protect their dwellings. They often possess artefacts of great sophistication, though their ability to use these items is limited due to their size. Non-artefact equipment will invariably be Tech Level I or II. Lil are nocturnal in nature and their bodies give off light sufficient to illuminate a 90-centimeter area around them. They are much like fireflies in that this effect is involuntary and only happens when the Lil are in darkness or very deep shadow. In addition to species mutations, each Lil will have 1 randomly selected Mental Mutation. Unlike most species with Anti-Life Leach, the Lil are not albinos."
},
"manta": {
"number": [1, 4, -2],
"morale": [1, 4, 4],
"hit dice": [10, 8, 0],
"armour": 3,
"environ": ["land"],
"land speed": [12,600,12],
"ms": [1, 10, 2],
"in": [1, 8, 1],
"dx": [3, 6, 0],
"ch": [1, 4, 0],
"cn": [1, 10, 11],
"ps": [1, 20, 20],
"attacks": {"bite": [5,6,0], "claw 1": [3,6,0], "claw 2": [3,6,0]},
"mutations": ["Speed Increase"],
"description": "[Green Renders] These mutated Praying Mantises stand 3 meters at the shoulder and are voracious carnivores. They will not attack or keep fighting a party that is clearly stronger, however. Mantas can be recruited with offers of food, but cannot be hired."
}

View File

@ -9,14 +9,14 @@ class EncounterTable:
'centisteed', 'rakox', 'rakox', 'brutorz', 'hoop', 'hawkoid', 'hopper', 'hopper', None, None],
'mountains': ['hisser', 'blight', 'parn', 'zarn', 'manta', 'orlen', 'zeethh', 'sep', 'arn', 'yexil', 'herp',
'wardent', 'kep plant', 'crep plant', 'cal then', 'ark', 'hawkoid', 'podog', 'carrin', None],
'forest': ['hisser', 'sep', 'blaash', 'blackun', 'terl', 'win seen', 'pineto', 'perth', 'obb', 'kailin',
'forest': ['hisser', 'sep', 'blaash', 'blackun', 'terl', 'win seen', 'pineto', 'perth', 'obb', 'kai lin',
'gren', 'badder', 'arn', 'lil', 'blood bird', 'horl choo', 'soul besh', 'dabber', 'centisteed',
None],
'desert': ['serf', 'kamodo', 'blight', 'perth', 'parn', 'zarn', 'yexil', 'hisser', 'sep', 'cal then',
'manta', 'kep plant', 'carrin', 'podog', None, None, None, None, None, None],
'watery': ['win seen', 'crep plant', 'seroon lou', 'terl', 'ert telden', 'barl nep', 'ert', 'fleshin',
'keeshin', 'narl ep', 'menarl', 'herkel', 'ber lep', 'cren tosh', 'fen', 'gator', None, None, None,
None],
'keeshin', 'narl ep', 'menarl', 'herkel', 'ber lep', 'cren tosh', 'fen', 'gator', None, None,
None, None],
'ruins': ['arn', 'obb', 'hoop', 'android', 'badder', 'serf', 'blaash', 'yexil', 'manta', 'ark', 'orlen',
'dabber', 'sleeth', 'carrin', 'squeeker', 'squeeker', 'squeeker', None, None, None],
'deathlands': ['android', 'hisser', 'blight', 'zarn', 'perth', 'blaash', 'serf', 'parn', 'squeeker',

View File

@ -3,6 +3,33 @@
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="styles.css">
<style>
#resultSection {
font-family: Arial, sans-serif;
font-size: 14pt;
}
.container {
display: grid;
grid-template-columns: 1.1fr 1fr 0.9fr;
grid-template-rows: 1.2fr 0.5fr 1.3fr;
gap: 0px 0px;
grid-auto-flow: row;
}
.container.android {
display: flex;
flex-direction: column;
gap: 20px;
}
.creature_id { grid-area: 1 / 1 / 2 / 2; }
.creature_profile { grid-area: 1 / 2 / 2 / 3; }
.creature_abilities { grid-area: 1 / 3 / 2 / 4; }
.creature_attacks { grid-area: 2 / 1 / 3 / 4; }
.creature_mutations { grid-area: 2 / 2 / 3 / 2; }
.creature_description { grid-area: 3 / 1 / 4 / 4; }
</style>
<title>Gamma World Encounter Check</title>
<script src="config.js"></script>
<script src="encounter.js" defer></script>

View File

@ -32,11 +32,15 @@ document.getElementById('terrainForm').addEventListener('submit', function (even
console.log(name);
setResultImage(name);
} else { // Long version of the response
setResultTable(json);
if (json.name === 'android') {
androidResultTable(json);
} else {
setCreatureTable(json);
}
}
})
.catch((err) => {
err.text().then((errorMessage) => {
err.text().then(() => {
imgElement.src = 'img/404.jpg';
});
});
@ -46,79 +50,170 @@ document.getElementById('terrainForm').addEventListener('submit', function (even
imgElement.src = 'img/' + name + ".jpg";
console.log(imgElement.src);
imgElement.onerror = function () {
this.onerror = null;
this.src = 'img/404.jpg';
};
resultSection.appendChild(imgElement);
}
function setResultTable(data) {
let table = document.createElement('table');
table.style.fontSize = '18px';
table.style.fontFamily = 'Arial';
function formatDiceMnemonic(data) {
return Array.isArray(data) ?
data[0] + "d" + data[1] + (data[2] === 0 ? "" : "+" + data[2]) :
data.toString();
}
for (let key in data) {
let tr = document.createElement('tr');
let tdKey = document.createElement('td');
let tdValue = document.createElement('td');
function formatSpeedMnemonic(data){
return data[0] + '/' + data[1] + '/' + data[2];
}
tdKey.innerText = key.toUpperCase();
function androidResultTable(data) {
let container = document.createElement('div');
container.className = 'container android'; // Added 'android' class
// Make the key names bold:
tdKey.style.fontWeight = 'bold';
let creatureTitle = document.createElement('h2');
creatureTitle.textContent = data.name.toUpperCase();
container.appendChild(creatureTitle)
let image = document.createElement('img');
image.src = 'img/android.jpg';
image.onerror = () => { image.src = 'img/404.jpg' };
image.style.width = '275px';
image.style.height = '275px';
container.appendChild(image);
let description = createDescriptionSection(data);
container.appendChild(description);
if (Array.isArray(data[key])) {
if (key === 'environ' || key === 'mutations') {
tdValue.innerText = data[key].join(', ');
} else if (key === 'land speed' || key === 'water speed' || key === 'air speed') {
tdValue.innerText = `${data[key][0]}/${data[key][1]}/${data[key][2]}`;
} else {
tdValue.innerText = `${data[key][0]}d${data[key][1]}${data[key][2] === 0 ? "" : "+" + data[key][2]}`;
}
} else if (key === 'attacks' && typeof data[key] === 'object') {
let attacksTable = document.createElement('table');
for (let attack in data[key]) {
let tr = document.createElement('tr');
let tdKey = document.createElement('td');
let tdValue = document.createElement('td');
tdKey.innerText = attack;
Object.entries(data).forEach(([key, value]) => {
if (data[key][attack].join() === "0,0,0") {
tdValue.innerText = "See notes below";
} else {
tdValue.innerText = `${data[key][attack][0]}d${data[key][attack][1]}${data[key][attack][2] === 0 ? "" : "+" + data[key][attack][2]}`;
}
if (key === 'thinker' || key === 'worker' || key === 'warrior') {
let typeTitle = document.createElement('h2');
typeTitle.textContent = key.toUpperCase(); // Display the type (worker, warrior, thinker)
container.appendChild(typeTitle);
let profile = createProfileSection(value);
let abilities = createAbilitiesSection(value);
container.appendChild(profile);
container.appendChild(abilities);
tr.appendChild(tdKey);
tr.appendChild(tdValue);
attacksTable.appendChild(tr);
}
tdValue.appendChild(attacksTable);
} else {
tdValue.innerText = data[key];
}
});
if (key === 'name') {
let imgURL = "img/" + data[key] + ".jpg";
tdKey.innerHTML = `
<div>
<h2 style=\'font-size: 1.2em;\'>${data[key].toUpperCase()}</h2>
</div>`;
tdValue.innerHTML = `
<div>
<img src='${imgURL}' onerror='this.src="img/404.jpg";' style='width: 230px; height: 230px;'>
</div>`;
console.log(tdValue.innerHTML);
}
resultSection.appendChild(container);
}
tr.appendChild(tdKey);
tr.appendChild(tdValue);
table.appendChild(tr);
function createProfileSection(data) {
let profile = document.createElement('div');
profile.className = 'creature_profile';
let profileHTML = `
<h3>Profile</h3>
<table>
<tr><td><b>NUMBER</b></td> <td>${formatDiceMnemonic(data.number)}</td></tr>
<tr><td><b>MORALE</b></td> <td>${formatDiceMnemonic(data.morale)}</td></tr>
<tr><td><b>HIT DICE</b></td> <td>${formatDiceMnemonic(data['hit dice'])}</td></tr>
<tr><td><b>ARMOUR</b></td> <td>${data.armour}</td></tr>
<tr><td><b>ENVIRON</b></td> <td>${data.environ.join(', ')}</td></tr>
`;
if(data['land speed']){
profileHTML += `<tr><td><b>LAND SPEED</b></td> <td>${formatSpeedMnemonic(data['land speed'])}</td></tr>`;
}
if(data['water speed']){
profileHTML += `<tr><td><b>WATER SPEED</b></td> <td>${formatSpeedMnemonic(data['water speed'])}</td></tr>`;
}
if(data['air speed']){
profileHTML += `<tr><td><b>AIR SPEED</b></td> <td>${formatSpeedMnemonic(data['air speed'])}</td></tr>`;
}
profileHTML += '</table>';
resultSection.appendChild(table);
profile.innerHTML = profileHTML;
return profile;
}
function createAbilitiesSection(data) {
// Abilities section
let abilities = document.createElement('div');
abilities.className = 'creature_abilities';
abilities.innerHTML = `
<h3>Abilities</h3>
<table>
<tr><td><b>MS</b></td> <td>${formatDiceMnemonic(data.ms)}</td></tr>
<tr><td><b>IN</b></td> <td>${formatDiceMnemonic(data.in)}</td></tr>
<tr><td><b>DX</b></td> <td>${formatDiceMnemonic(data.dx)}</td></tr>
<tr><td><b>CH</b></td> <td>${formatDiceMnemonic(data.ch)}</td></tr>
<tr><td><b>CN</b></td> <td>${formatDiceMnemonic(data.cn)}</td></tr>
<tr><td><b>PS</b></td> <td>${formatDiceMnemonic(data.ps)}</td></tr>
</table>
`;
return abilities;
}
function createAttacksSection(data) {
// Attacks section
let attacks = document.createElement('div');
attacks.className = 'creature_attacks';
let attacksHTML = '<h3>Attacks</h3>';
let attacksTable = '<table>';
for (let attack in data.attacks) {
let mnemonic_display;
mnemonic_display = formatDiceMnemonic(data.attacks[attack]);
if (mnemonic_display === "0d0") {
mnemonic_display = 'See Description';
}
attacksTable += `<tr><td><b>${attack}</b></td><td>${mnemonic_display}</td></tr>`
}
attacksTable += '</table>';
attacks.innerHTML = attacksHTML + attacksTable;
return attacks
}
function createMutationsSection(mutarray) {
// Mutations section
let mutations = document.createElement('div');
mutations.className = 'creature_mutations';
let mutationsHTML = '<h3>Mutations</h3>';
let mutationsList = mutarray.reduce((result, mutation) => result + `<li>${mutation}</li>`, '');
mutationsHTML += `<ul>${mutationsList}</ul>`;
mutations.innerHTML = mutationsHTML
return mutations
}
function createDescriptionSection(data) {
// Description section
let description = document.createElement('div');
description.className = 'creature_description';
let descriptionHTML = `
<h3>Description</h3>
<p>${data.description}</p>
`;
description.innerHTML = descriptionHTML;
return description
}
function setCreatureTable(data) {
let container = document.createElement('div');
container.className = 'container';
// Creature ID section
let creatureId = document.createElement('div');
creatureId.className = 'creature_id';
creatureId.innerHTML = `
<h2>${data.name.toUpperCase()}</h2>
<img src='img/${data.name}.jpg' onerror='this.src="img/404.jpg";' style='width: 275px; height: 275px;'>
`;
let profile = createProfileSection(data);
let abilities = createAbilitiesSection(data);
let attacks = createAttacksSection(data);
let mutations = createMutationsSection(data.mutations); // Notice the data difference
let description = createDescriptionSection(data);
container.appendChild(creatureId);
container.appendChild(profile);
container.appendChild(abilities);
container.appendChild(attacks);
container.appendChild(mutations);
container.appendChild(description);
resultSection.appendChild(container);
}
}, 1000);
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 54 KiB

BIN
web/img/kai lin.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 29 KiB