Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
sv_vampire.qc
Go to the documentation of this file.
1#include "sv_vampire.qh"
2
6
8
9MUTATOR_HOOKFUNCTION(vampire, PlayerDamage_SplitHealthArmor)
10{
11 // NOTE: vampire buff PlayerDamage_SplitHealthArmor code is similar
12 entity frag_attacker = M_ARGV(1, entity);
14 float health_take = bound(0, M_ARGV(4, float), GetResource(frag_target, RES_HEALTH));
15 float armor_take = bound(0, M_ARGV(5, float), GetResource(frag_target, RES_ARMOR));
16 float damage_take = (autocvar_g_vampire_use_total_damage) ? health_take + armor_take : health_take;
17
18 if (!StatusEffects_active(STATUSEFFECT_SpawnShield, frag_target) && frag_target != frag_attacker
19 && IS_PLAYER(frag_attacker) && !IS_DEAD(frag_target) && !STAT(FROZEN, frag_target))
20 {
21 GiveResource(frag_attacker, RES_HEALTH, autocvar_g_vampire_factor * damage_take);
22 }
23}
24
25MUTATOR_HOOKFUNCTION(vampire, BuildMutatorsString)
26{
27 M_ARGV(0, string) = strcat(M_ARGV(0, string), ":Vampire");
28}
29
30MUTATOR_HOOKFUNCTION(vampire, BuildMutatorsPrettyString)
31{
32 M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Vampire");
33}
#define MUTATOR_IS_ENABLED(this)
Definition base.qh:193
#define REGISTER_MUTATOR(...)
Definition base.qh:295
#define MUTATOR_HOOKFUNCTION(...)
Definition base.qh:335
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
#define M_ARGV(x, type)
Definition events.qh:17
#define IS_DEAD(s)
Definition player.qh:245
#define IS_PLAYER(s)
Definition player.qh:243
ERASEABLE bool expr_evaluate(string s)
Evaluate an expression of the form: [+ | -]?
Definition cvar.qh:48
RES_ARMOR
Definition ent_cs.qc:130
#define STAT(...)
Definition stats.qh:82
float bound(float min, float value, float max)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
bool StatusEffects_active(StatusEffect this, entity actor)
entity frag_target
Definition sv_ctf.qc:2321
void GiveResource(entity receiver, Resource res_type, float amount)
Gives an entity some resource.
float autocvar_g_vampire_factor
Definition sv_vampire.qc:4
string autocvar_g_vampire
Definition sv_vampire.qc:3
bool autocvar_g_vampire_use_total_damage
Definition sv_vampire.qc:5