Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(content,port): Dermatweaks #4238

Merged
merged 5 commits into from
Feb 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions data/json/furniture_and_terrain/terrain-walls.json
Original file line number Diff line number Diff line change
Expand Up @@ -907,6 +907,27 @@
},
"flags": [ "TRANSPARENT", "FLAMMABLE_HARD", "NOITEM", "REDUCE_SCENT", "MOUNTABLE" ]
},
{
"type": "terrain",
"id": "t_wall_dirt",
"name": "smooth dirt wall",
"looks_like": "t_wall_rammed_earth",
"description": "A solid wall of compressed dirt, mixed with… something to keep it stable. Its surface glistens slightly, and it smells like rotten milk.",
"symbol": "LINE_OXOX",
"color": "brown",
"move_cost": 0,
"coverage": 100,
"flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "AUTO_WALL_SYMBOL", "MINEABLE", "BLOCK_WIND" ],
"connects_to": "WALL",
"bash": {
"str_min": 30,
"str_max": 200,
"sound": "heavy rumbling!",
"sound_fail": "thump",
"ter_set": "t_mud_underground",
"items": [ { "item": "material_soil", "count": [ 50, 100 ] } ]
}
},
{
"type": "terrain",
"id": "t_junk_wall",
Expand Down
14 changes: 14 additions & 0 deletions data/json/harvest.json
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,20 @@
],
"//": "what, you thought jabberwocks only had one heart?"
},
{
"id": "incubator_mammal",
"//": "the larvae ate a lot of the good stuff, mutant meat represents the grubs",
"type": "harvest",
"message": "<incubator_mammal>",
"entries": [
{ "drop": "meat", "type": "flesh", "mass_ratio": 0.05 },
{ "drop": "mutant_meat", "type": "flesh", "mass_ratio": 0.2 },
{ "drop": "meat_scrap", "type": "flesh", "mass_ratio": 0.1 },
{ "drop": "stomach", "scale_num": [ 0, 1 ], "max": 1, "type": "offal" },
{ "drop": "bone", "type": "bone", "mass_ratio": 0.15 },
{ "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }
]
},
{
"id": "arachnid_tainted",
"type": "harvest",
Expand Down
90 changes: 90 additions & 0 deletions data/json/mapgen/bugs/nest_dermatik.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
[
{
"type": "mapgen",
"method": "json",
"om_terrain": "nest_dermatik",
"object": {
"fill_ter": "t_region_groundcover",
"rows": [
" ",
" t t - t ",
" t - ---- ",
" ---...-..--- ",
" --.--..-...--- - ",
" -..0#.-#0..------ ",
" --#.##.###..-..--- ",
" t---#....-#.###..-- t ",
" -###..###.....#0--- ",
" -#..###..#....#--.- ",
" --#.######....##0.-- ",
" --...#.#.....##...-- ",
" --#.##.#.......#..--- ",
" t--######......#.#0-- ",
" -...#........###...- ",
" -#.0.##.........##.-- ",
" --.#.........##.--- ",
" --###.......###.#.0-- ",
"--.0..#..#.#.#..0#...- ",
" -#.##########......-- ",
" ------...##..0....-- ",
" ----#..0##-.----- ",
" t ---------- - t ",
" --- -- "
],
"terrain": {
"t": [ "t_region_tree", "t_region_groundcover" ],
",": [ "t_region_tree" ],
"-": [ "t_wall_dirt" ],
"#": [ [ "t_paper", 3 ], "t_wall_dirt" ],
".": [ "t_mud_underground", [ "t_floor_paper", 2 ] ],
"0": [ "t_pit_shallow" ]
},
"monster": { "0": { "group": "GROUP_DERMATIK_INCUB", "chance": 70 } },
"place_fields": [
{ "field": "fd_blood", "x": [ 3, 19 ], "y": [ 4, 20 ], "repeat": [ 30, 50 ] },
{ "field": "fd_blood_insect", "x": [ 3, 19 ], "y": [ 4, 20 ], "repeat": [ 20, 30 ] }
],
"place_monster": [
{ "monster": "mon_dermatik_larva", "x": [ 8, 16 ], "y": [ 8, 16 ], "repeat": [ 2, 3 ] },
{ "monster": "mon_dermatik_midwife", "x": [ 10, 12 ], "y": [ 14, 17 ], "repeat": [ 1, 2 ] },
{ "monster": "mon_dermatik", "x": [ 0, 23 ], "y": [ 0, 23 ], "repeat": [ 4, 6 ] }
]
}
},
{
"type": "mapgen",
"method": "json",
"om_terrain": "nest_dermatik_roof",
"object": {
"fill_ter": "t_open_air",
"rows": [
" ",
" ",
" ,, ",
" ,,,,,,,,, ",
" ,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,,,,,,,, ",
" ,,,,,,,,,,,, ",
" ,,, , ",
" "
],
"terrain": { ",": [ "t_roof_paper" ] },
"place_monster": [ { "monster": "mon_dermatik", "x": [ 6, 16 ], "y": [ 6, 16 ], "repeat": [ 1, 4 ] } ]
}
}
]
18 changes: 18 additions & 0 deletions data/json/monster_special_attacks/spells.json
Original file line number Diff line number Diff line change
Expand Up @@ -183,5 +183,23 @@
"flags": [ "NO_EXPLOSION_VFX", "SILENT" ],
"min_range": 20,
"max_range": 40
},
{
"type": "SPELL",
"id": "dermatik_emergence",
"name": "Dermatik Emergence",
"description": "The incubating dermatik larvae flee their host.",
"flags": [ "HOSTILE_SUMMON", "PERMANENT", "RANDOM_DAMAGE" ],
"valid_targets": [ "ground", "self" ],
"base_casting_time": 20,
"min_range": 1,
"max_range": 5,
"min_damage": 1,
"max_damage": 3,
"damage_type": "stab",
"min_aoe": 2,
"max_aoe": 3,
"effect": "summon",
"effect_str": "mon_dermatik_larva"
}
]
13 changes: 11 additions & 2 deletions data/json/monstergroups/bugs.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,17 @@
{
"name": "GROUP_DERMATIK",
"type": "monstergroup",
"default": "mon_dermatik",
"monsters": [ { "monster": "mon_dermatik", "freq": 100, "cost_multiplier": 1, "conditions": [ "SPRING", "SUMMER", "AUTUMN" ] } ]
"default": "mon_null",
"monsters": [ { "monster": "mon_dermatik", "freq": 1000, "cost_multiplier": 1 } ]
},
{
"name": "GROUP_DERMATIK_INCUB",
"type": "monstergroup",
"default": "mon_dermatik_incubator_deer",
"monsters": [
{ "monster": "mon_dermatik_incubator_spider", "freq": 500, "cost_multiplier": 1 },
{ "monster": "mon_dermatik_incubator_dog", "freq": 100, "cost_multiplier": 1 }
]
},
{
"type": "monstergroup",
Expand Down
82 changes: 75 additions & 7 deletions data/json/monsters/insect_spider.json
Original file line number Diff line number Diff line change
Expand Up @@ -906,32 +906,33 @@
"id": "mon_dermatik",
"type": "MONSTER",
"name": { "str": "dermatik" },
"description": "A mutated wasp nearly the size of a cat, with a barbed ovipositor extruding from the abdomen.",
"description": "A colorful parasitoid wasp grown to the size of a dog, with a huge ovipositor extruding from her abdomen. It darts around in search of a suitable home for her many, many children.",
"default_faction": "dermatik",
"bodytype": "flying insect",
"species": [ "INSECT_FLYING" ],
"diff": 2,
"volume": "750 ml",
"weight": "1 kg",
"volume": "10 L",
"weight": "15 kg",
"hp": 60,
"speed": 110,
"material": [ "iflesh" ],
"symbol": "a",
"color": "red",
"aggression": 90,
"morale": 70,
"morale": 50,
"melee_skill": 6,
"melee_dice": 1,
"melee_dice_sides": 6,
"melee_cut": 3,
"dodge": 8,
"armor_cut": 6,
"armor_bash": 6,
"armor_bullet": 5,
"harvest": "arachnid",
"special_attacks": [ [ "DERMATIK", 25 ] ],
"anger_triggers": [ "FRIEND_ATTACKED", "PLAYER_WEAK" ],
"death_function": [ "NORMAL" ],
"flags": [ "HEARS", "SMELLS", "STUMBLES", "POISON", "FLIES", "PATH_AVOID_FIRE" ]
"flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "POISON", "FLIES", "PATH_AVOID_FIRE", "LOUDMOVES" ]
},
{
"id": "mon_dermatik_larva",
Expand All @@ -956,11 +957,78 @@
"melee_dice_sides": 1,
"melee_cut": 1,
"dodge": 1,
"harvest": "mammal_tiny",
"special_attacks": [ [ "DERMATIK_GROWTH", 14400 ] ],
"harvest": "arachnid",
"upgrades": { "age_grow": 21, "into": "mon_dermatik" },
"death_function": [ "NORMAL" ],
"flags": [ "HEARS", "SMELLS", "POISON", "CAN_DIG", "LARVA" ]
},
{
"id": "mon_dermatik_midwife",
"type": "MONSTER",
"name": { "str": "dermatik midwife", "str_pl": "dermatik midwives" },
"description": "A dermatik grown even larger, its wings and ovipositor chewed off by her sisters. It now stands watch in the nest, tending to the unfortunate hosts dragged home and ensuring they don't perish before their purpose is fulfilled.",
"copy-from": "mon_dermatik",
"volume": "17 L",
"weight": "25 kg",
"morale": 60,
"speed": 100,
"melee_cut": 10,
"vision_night": 8,
"delete": { "flags": [ "FLIES", "LOUDMOVES" ], "special_attacks": [ "DERMATIK" ] }
},
{
"id": "mon_dermatik_incubator_deer",
"type": "MONSTER",
"name": { "str": "motionless deer" },
"description": "A paralyzed, emaciated deer. It spasms as it notices your presence, terrified eyes darting around the muddy chamber when it fails to stand and flee.",
"copy-from": "mon_deer",
"default_faction": "dermatik",
"weight": "45 kg",
"hp": 40,
"speed": 20,
"aggression": 100,
"morale": 100,
"vision_day": 6,
"vision_night": 6,
"harvest": "incubator_mammal",
"special_attacks": [
[ "PARROT", 6 ],
{
"type": "spell",
"spell_data": { "id": "dermatik_emergence" },
"monster_message": "The sudden motion of their host cause some dermatik larvae to flee!",
"cooldown": 5
}
],
"reproduction": { "baby_monster": "mon_dermatik_larva", "baby_count": 2, "baby_timer": 30 },
"death_function": [ "NORMAL" ],
"flags": [ "SEES", "HEARS", "SMELLS", "WARM", "IMMOBILE", "PACIFIST" ]
},
{
"id": "mon_dermatik_incubator_dog",
"type": "MONSTER",
"copy-from": "mon_dermatik_incubator_deer",
"name": { "str": "helpless dog" },
"symbol": "d",
"color": "light_gray",
"description": "A barely living dog, panting in a pool of slime and blood. As you draw near it lets out a faint whimper, and you see the smallest hint of a twitch in its tail.",
"looks_like": "mon_dog",
"weight": "20 kg"
},
{
"id": "mon_dermatik_incubator_spider",
"type": "MONSTER",
"name": { "str": "twitching spider" },
"copy-from": "mon_dermatik_incubator_deer",
"material": [ "iflesh" ],
"species": [ "SPIDER" ],
"looks_like": "mon_spider_web",
"symbol": "s",
"color": "yellow",
"description": "A giant, mutated spider lying on its back, legs twitching without pause. A translucent slime, mixed with its ichor seeps from its joints, and its chitin is marked by numerous exit wounds.",
"weight": "30 kg",
"harvest": "arachnid"
},
{
"id": "mon_ant",
"type": "MONSTER",
Expand Down
13 changes: 13 additions & 0 deletions data/json/overmap/overmap_special/specials.json
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,19 @@
"rotate": false,
"spawns": { "group": "GROUP_BEE", "population": [ 20, 60 ], "radius": [ 2, 4 ] }
},
{
"type": "overmap_special",
"id": "Large Dermatik Nest",
"overmaps": [
{ "point": [ 0, 0, 0 ], "overmap": "nest_dermatik_north" },
{ "point": [ 0, 0, 1 ], "overmap": "nest_dermatik_roof_north" }
],
"locations": [ "land" ],
"city_distance": [ 20, -1 ],
"occurrences": [ 0, 3 ],
"flags": [ "WILDERNESS" ],
"spawns": { "group": "GROUP_DERMATIK", "population": [ 10, 20 ], "radius": [ 10, 15 ] }
},
{
"type": "overmap_special",
"id": "Rural Gas Station",
Expand Down
8 changes: 8 additions & 0 deletions data/json/overmap/overmap_terrain/overmap_terrain.json
Original file line number Diff line number Diff line change
Expand Up @@ -676,5 +676,13 @@
"color": "white",
"flags": [ "NO_ROTATE" ],
"see_cost": 5
},
{
"type": "overmap_terrain",
"id": [ "nest_dermatik", "nest_dermatik_roof" ],
"name": "mound of dirt",
"sym": "O",
"color": "brown",
"see_cost": 2
}
]
12 changes: 12 additions & 0 deletions data/json/snippets/mutant_anatomy.json
Original file line number Diff line number Diff line change
Expand Up @@ -245,5 +245,17 @@
"type": "snippet",
"category": "<acidant_harvest>",
"text": [ "<bug_harvest_acid_chitin>.", "<bug_harvest_acid_deeper>.", "<bug_harvest_acid_descriptive>." ]
},
{
"type": "snippet",
"category": "<incubator_mammal>",
"text": [
"The skin is so riddled with wounds that you barely need to cut to pull it away.",
"The poor creature has stopped breathing, but there's still a lot of movement in the corpse.",
"The larvae seem to have taken care to leave enough intact not to kill their host, but the rest is practically hollow.",
"You have to pause often to stomp on the slower grubs, who only now realized that their home is growing cold.",
"Its stomach is full of grubs even more malformed than the rest. The runt of the litter got recycled, it seems.",
"In the beginning you take care to separate parasite and host, but after a while you give up and start cutting through."
]
}
]
30 changes: 30 additions & 0 deletions data/json/speech.json
Original file line number Diff line number Diff line change
Expand Up @@ -3014,5 +3014,35 @@
"speaker": "mon_feral_human_chainsaw",
"sound": "vroom!",
"volume": 60
},
{
"type": "speech",
"speaker": [ "mon_dermatik_incubator_deer", "mon_dermatik_incubator_dog" ],
"sound": "heavy breathing",
"volume": 10
},
{
"type": "speech",
"speaker": [ "mon_dermatik_incubator_deer", "mon_dermatik_incubator_dog" ],
"sound": "labored breathing",
"volume": 10
},
{
"type": "speech",
"speaker": [ "mon_dermatik_incubator_deer", "mon_dermatik_incubator_dog" ],
"sound": "a whimper",
"volume": 10
},
{
"type": "speech",
"speaker": [ "mon_dermatik_incubator_dog" ],
"sound": "a rasping growl",
"volume": 10
},
{
"type": "speech",
"speaker": [ "mon_dermatik_incubator_spider" ],
"sound": "a quiet chittering",
"volume": 5
}
]
Loading