Skip to content

Commit

Permalink
New Exodii weapon, the Khuunäöfaai (#79001)
Browse files Browse the repository at this point in the history
* first draft incl. weapon, magazine, ammo and ammo type

* fix missing s in variants

* fix missing s in flags

* forgot to put in an ammo restriction

* fix missing values from ammo

* add missing symbols

* generic guns migrations

* smoke_big effect on firework ammo

* add copy-from and remove uneeded effects. trying to fix hard crash

* Update data/json/items/ammo/exodii.json

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>

* minor changes

* added comment for translators

* add cannon to recognized gun names

* common string between mag and gun added

* valid json

* changes to effects

* attempt to fix ammo error

* ditto

* i overlooked the umlauts and capitalization

* proper comma

* replace ammo with ammo_type in magazine pocket

* make fireworks behave like a firework

* unique ammo effect. still needs tweaking.

* tweakin

* add to guns_blacklist with the other exodii weapons

* please recognize it now

* capitalize that K

* GOTCHA

* Update exodii.json

* fireworks doesn't have recoil does it?

* second ammo type

* missing types

* add price

* forgot ammo_type

* Update exodii.json

* Update gg_ammo_migration.json

* Update gg_magazines_blacklist.json

* more than copy-from

* no comma

* forgot a SECOND comma

* guardians suggestion, different ammo types

* third ammo type, corrosive payload, first draft.

* Update exodii.json

* Update exodii.json

* gun takes the new ammo

* forgot the generic guns migrations

* linted gg_ammo_migration

* I wasn't satisfied with the description

* corrosive ammo now uses a spell rather than an ammo effect, take 1

* make this a teensy bit more deadly

* field_id not field_type

* tweak some values

* tweaked the wrong values

* more tweaking

* the only reason i found out this crashed the game is because I saw a pristine RV in my debug world and wanted to blow it up

* the ammo costs more money than the canisters. selling an empty canister is now a negative.

* final ammo type, first draft

* stupido

* Update exodii.json

* Update exodii.json

* Update exodii.json

* divergent JSONification theory

* THE GLUE.

* change the field type that is used by the adhesive to a unique one

* missing true

* Update field_type.json

* edit looks like

* complete overhaul of the GLUE.

* OH its FURN transform not FUR

* tweaky

* Revert "tweaky"

This reverts commit fe4bca7.

* too big

* tweaky 2

* Update exodii.json

* Update exodii.json

* no roof

* Nine sells it

* up price to match the sapra and set the thing to tier2

* Update exodii.json

* canisters should always be full

* shit hang on

* Update exodii_merchant_itemlist.json

* update description

* last touches.

---------

Co-authored-by: Anton Simakov <67688115+GuardianDll@users.noreply.github.com>
  • Loading branch information
Daved27hundred and GuardianDll authored Feb 6, 2025
1 parent a28c82d commit f6f2416
Show file tree
Hide file tree
Showing 11 changed files with 347 additions and 4 deletions.
18 changes: 18 additions & 0 deletions data/json/ammo_effects.json
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,24 @@
"type": "ammo_effect",
"explosion": { "power": 66 }
},
{
"id": "EXPLOSIVE_EXODII_FIREWORK",
"//": "a large, shockwave like explosion with no shrapnel.",
"type": "ammo_effect",
"explosion": { "power": 318 }
},
{
"id": "CORROSIVE",
"type": "ammo_effect",
"always_cast_spell": true,
"spell_data": { "id": "spell_corrosive_spray" }
},
{
"id": "GLUE_FOAM",
"type": "ammo_effect",
"always_cast_spell": true,
"spell_data": { "id": "spell_adhesive_spray" }
},
{
"id": "EXPLOSIVE_HESHOT",
"type": "ammo_effect",
Expand Down
12 changes: 12 additions & 0 deletions data/json/furniture_and_terrain/terrain-walls.json
Original file line number Diff line number Diff line change
Expand Up @@ -2074,5 +2074,17 @@
"copy-from": "t_column",
"name": "pillar",
"description": "A concrete column that helps keep the mine's ceiling and walls from collapsing."
},
{
"type": "terrain",
"id": "t_foam_wall",
"copy-from": "t_abstract_wall_concrete",
"name": "hardened resin mass",
"looks_like": "t_wax",
"color": "white",
"flags": [ "NOITEM", "MINEABLE", "SUPPORTS_ROOF", "WALL", "MINEABLE" ],
"roof": "t_foam_roof",
"description": "A mass of expansive foam that has hardened like a rock, tough enough to stop most zombies from breaking through. It's big enough to walk ontop of.",
"bash": { "str_min": 38, "str_max": 120, "sound": "crunch!", "sound_fail": "whump!", "ter_set": "t_null" }
}
]
62 changes: 62 additions & 0 deletions data/json/items/ammo/exodii.json
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,68 @@
"effects": [ "NEVER_MISFIRES" ],
"casing": "caotel_cell_spent"
},
{
"id": "khuunaofaai_ammo_firework",
"type": "AMMO",
"range": 100,
"name": { "str": "Khuunäöfaai firework payload" },
"description": "Pressurized chemical payload for the Khuunäöfaai. Highly reactive to oxygen, removing it from the tank would be a bad idea.",
"ammo_type": "khuunaofaai_payload",
"effects": [ "NEVER_MISFIRES", "NON_FOULING", "TRAIL", "FLASHBANG", "SMOKE_BIG", "EXPLOSIVE_EXODII_FIREWORK" ],
"damage": { "damage_type": "bullet", "amount": 40, "armor_penetration": 4 },
"recoil": 10,
"dispersion": 20,
"price_postapoc": "1 USD",
"color": "green",
"symbol": "=",
"weight": "4 g",
"volume": "125 ml",
"flags": [ "NO_DROP" ]
},
{
"id": "khuunaofaai_ammo_incendiary",
"type": "AMMO",
"range": 88,
"name": { "str": "Khuunäöfaai incendiary payload" },
"description": "Pressurized chemical payload for the Khuunäöfaai. Highly flammable and reactive to oxygen, removing it from the tank would be a bad idea.",
"ammo_type": "khuunaofaai_payload_fire",
"effects": [ "NEVER_MISFIRES", "NON_FOULING", "TRAIL", "PYROPHORIC" ],
"damage": { "damage_type": "bullet", "amount": 44, "armor_penetration": 4 },
"recoil": 10,
"dispersion": 20,
"price_postapoc": "10 USD 80 cent",
"color": "green",
"symbol": "=",
"weight": "12 g",
"volume": "125 ml",
"flags": [ "NO_DROP" ]
},
{
"id": "khuunaofaai_ammo_corrosive",
"type": "AMMO",
"range": 100,
"name": { "str": "Khuunäöfaai corrosive payload" },
"description": "Pressurized chemical payload for the Khuunäöfaai. Essentially a juiced up version of pirahna solution, removing it from the tank would be a bad idea.",
"ammo_type": "khuunaofaai_payload_acid",
"effects": [ "NEVER_MISFIRES", "NON_FOULING", "CORROSIVE" ],
"damage": { "damage_type": "acid", "amount": 30, "armor_penetration": 4 },
"copy-from": "khuunaofaai_ammo_firework",
"weight": "6 g",
"price_postapoc": "8 USD 66 cent"
},
{
"id": "khuunaofaai_ammo_foam",
"type": "AMMO",
"range": 100,
"name": { "str": "Khuunäöfaai foaming payload" },
"description": "Pressurized chemical payload for the Khuunäöfaai. An incredibly powerful binding agent and sealant, removing it from the tank would be a bad idea.",
"ammo_type": "khuunaofaai_payload_glue",
"effects": [ "NEVER_MISFIRES", "NON_FOULING", "GLUE_FOAM" ],
"damage": { "damage_type": "bullet", "amount": 10, "armor_penetration": 4 },
"copy-from": "khuunaofaai_ammo_firework",
"weight": "8 g",
"price_postapoc": "5 USD 10 cent"
},
{
"id": "33naval_ball",
"type": "AMMO",
Expand Down
24 changes: 24 additions & 0 deletions data/json/items/ammo_types.json
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,30 @@
"name": "Caotel cell",
"default": "caotel_cell"
},
{
"type": "ammunition_type",
"id": "khuunaofaai_payload",
"name": "Khuunäöfaai firework payload",
"default": "khuunaofaai_ammo_firework"
},
{
"type": "ammunition_type",
"id": "khuunaofaai_payload_fire",
"name": "Khuunäöfaai incendiary payload",
"default": "khuunaofaai_ammo_incendiary"
},
{
"type": "ammunition_type",
"id": "khuunaofaai_payload_acid",
"name": "Khuunäöfaai corrosive payload",
"default": "khuunaofaai_ammo_corrosive"
},
{
"type": "ammunition_type",
"id": "khuunaofaai_payload_glue",
"name": "Khuunäöfaai adhesive payload",
"default": "khuunaofaai_ammo_foam"
},
{
"type": "ammunition_type",
"id": "glowstick_juice",
Expand Down
81 changes: 81 additions & 0 deletions data/json/items/gun/exodii.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,87 @@
"flags": [ "NEVER_JAMS", "RELOAD_EJECT", "RELOAD_ONE", "EASY_CLEAN" ],
"melee_damage": { "bash": 12 }
},
{
"id": "khuunaofaai",
"//": "note for translators, its pronounced \"Ka-hu-na-o-fa-aye\" and doesn't actually mean anything, you can translate the syllables directly.",
"copy-from": "m4_carlgustav",
"looks_like": "m202_flash",
"type": "GUN",
"name": { "str": "Exodii ordnance cannon" },
"description": "An oddball in the Exodii's oddball selection of armaments - This robust, shoulder mounted weapons platform started life not as a weapon, but as a ceremonial firework cannon, mounted in droves atop of parade tanks the size of buildings by some globe spanning military culture. Little of its original design remains under the retrofits and wear, with even its engravings worn down to nothing by time. It finds its niche in disposing incoming hordes from large distances, helped by the variety of chemical payloads its been modified to fire.",
"weight": "8180 g",
"volume": "10360 ml",
"material": [ "steel", "gold" ],
"longest_side": "1080 mm",
"price_postapoc": "125 USD",
"variant_type": "gun",
"variants": [
{
"id": "Khuunaofaai",
"name": { "str": "Khuunäöfaai ordnance cannon" },
"description": "An oddball in the Exodii's oddball selection of armaments - This robust, shoulder mounted weapons platform started life not as a weapon, but as a ceremonial firework cannon, mounted in droves atop of parade tanks the size of buildings by some globe spanning military culture. Little of its original design remains under the retrofits and wear, with even its engravings worn down to nothing by time. The Khuunäöfaai finds its niche in disposing incoming hordes from large distances, helped by the variety of chemical payloads its been modified to fire.",
"weight": 1
}
],
"color": "red",
"valid_mod_locations": [ [ "sights_mount", 1 ], [ "sling", 1 ] ],
"flags": [ "NEVER_JAMS", "NON_FOULING" ],
"melee_damage": { "bash": 12 },
"pocket_data": [
{
"magazine_well": "1250 ml",
"pocket_type": "MAGAZINE_WELL",
"item_restriction": [
"exodii_khuunaofaai_mag_firework",
"exodii_khuunaofaai_mag_incendiary",
"exodii_khuunaofaai_mag_corrosive",
"exodii_khuunaofaai_mag_adhesive"
]
}
],
"reload_noise_volume": 20,
"ammo": [ "khuunaofaai_payload", "khuunaofaai_payload_fire", "khuunaofaai_payload_acid", "khuunaofaai_payload_glue" ]
},
{
"id": "spell_corrosive_spray",
"type": "SPELL",
"name": { "str": "corrosive spray", "//~": "NO_I18N" },
"description": { "str": "Your weapon coats its target in highly corrosive chemicals", "//~": "NO_I18N" },
"effect": "attack",
"shape": "blast",
"valid_targets": [ "hostile", "ally", "ground" ],
"effect_str": "corroding",
"min_duration": 1300,
"max_duration": 1300,
"min_aoe": 6,
"max_aoe": 6,
"difficulty": 1,
"min_range": 10,
"max_range": 10,
"field_id": "fd_acid",
"min_field_intensity": 3,
"max_field_intensity": 3
},
{
"id": "spell_adhesive_spray",
"type": "SPELL",
"name": { "str": "adhesive spray", "//~": "NO_I18N" },
"description": { "str": "Your weapon coats its target in quickly hardening resin", "//~": "NO_I18N" },
"effect": "ter_transform",
"effect_str": "exodii_foam",
"shape": "blast",
"valid_targets": [ "ground" ],
"min_aoe": 5,
"max_aoe": 5,
"difficulty": 1,
"min_range": 10,
"max_range": 10
},
{
"type": "ter_furn_transform",
"id": "exodii_foam",
"terrain": [ { "result": "t_foam_wall", "valid_flags": [ "FLAT" ] } ]
},
{
"id": "sapra",
"looks_like": "smle_mk3",
Expand Down
121 changes: 121 additions & 0 deletions data/json/items/magazine/exodii.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,127 @@
"flags": [ "MAG_BULKY" ],
"pocket_data": [ { "pocket_type": "MAGAZINE", "rigid": true, "ammo_restriction": { "273x44": 5 } } ]
},
{
"id": "exodii_khuunaofaai_mag_firework",
"looks_like": "metal_tank_little",
"type": "MAGAZINE",
"name": { "str": "ordnance cannon celebration canister" },
"description": "A pressurized tank containing the original firework payload of the Exodii's own ordnance cannon. This chemical payload contains two different compounds of copper, so that the projectiles burn a sharp blue and green to represent the united Earth it came from. It isn't intended for combat, but getting hit by a massive firework is dangerous enough that it was brought along. The tank capacity is larger than the other loads the Exodii created for it.",
"weight": "1268 g",
"volume": "1250 ml",
"variant_type": "gun",
"variants": [
{
"id": "exodii_khuunaofaai_mag_firework",
"name": { "str": "Khuunäöfaai celebration canister" },
"description": "A pressurized tank containing the original firework payload of the Khuunäöfaai. This chemical payload contains two different compounds of copper, so that the projectiles burn a sharp blue and green to represent the united Earth it came from. It isn't intended for combat, but getting hit by a massive firework is dangerous enough that it was brought along. The tank capacity is larger than the other loads the Exodii created for it.",
"weight": 1
}
],
"symbol": "#",
"color": "light_gray",
"ammo_type": [ "khuunaofaai_payload" ],
"capacity": 10,
"count": 10,
"longest_side": "160 mm",
"price_postapoc": "10 USD",
"pocket_data": [
{
"pocket_type": "MAGAZINE",
"rigid": true,
"airtight": true,
"ammo_restriction": { "khuunaofaai_payload": 10 },
"watertight": true
}
],
"flags": [ "MAG_BULKY", "NO_UNLOAD", "NO_RELOAD" ],
"material": "steel"
},
{
"id": "exodii_khuunaofaai_mag_incendiary",
"copy-from": "exodii_khuunaofaai_mag_firework",
"ammo_type": [ "khuunaofaai_payload_fire" ],
"capacity": 4,
"count": 4,
"name": { "str": "ordnance cannon incendiary canister" },
"type": "MAGAZINE",
"description": "A pressurized tank containing one of the special payloads the Exodii made for their ordnance cannon, something akin to white phosphorous on your Earth. Its simplicity and effectiveness against targets big and small makes it the cannon's most popular ammunition by far.",
"variant_type": "gun",
"variants": [
{
"id": "exodii_khuunaofaai_mag_incendiary",
"name": { "str": "Khuunäöfaai incendiary canister" },
"description": "A pressurized tank containing one of the special payloads the Exodii made for the Khuunäöfaai, something akin to white phosphorous on your Earth. Its simplicity and effectiveness against targets big and small makes it the cannon's most popular ammunition by far.",
"weight": 1
}
],
"price_postapoc": "10 USD",
"pocket_data": [
{
"pocket_type": "MAGAZINE",
"rigid": true,
"airtight": true,
"ammo_restriction": { "khuunaofaai_payload_fire": 4 },
"watertight": true
}
]
},
{
"id": "exodii_khuunaofaai_mag_corrosive",
"copy-from": "exodii_khuunaofaai_mag_firework",
"ammo_type": [ "khuunaofaai_payload_acid" ],
"capacity": 4,
"count": 4,
"name": { "str": "ordnance cannon corrosive canister" },
"type": "MAGAZINE",
"description": "A pressurized tank containing one of the special payloads the Exodii made for their ordnance cannon, a mixture of several acids and peroxides capable of rapidly breaking down the organic tissues of zombies and mutants alike. Apparently developed for cases where the incendiary payload would fail, like low to zero oxygen environments and targets capable of self-extinguishing - It's somewhat alarming the Exodii run into those scenarios frequently enough to justify producing this.",
"variant_type": "gun",
"variants": [
{
"id": "exodii_khuunaofaai_mag_corrosive",
"name": { "str": "Khuunäöfaai corrosive canister" },
"description": "A pressurized tank containing one of the special payloads the Exodii made for the Khuunäöfaai, a mixture of several acids and peroxides capable of rapidly breaking down the organic tissues of zombies and mutants alike. Apparently developed for cases where the incendiary payload would fail, like low to zero oxygen environments and targets capable of self-extinguishing - It's somewhat alarming the Exodii run into those scenarios frequently enough to justify producing this.",
"weight": 1
}
],
"pocket_data": [
{
"pocket_type": "MAGAZINE",
"rigid": true,
"airtight": true,
"ammo_restriction": { "khuunaofaai_payload_acid": 4 },
"watertight": true
}
]
},
{
"id": "exodii_khuunaofaai_mag_adhesive",
"copy-from": "exodii_khuunaofaai_mag_firework",
"ammo_type": [ "khuunaofaai_payload_glue" ],
"capacity": 4,
"count": 4,
"name": { "str": "ordnance cannon adhesive canister" },
"type": "MAGAZINE",
"description": "A pressurized tank containing one of the special payloads the Exodii made for their ordnance cannon, an industrial grade chemical that adheres to anything it touches and hardens into a concrete-like resin. Invented on some alternate Earth for quickly fixing holes in zeppelin and high-altitude craft, the Exodii found the substance useful for area denial, cover creation, or encasing nasty things in when they couldn't be bothered to waste bullets on them.",
"variant_type": "gun",
"variants": [
{
"id": "exodii_khuunaofaai_mag_adhesive",
"name": { "str": "Khuunäöfaai adhesive canister" },
"description": "A pressurized tank containing one of the special payloads the Exodii made for the Khuunäöfaai, an industrial grade chemical that adheres to anything it touches and hardens into a concrete-like resin. Invented on some alternate Earth for quickly fixing holes in zeppelin and high-altitude craft, the Exodii found the substance useful for area denial, cover creation, or encasing nasty things in when they couldn't be bothered to waste bullets on them.",
"weight": 1
}
],
"pocket_data": [
{
"pocket_type": "MAGAZINE",
"rigid": true,
"airtight": true,
"ammo_restriction": { "khuunaofaai_payload_glue": 4 },
"watertight": true
}
]
},
{
"id": "ree_33_4_mag",
"looks_like": "stanag30",
Expand Down
10 changes: 10 additions & 0 deletions data/json/npcs/exodii/exodii_merchant_itemlist.json
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,16 @@
{ "item": "33naval_ball", "container-item": "box_medium_wood", "prob": 50, "charges": 200, "sealed": true }
],
"prob": 20
},
{
"collection": [
{ "item": "khuunaofaai", "prob": 100, "count": [ 1, 2 ] },
{ "item": "exodii_khuunaofaai_mag_firework", "prob": 100, "count": [ 3, 4 ] },
{ "item": "exodii_khuunaofaai_mag_incendiary", "prob": 50, "count": [ 1, 2 ] },
{ "item": "exodii_khuunaofaai_mag_corrosive", "prob": 50, "count": [ 1, 2 ] },
{ "item": "exodii_khuunaofaai_mag_adhesive", "prob": 50, "count": [ 1, 2 ] }
],
"prob": 25
}
]
},
Expand Down
Loading

0 comments on commit f6f2416

Please sign in to comment.