20 if (
toucher.(weaponentity).clip_size)
23 ?
toucher.(weaponentity).clip_size
34#define CHECK_AMMO_RESOURCE_LIMIT(amresource, res_resource) \
35 if (amresource < maxammo) \
36 GiveResourceWithLimit(toucher, res_resource, ammo_factor, maxammo);
38#define DROP_AMMO_RESOURCE(amresource, res_resource) \
40 SetResource(toucher, res_resource, amresource + ammo_factor);
42 if ( ammo_factor > 0 )
52 else if ( ammo_factor < 0 )
62#undef CHECK_AMMO_RESOURCE_LIMIT
63#undef DROP_AMMO_RESOURCE
72 orb.colormod = NADE_TYPE_AMMO.m_color;
82 PAR(_(
"The %s detonates after a short delay, temporarily creating an orb around the point where it detonated for several seconds. "
83 "If your team members enter the orb they will recover ammo, and if enemies enter the sphere they will lose ammo."),
COLORED_NAME(
this));
84 PAR(_(
"Similar to the %s buff, your weapon magazines remain full while you are inside the orb, so you don't need to reload."),
COLORED_NAME(BUFF_AMMO));
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 COLORED_NAME(this)
void nade_ammo_touch(entity this, entity toucher)
void nade_ammo_boom(entity this)
#define DROP_AMMO_RESOURCE(amresource, res_resource)
#define CHECK_AMMO_RESOURCE_LIMIT(amresource, res_resource)
float autocvar_g_nades_ammo_rate
float autocvar_g_nades_ammo_time
float autocvar_g_nades_ammo_clip_empty_rate
float autocvar_g_nades_ammo_foe
float autocvar_g_nades_ammo_friend
void Send_Effect(entity eff, vector eff_loc, vector eff_vel, int eff_cnt)
#define METHOD(cname, name, prototype)
#define PAR(...)
Adds an individually translatable paragraph to PAGE_TEXT without having to deal with strcat and sprin...
entity nades_spawn_orb(entity own, entity realown, vector org, float orb_ltime, float orb_rad)
float autocvar_g_nades_nade_radius
float nade_show_particles
const int MAX_WEAPONSLOTS
entity weaponentities[MAX_WEAPONSLOTS]