CleverRaven / Cataclysm-DDA

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

Heat, electric and biological damage starts to appear in mods but aren't handled well #49102

Open Salty-Panda opened 3 years ago

Salty-Panda commented 3 years ago

Describe the bug

Heat, electric, and biological damage start to appear in mods but aren't handled well.

Mobs only can have armor specified for the following damage types: armor_bash, mon.armor_cut, armor_bullet, armor_acid, armor_fire, armor_stab. (Not sure if armor_fire is the same as heat damage) They can only have specified either immunity to electricity or nothing.

Electrical damage is commonly used in Magiclysm and as a part of "plasma" damage in AFS but other than relic's passive effect electric armor, we don't have any way to non-fully reduce electric damage, and relic effects can only be applied to the player and NPCs.

The player's methods to obtain fire/heat armor are limited to Nomex gear, which isn't particularly resistant to a laser. The way fire armor is currently specified for items/materials is supposed to meant damage from standing in a flame, thus is very low for the majority of items. Meanwhile, many weapons described as laser/plasma just use heat and/or electricity as damage type resulting in very high damage that are hard to mitigate.

I believe that damage from laser should be handled differently than direct exposure to flames. https://www.yorksheet.com/york-sheet-blog/laser-cutting-maximum-thickness lists materials from hardest to easiest to laser cut as Carbon steel > Mild steel > Stainless steel > Aluminum > Non-metallic materials, those values don't match armors' fire resistance.

It also negatively affects the balance of Magiclysm, since effectively heat, biological and electrical are in almost all instances equal to true damage.

Expected behavior

Add code support for heat, biological and electrical armor for monsters.

Devise a way how laser/plasma damage should be handled. Considering the existence of heavily armored robots (AFS) and magic (Magiclysm) I assume that we would want ways to at least partially mitigate those damage on certain mobs without making them flameproof.

We already have fields _specific_heatliquid, _specific_heatsolid, _latentheat in materials.json, but those values are often not set. Possibly they could be used to calculate laser resistance, although it leaves the problem that we consider item's materials to be present in equal proportions. I assume that specific_heat_solid could be a good starting point to devise items' laser and plasma resistance.

natsirt721 commented 3 years ago

If anyone wants to go way down the rabbit hole on lasers projectrho.com has about 50k words on the subject. Most of it is transcripts from 20c science fiction and various message boards (the website bills itself as a resource for hard sci-fi authors) but there is a lot of commentary regarding power sources, laser construction techniques, and damage effects against people/armor/structures that can provide a good baseline for modeling laser damage here. Its probably also worth auditing the existing A7 and V29 for energy consumption and damage values.

actual-nh commented 3 years ago

Note also #48389.

actual-nh commented 3 years ago

@I-am-Erk?