CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.66k stars 4.18k forks source link

Alternative ammo types #18571

Closed mugling closed 8 years ago

mugling commented 8 years ago

I'm starting work on multiple ammo types, for example .357 or .38 and shot or signal_flare.

DangerNoodle commented 8 years ago

I have seen this idea before. What we need is the ability for a given firearm to be selective about . Examples:

As for how they would work, the easiest I can think of would be whitelists or blacklists, defined at the gun level. Alternatively, we could define specific reasons for incompatibity (case length, pressure), assign ammo flags or properties marking ammo as incompatible in that way, then blacklist at the gun level via what flags/properties are forbidden to use in that gun.

The latter method would be best for modding, as mods that add new ammo could implement it without having to add overrides for the weapons.

BorkBorkGoesTheCode commented 8 years ago

shot or signal_flare .

There are special sleeve adaptors for converting a flaregun into a .22, 9mm, 40 S&W etc. single-shot pistol without a lot of modification. I don't know if there are shotgun-to-rifle adaptors right now that don't need gunsmithing.

Rivet-the-Zombie commented 8 years ago

Folks up in Detroit used to use flareguns loaded with twelve gauge shells to rob stores back some odd years ago. I don't imagine it would be particularly safe to do, but I know that a shotshell will load into a flaregun, but usually not the other way around.

BorkBorkGoesTheCode commented 8 years ago

Alternatively, we could define specific reasons for incompatibity (case length, pressure),

This seems like the least cumbersome way to do it. Also remember that length isn't the only limiter.

Folks up in Detroit used to use flareguns loaded with twelve gauge shells to rob stores back some odd years ago. I don't imagine it would be particularly safe to do, but I know that a shotshell will load into a flaregun, but usually not the other way around.

The flaregun would have a optimal_pressure rating which would be rolled against. If the pressure rating is higher than the optimal pressure, the gun will malfunction, with the type and severity of malfunction being determined by the gun or gun abstract.

DangerNoodle commented 8 years ago

I don't imagine it would be particularly safe to do, but I know that a shotshell will load into a flaregun, but usually not the other way around.

Add that to the example list then. A secondary feature would be if "less than ideal" combinations could be accounted for. So that loading .270 Winchest into a .30-06 rifle would drastically reduce accuracy, shotshells in a flaregun might reduce reliability (only way I can think of that has a random chance of damaging the gun), etc.

BorkBorkGoesTheCode commented 8 years ago

The pressure rating of the ammo could be represented by a number from 0-20. If a gun fires a cartridge with a pressure rating higher than the guns durability, a dice roll could be made: If the result is higher than the durability of the gun, the gun malfunctions; If it is higher by one-half, the gun takes damage

DangerNoodle commented 8 years ago

I suspect I have created a monster with that idea. It honestly sounds like pointless realism when taken to that logical extreme, and too complex to implement relative to the benefit gained.

BorkBorkGoesTheCode commented 8 years ago

and too complex to implement

I have heard that often, but few people have explained why a particular idea is hard to implement. Could you please explain?

DangerNoodle commented 8 years ago

Again, relative to the benefit gained. You would be adding a new ammo stat, presumably a new gun stat, and code to add a roll on firing, and in the end the only work that code does is annoy the player.

Reclusive-reptile commented 8 years ago

In fallout new Vegas each ammo item was put into a form list and then the individual weapons called the form list for its ammo. So .357 form list would have .38 ammo but .38 form list wouldn't have .357 ammo. Could the same be done in Cataclysm using .json item groups?

DangerNoodle commented 8 years ago

Last I checked, that is incorrect. Example, the .38 Special revolver in Dead Money being able to chamber .357 Magnum. I will need to double-check the Fallout wiki.

Edit, relevant wiki article: http://fallout.wikia.com/wiki/Police_pistol

BorkBorkGoesTheCode commented 8 years ago

In fallout new Vegas each ammo item was put into a form list and then the individual weapons called the form list for its ammo. So .357 form list would have .38 ammo but .38 form list wouldn't have .357 ammo. Could the same be done in Cataclysm using .json item groups?

That idea could work, it would look like the current magazine lists.

Again, relative to the benefit gained. You would be adding a new ammo stat, presumably a new gun stat, and code to add a roll on firing, and in the end the only work that code does is annoy the player.

