game-source/klik/damage.qh

57 lines
1.4 KiB
C++

#ifndef DAMAGE_qh
#define DAMAGE_qh 1
@extern {
#define DAMAGE_SHOULDDIE 16777214
#define DAMAGE_MUSTDIE 16777215
.entity dmg_attacker;
.void() deathmsg;
.string deathmsg1, deathmsg2, deathmsg3, deathmsg4, deathmsg5, deathmsg6;
// You _MUST_ have th_takedamage if you .takedamage!
// Return TRUE if you were damaged, FALSE otherwise.
.float(float dmg) th_takedamage;
/* Allows you to globally override damage you deal */
/* self = you, other = target */
/* returns new amount of damage, or < 0 for don't */
.float(float dmg) th_dealdamage;
/* Use this when you attack something. It may modify missile. */
/* You should have at least classname, velocity, dmg, and mass */
#define damage_attack(missile) do{ if (self.th_attack) self.th_attack(missile); }while(0)
.void(entity missile) th_attack;
/* Update frags in these. */
.void() th_die;
.void() th_kill;
/* ghost_inflictor is for radius and bullets...
Only guaranteed to have:
classname
velocity
mass
*/
entity ghost_inflictor;
void() damage_init;
void(entity from, entity to) deathmsg_copy;
void() deathmsg_display;
void() deathmsg_nodisplay;
float(float d) damage_armor;
void(float d) damage_push;
float(entity ent, entity attacker, entity inflictor, float d, void() deathmessage) damage;
/* Fill in appropriate fields, inflictor _WILL_ be modified. */
void(entity ignore, entity attacker, entity inflictor, void() deathmessage) damage_radius;
};
#endif