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

Rebalance Bomb & Charge Explosive Power (plus other explosive tweaks) #18337

Merged
merged 13 commits into from Sep 17, 2016

Conversation

Projects
None yet
5 participants
@Nioca
Copy link
Contributor

commented Sep 14, 2016

Right now, some of the values when it comes to the power and payload of bombs and explosive charges are rather messed up. I dove into it originally just planning to buff C-4 a bit, but then I started noticing some other errors, and it sorta snowballed from there. What this PR does is:

  • Rebalance the blast power of certain explosive devices. Despite being a crude, improvised ammonium nitrate bomb, the Fertilizer Bomb was one of the most powerful explosive devices available aside from the ANFO/RDX charges (and Mininukes, of course). By contrast. C-4 was woefully underpowered, being a full third weaker than a stick of dynamite. I rebalanced their blast power, plus the others, using their real life R.E. Factor as a guide to help determine about where they should sit relative to each other.
  • Most bombs now explode if set on fire. Black gunpowder-based bombs will explode as if used normally if set ablaze. RDX and ANFO explosives will also explode, but only at partial power due to their stability (the blast is less the RDX or ANFO exploding and more the dynamite/HMTD used as a detonator cooking off). C-4 will not explode if set on fire.
  • Black Gunpowder Charges and RDX Charges now leave behind shrapnel. Black Gunpowder Charges now leave fragments of scrap metal behind after detonating. RDX Charges leave just the unusuable Shrapnel. Notably, if an RDX Charge is set on fire and has a partial detonation, it'll leave behind Scrap Metal instead.
  • Bomb and Explosive Charge Recipes altered to not break laws of physics. The RDX Sand Bomb was an egregious offender here, somehow fitting 14 volume and 7kg of sand and RDX into a 2 volume bomb weighing only 2kg. The ANFO charge apparently consisted of only a 3kg smattering of ANFO on the bottom of a 100-Liter Steel Drum (it now uses an Aluminum or Steel Keg instead, see below), and the Black Gunpowder Charge used the same amount of gunpowder as the Black Gunpowder Bomb, despite packing 6x the punch (and shrapnel that wasn't actually included in the recipe!).
  • ANFO stack size reduced by factor of 10. Let's face it, we've got one recipe that uses ANFO, and any future recipes we potentially come up with aren't going to need so much precision that we have to measure it in 9-gram increments.
  • New item: Steel Keg. A craftable Steel Keg for use with ANFO and RDX charges (or just storing your favorite beverage). In addition, the Aluminum Keg had its weight drastically reduced, since it looks like someone used the weight for a stainless steel keg to represent an aluminum one.
  • (09/16/2016) Migrates all explosive-type item recipes into the appropriate JSON file. All recipes in the subcategory CSC_WEAPON_EXPLOSIVE have been migrated into explosive.json, and reformatted according to code standard.

Nioca added some commits Sep 14, 2016

Rebalance Bombs and Explosive Charges
Rebalances bombs and explosive charges, using R.E. Factor as guidance for explosive power relative to each other. In addition, this also adjusts the weight and size of the ANFO and RDX charges, and makes it possible for most bombs to detonate prematurely if exposed to fire (ANFO and RDX have greatly reduced effects when detonated this way). Black Powder charges and RDX charges now also leave a little scrap metal (for former) and shrapnel (for latter) behind upon detonation.
Adds Steel Keg, reduce Aluminum Keg Weight
Adds a craftable Steel Keg for use with RDX and ANFO charges. Also, reduces the Aluminum Keg's weight, which is way high (I suspect whoever set up the weight for the Aluminum Keg pulled the weight for a Stainless Steel Keg of a similar size by mistake).
Reduce granularity of ANFO
Considering we have a grand total of 1 recipe calling for ANFO, and anything else we'd conceivably add later wouldn't use minute amounts of it like Gunpowder, we don't really need to measure it in 9-gram increments.
Alter bomb recipes to use correct components
Alters bomb and charge recipes to use the correct amount of explosives. Also changes ANFO Charge to use Aluminum or Steel Keg (the 100 Liter drum was too big), and RDX Sand Bomb to not break the laws of physics by shoving 8kg and 14 volume of components into a 2kg 2 volume bomb.

Finally, adds Scrap Metal to the Black Powder Charge recipe.
"count": 30,
"mass": 10,
"recovery": 20,
"drop": "scrap"

This comment has been minimized.

Copy link
@Coolthulhu

Coolthulhu Sep 14, 2016

Contributor

Plastic jug in the description

This comment has been minimized.

Copy link
@Nioca

Nioca Sep 15, 2016

Author Contributor

The description mentions that it is indeed a plastic jug, but one that is, quote, "filled with black gunpowder and scrap metal". Hence the addition of scrap shrapnel, and scrap metal to the recipe.

[ "steel_lump", 13 ],
[ "steel_chunk", 52 ]
]
]

