This idea is one of many spawned from my thinking about ns_eis (click link to view)
Problem:
There is poor support for different damage types in NS currently and not support yet declared for NS2. The trigger_hurt brush entity was one of the original signature entities in the original Half-Life when it was release almost a decade ago. Yet in thinking of making ns_eis I’m reminded that unless I have trigger_hurt damage types need to include radioactive, freeze damage, and asphyxiation with accompanying sprites that I will not be able to prevent players from going into certain areas that would break immersion outside of just insta-gibbing them which would lead to frustration and still break immersion with an inexplicable cause of instant death. Anybody who wants to make a NS2 map in space with need an improved asphyxiation attribute to the trigger_hurt as well as means to make a localized phys_air_friction modifier (i.e.: lower pressure = reduced air friction). It may not seem to matter to you if you are a typical player, but if you are making a map for NS2 you should understand why UWE shouldn’t ignore this.
Solution:
Before I go into technical detail, know that when you reply to this idea there are really to main areas of feedback going on here.
QUOTE(Crispy)
But the presentation actually deals with two things and that's partly why it is confusing. I think the idea should be split into two partly for clarity, and partly because they deal with different parts of the game and code. One is controlled by mapper-placed entities and the FGD, the other is controlled by the core game code. So I'd suggest splitting it into:
- Environmental hazard damage feedback, and
- Player-inflicted damage feedback
- Environmental hazard damage feedback, and
- Player-inflicted damage feedback
Plus I gave a solution to fixing the onos a bit farther down this page which you should also check out. (it would be assuming three things however)
First we have this nice animated image of the trigger_hurt brush entity's damage_type values as seen in Hammer. (VALVe's map editor application, via the Source SDK)

Study the animated image above here for a bit... See all of the damage type values VALVe has set up? Basically this idea is implemented by simply supporting the architecture already laid out and cleaning it up. (well, not exactly simple, lol
Here's my proposed new & improved list like this:
- generic 0 – the “other” category
- bludgeon 1 – physics collisions, with a nice bone-crunching, fleshy impact sound effect like hitting an animal in the head or ribs with a sledgehammer as hard as you can swing it; screen bump in opposite vector component of the impact vector, and reddens the hue of screen for a fraction of time (combines these: crush, blast, club
- bullet 2 – aka “piercing”, could include lerk and OC spikes; creates “hole” blood splatter sprite
- slash 4 – knife, fade swipe, leap damage; creates a “slash” blood splatter sprite
- burn 8 – player get a burn indicator spite, burning flesh sound effect, reddened screen
- freeze 16 – player gets a snowflake indicator spite, liquid nitrogen on-flesh sound effect, blued screen
- fall 32 – player gets screen bumped down, breaking legs sound effect, reddened screen
- shock 64 – player gets an electricity indicator spite, zapping sound effect, whitened screen (this is what would happen to aliens attack electrified structures for instance, assuming NS2 has electrification of course)
- sonic 128 – bumps the screen in the opposite vector component of the impact vector, creates momentary dizziness effect (like the old TFC conc’s but less magnitude and duration), dizzy indicator sprite (i.e. onos stomp or explosion shockwave), whitened screen
- asphyxiation 256 – player gets an oxygen indicator spite, gasping for air sound effect unless inside a func_water brush in which case you get a gurgling sound effect, blackened screen (replaces drown)
- chemical 512 – player gets a poison indicator spite, generic pain sound effect, greened screen (replaces and combines poison, nerve gas, and any chemical burn types)
- biohazard 1024 – preferably marines only, player gets a biohazard indicator sprite, generic pain sound effect, greened screen (lerk spores?)
- radiation 2048 – player gets a radioactive indicator sprite, generic pain sound effect (with a Geiger click if marine, which brings be back to certain entities needing to be “one team only”)
And if all damages has a damage type value...
This even opens up new possibilities such as give players and team structures damages of these types with certain armor types to match with multipliers. For example say the hive is immune to poison, nerve gas, chemical, or radiation damage; but takes extra damage from burn, sonic, or blast.
(note: what I just mentioned is an addendum to this idea which should be judged on it's own terms if the main idea is a good one)
(note: as Crispy mentioned it's more about player-inflicted damage)
Forge Game Data (.fgd) File Edit:
Here’s the current .fgd entry that will also need to be adjusted
CODE
@SolidClass base(Targetname,Target) = trigger_hurt : "Trigger player hurt"
[
spawnflags(flags) =
[
1: "Target Once" : 0
2: "Start Off" : 0
16:"FireClientOnly" : 0
32:"TouchClientOnly" : 0
]
master(string) : "Master"
dmg(integer) : "Damage" : 10
delay(string) : "Delay before trigger" : "0"
damagetype(choices) : "Damage Type" : 0 =
[
0 : "GENERIC"
1 : "CRUSH"
2 : "BULLET"
4 : "SLASH"
8 : "BURN"
16 : "FREEZE"
32 : "FALL"
64 : "BLAST"
128 : "CLUB"
256 : "SHOCK"
512 : "SONIC"
1024 : "ENERGYBEAM"
16384: "DROWN"
32768 : "PARALYSE"
65536 : "NERVEGAS"
131072 : "POISON"
262144 : "RADIATION"
524288 : "DROWNRECOVER"
1048576 : "CHEMICAL"
2097152 : "SLOWBURN"
4194304 : "SLOWFREEZE"
]
]
[
spawnflags(flags) =
[
1: "Target Once" : 0
2: "Start Off" : 0
16:"FireClientOnly" : 0
32:"TouchClientOnly" : 0
]
master(string) : "Master"
dmg(integer) : "Damage" : 10
delay(string) : "Delay before trigger" : "0"
damagetype(choices) : "Damage Type" : 0 =
[
0 : "GENERIC"
1 : "CRUSH"
2 : "BULLET"
4 : "SLASH"
8 : "BURN"
16 : "FREEZE"
32 : "FALL"
64 : "BLAST"
128 : "CLUB"
256 : "SHOCK"
512 : "SONIC"
1024 : "ENERGYBEAM"
16384: "DROWN"
32768 : "PARALYSE"
65536 : "NERVEGAS"
131072 : "POISON"
262144 : "RADIATION"
524288 : "DROWNRECOVER"
1048576 : "CHEMICAL"
2097152 : "SLOWBURN"
4194304 : "SLOWFREEZE"
]
]