How is that different from the current armor system?

DangerNoodle commented 8 years ago

If an addition can be made to have some useful function, then adding it is more excusable. Such as if the player is given more control over handloads, then the resource consumption and durability issues of overpressure loads can be balanced by benefits like damage, range, etc.

The armor system does not sound like a good example. It has monsters reacting differently to different damage types, bullets able to pierce armor to an extent, etc. It is complex, but it is not pure annoyance for most players. Players who put up with it can kill a shoggoth with a sword (when it would be flat-out invulnerable if defense did not care about bashing versus cutting), shoot armored monsters with steel-core ammo, players bothering with softer armor because it might protect more against bashing damage (whereas it might be inferior if it used cutting defense as a baseline for a generic armor stat), etc.

mightyagrippa commented 8 years ago

Please don't further subdivide ammo. It adds to frustration and item bookkeeping for little benefit. And we already have unfun ammo shortages for a lot of calibers (8x40, .44, all the other heavy pistols). Adding a .357 round that loads into .38 firearms would just make them actually worth using. And not sure about the ballistics but it might bridge a gap between .45 and the heavy pistol rounds.

In that vein, the .454 Casull will supposedly fire .410 shot shells. It would be neat to have a compact weapon with the SHOT flag aside from the rare RM228, even if it has less punch than 00 shot. I don't count the .22 rat shot because that's a damn capgun.

Flares could use a reworking to be more useful. It would be more cinematic than realistic, but imagine a hit with a flare shotgun shell caused a little damage and tagged the victim with a FLARED status. The flare is sizzling and embedded in their chest so bright light, some noise, and some burning damage for a longish time.

DangerNoodle commented 8 years ago

Keeping it generic might be acceptable if the realism added is not worth it gameplay-wise. We already have precedent set by absurdity like .38 Super and .45 super loading in guns that should not chamber it, and .270 existing despite every gun I know of in-game being for .30-06.

mugling commented 8 years ago

@mightyagrippa good gameplay is paramount

We could just add 357 as a type of 38 and 410_shot as a type of 454?

This is much easier from a code POV although I'm happy to work on it if anyone has an alternative suggestion.

The somewhat related issue is consuming multiple ammo types (eg. nails plus compressed gas). Comments as to this?

mightyagrippa commented 8 years ago

Yes that's what I was thinking, e.g. a new item "357_magnum" with "ammo_type" : "38". Same approach for .410 shot and probably regular shotgun flares (precedent in 20x66 flares).

Is the current code used for the heavy and ferromagnetic rail rifles unacceptable? Those both fire rails and drain UPS for each shot.

Another possible addition, though inspired more by other games than by reality, would be specialty rounds for target categories. EMP rounds with high rarity and lower base damage that stun robots (similar to beanbag round code) or do heavy damage (similar to XM34 rifle). Gravedigger rounds custom made by whatever military is in those lab barracks (high rarity, lower base damage), impregnated with some rare blob-disrupting chemical that does stun or heavy damage to zombies.

In my experience those kind of rounds, like the +P+ other ammo variants in game, add some player choice and resource pressure to the later game. You may be swimming in 9mm but you have exactly one magazine of 9mm Gravedigger and is this the hulk you need to use them on? Possible issues include fragmenting ammo spawns further, but that could be mitigated by only adding these variants to common calibers. Maybe even restrict them to pistol calibers; a large, relatively slow hollowpoint bullet makes more sense as a delivery vehicle and this could make pistols more relevant in the later game.

BorkBorkGoesTheCode commented 8 years ago

In fallout new Vegas each ammo item was put into a form list and then the individual weapons called the form list for its ammo. So .357 form list would have .38 ammo but .38 form list wouldn't have .357 ammo. Could the same be done in Cataclysm using .json item groups?

This would attract data entry errors, but it would allow a browsable list of compatible ammo.

Another possible addition, though inspired more by other games than by reality, would be specialty rounds for target categories. EMP rounds with high rarity and lower base damage that stun robots (similar to beanbag round code) or do heavy damage (similar to XM34 rifle). Gravedigger rounds custom made by whatever military is in those lab barracks (high rarity, lower base damage), impregnated with some rare blob-disrupting chemical that does stun or heavy damage to zombies.

See the shotgun ammo types. This is already done.

mugling commented 8 years ago

Now implemented in master