This comment has been minimized.

Copy link
@Coolthulhu

Coolthulhu Sep 14, 2016

Contributor

Recipes should look like in data/recipes/electronics/parts.json.

This comment has been minimized.

Copy link
@mugling

mugling Sep 14, 2016

Contributor

...and should be migrated to an appropriate file at which point you can lint them via format.pl

This comment has been minimized.

Copy link
@Nioca

Nioca Sep 15, 2016

Author Contributor

My apologies. I've never really touched recipes before, and just followed the formatting of the original file.

As for migrating it, I presume you mean to something like data/recipes/other/containers.json? And how would one go about linting, since it's a process I'm rather unfamiliar with.

This comment has been minimized.

Copy link
@Nioca

Nioca Sep 15, 2016

Author Contributor

Having read through #18347, I'd like to bring up that I'm actually in a similar boat to @kilozombie, in that I'm editing directly to the remote, rather than using GitHub locally on my machine. In my case, I can't actually operate GitHub locally (56k dialup does that to you), so I have to make the changes in a textpad, then copy-paste them into my fork online (after testing locally and making sure I've fixed anything I broke).

As a complete novice in anything higher level than JSON, which files would I need to download to make the format.pl script function offline on Windows 7, and would it be breaking anything to manually update the whitelist?

"reversible": false,
"autolearn": true,
"qualities":[
{"id":"HAMMER","level":3,"amount":1},

This comment has been minimized.

Copy link
@Coolthulhu

Coolthulhu Sep 14, 2016

Contributor

amount:1 and reversible:false are redundant

@Coolthulhu

This comment has been minimized.

Copy link
Contributor

commented Sep 14, 2016

RDX and ANFO explosives will also explode, but only at partial power due to their stability (the blast is less the RDX or ANFO exploding and more the dynamite/HMTD used as a detonator cooking off)

This sounds like a rather odd kind of detail. The fire would most likely ignite the fuse (it's not electronic in most cases). Plus, it will most likely get lost later in development, as having 3 separate explosion details per bomb type is a lot of redundant data.

@Vidiveni

This comment has been minimized.

Copy link

commented Sep 14, 2016

While working on this I would suggest tweaking some intended throwable explosives to become more reliably throwable at range. By for example adding a small amount of bash damage and/or weight to the nail bomb and possibly others.

@Nioca

This comment has been minimized.

Copy link
Contributor Author

commented Sep 15, 2016

RDX and ANFO explosives will also explode, but only at partial power due to their stability (the blast is less the RDX or ANFO exploding and more the dynamite/HMTD used as a detonator cooking off)

This sounds like a rather odd kind of detail. The fire would most likely ignite the fuse (it's not electronic in most cases). Plus, it will most likely get lost later in development, as having 3 separate explosion details per bomb type is a lot of redundant data.

Eh, I like the odd little details. But with that said, it's not something I'm particularly attached to, and it is a fair point that a fire would likely trigger the fuse before actually doing much else. As for redundant data, unfortunately there's no way currently (that I know of, anyway) to get it to default to a specific explosion data set; it has to be defined individually for explodes_in_fire and explosion use-acts.

I would suggest tweaking some intended throwable explosives to become more reliably throwable at range. By for example adding a small amount of bash damage and/or weight to the nail bomb and possibly others.

Adding weight is sort of a double-edged sword when it comes to throwing weapons. On one hand, they do inflict more damage, but at the same time, their range becomes shorter. A lot shorter. To give you an idea, the 2kg RDX Sand Bomb has a range of 3 for an average 8 strength survivor. For a 14 strength superhuman, that increases to a whopping 6. As for adding Bash, it's worth noting that this effects both its effectiveness as a melee weapon as well as its power as a throwing weapon.

(Side note: I think I'm going to increase the fuse length on the RDX sand bomb, because as it stands, a survivor can't get out of the blast radius in time after throwing it)

Nioca added some commits Sep 16, 2016

Start migration of explosives to explosive.json
Add all items in subcategory CSC_WEAPON_EXPLOSIVE to explosive.json.
Finish migration of explosives out of recipe_weapon.json
Remove all items of subcategory CSC_WEAPON_EXPLOSIVE out of recipe_weapon.json.
@Nioca

This comment has been minimized.

Copy link
Contributor Author

commented Sep 16, 2016

Update to the PR. All recipes in the subcategory CSC_WEAPON_EXPLOSIVE have been migrated to explosive.json, and I believe I've now got the formatting correct. However, to re-state something I mentioned earlier:

As a complete novice in anything higher level than JSON, which files would I need to download to make the format.pl script function offline on Windows 7, and would it be breaking anything to manually update the whitelist?

EDIT: Almost forgot to do it, but in addition, RDX Sand Bombs now have a five turn fuse instead of a 2 turn fuse.

Increase length of fuse on RDX Sand Bomb
Before, the fuse was only two turns, and with its short throwing range, it was nigh-impossible for a survivor to get out of the blast radius before it went off. This raises it to five turns, which is sufficient for all but the lowest-strength survivors to get fully clear (at a full run).
@Vidiveni

This comment has been minimized.

Copy link

commented Sep 16, 2016

Adding weight is sort of a double-edged sword when it comes to throwing weapons. On one hand, they do inflict more damage, but at the same time, their range becomes shorter. A lot shorter. To give you an idea, the 2kg RDX Sand Bomb has a range of 3 for an average 8 strength survivor. For a 14 strength superhuman, that increases to a whopping 6. As for adding Bash, it's worth noting that this effects both its effectiveness as a melee weapon as well as its power as a throwing weapon.

According to @Coolthulhu an item's effective range increases from having some damage and weight stat. Nail bomb will often land 1 tile away as it is now, even with high throwing skill. I understand too much weight decreases max range, but with 0 bash and almost no weight the nail bomb is currently almost completely useless and just a newbie-trap. I suggest making it similar to the grenade at least, or buffing both.

Fix nail bomb stats and materials
Fixes the nail bomb and makes it far more reliable as a thrown explosive. Weight is increased nearly .2kg to match the recipe, it inherits combat stats from the glass bottle (with a +2 bash for added weight), it's now made of glass and iron instead of steel and plastic(?!?!), it mentions lighting a fuse instead of pulling a pin, and its marked nonconductive since its made of glass.
@Nioca

This comment has been minimized.

Copy link
Contributor Author

commented Sep 16, 2016

Okay yeah, I misunderstood what you were getting at. Taking a look at the Nail Bomb, it was actually all kinds of messed up; no bash, it had a -1 to hit (when a glass bottle, which its made of, typically has +1), it was half the weight it should've been, and despite being made out of a glass bottle (or clay flask) and iron nails, its materials consisted of Steel and Plastic.

Anyway, it should be fixed now. I ran some quick tests on them, and with the new stats, they now actually can make the intended distance (or close to it) about ~75% of the time, and the rest typically land with the survivor outside their blast radius (I only had one land close enough to actually threaten my debug thrower, and it still landed about 6 spaces away, rather than right at the survivor's feet).

@Coolthulhu Coolthulhu self-assigned this Sep 16, 2016

@DangerNoodle

This comment has been minimized.

Copy link
Contributor

commented Sep 16, 2016

Interesting. Was wondering about the idea of making blackpowder charges and grenades available to dismantle. Might devise a pull request for such an idea

Do we have TNT or something normally used in hand grenades? If I do add such a pull request, I could make hand grenades dismantle into more sensible modern components, then make the current recipe reversible to avoid transmutation. Shifting the rather makeshift recipe to a separate item could work as well, but that is optional as we don't really need another makeshift explosive.

"power": 9,
"shrapnel": 40
"power": 12,
"shrapnel": 30

This comment has been minimized.

Copy link
@Coolthulhu

Coolthulhu Sep 16, 2016

Contributor

Dropping the shrapnel count makes it inferior to nail bomb.

"skill_used": "fabrication",
"difficulty": 0,
"time": 3000,
"autolearn": true,

This comment has been minimized.

Copy link
@Coolthulhu

Coolthulhu Sep 16, 2016

Contributor

Could also make it reversible.

@Coolthulhu Coolthulhu merged commit 514385b into CleverRaven:master Sep 17, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.