15 RadiusDamage(
this, this.
realowner,
WEP_CVAR_BOTH(hlac, isprimary, damage),
WEP_CVAR_BOTH(hlac, isprimary, edgedamage),
WEP_CVAR_BOTH(hlac, isprimary,
radius),
36 actor.punchangle_x =
random() - 0.5;
37 actor.punchangle_y =
random() - 0.5;
40 missile =
new(hlacbolt);
41 missile.owner = missile.realowner = actor;
42 missile.bot_dodge =
true;
50 setsize(missile,
'0 0 0',
'0 0 0');
55 settouch(missile, W_HLAC_Touch);
60 missile.flags = FL_PROJECTILE;
63 missile.projectiledeathtype = thiswep.
m_id;
64 missile.weaponentity_fld = weaponentity;
82 missile =
new(hlacbolt);
83 missile.owner = missile.realowner = actor;
84 missile.bot_dodge =
true;
92 setsize(missile,
'0 0 0',
'0 0 0');
97 settouch(missile, W_HLAC_Touch);
102 missile.flags = FL_PROJECTILE;
107 missile.weaponentity_fld = weaponentity;
115 void W_HLAC_Attack_Frame(
Weapon thiswep,
entity actor, .
entity weaponentity,
int fire)
117 if(actor.(weaponentity).m_weapon != actor.(weaponentity).m_switchweapon)
119 w_ready(thiswep, actor, weaponentity, fire);
125 if(!thiswep.wr_checkammo1(thiswep, actor, weaponentity))
126 if(!(actor.items & IT_UNLIMITED_AMMO))
129 w_ready(thiswep, actor, weaponentity, fire);
134 W_HLAC_Attack(thiswep, actor, weaponentity);
135 actor.(weaponentity).
misc_bulletcounter = actor.(weaponentity).misc_bulletcounter + 1;
149 W_HLAC_Attack2(thiswep, actor, weaponentity);
153 actor.punchangle_x =
random() - 0.5;
154 actor.punchangle_y =
random() - 0.5;
165 thiswep.wr_reload(thiswep, actor, weaponentity);
171 W_HLAC_Attack(thiswep, actor, weaponentity);
176 else if((fire & 2) &&
WEP_CVAR(hlac, secondary))
180 W_HLAC_Attack2_Frame(thiswep, actor, weaponentity);
203 return WEAPON_HLAC_SUICIDE;
207 return WEAPON_HLAC_MURDER;
216 org2 = w_org + w_backoff * 6;
#define WEP_CVAR_PRI(wepname, name)
#define W_SetupProjVelocity_Basic(ent, pspeed, pspread)
bool bot_aim(entity this,.entity weaponentity, float shotspeed, float shotspeedupward, float maxshottime, float applygravity)
#define WEP_CVAR_SEC(wepname, name)
float weapon_load[REGISTRY_MAX(Weapons)]
void W_SwitchWeapon_Force(Player this, Weapon w,.entity weaponentity)
#define PROJECTILE_MAKETRIGGER(e)
#define w_getbestweapon(ent, wepent)
void w_ready(Weapon thiswep, entity actor,.entity weaponentity, int fire)
const int PROJECTILE_HLAC
#define WEP_CVAR(wepname, name)
#define METHOD(cname, name, prototype)
void CSQCProjectile(entity e, float clientanimate, int type, float docull)
IntrusiveList g_bot_dodge
#define PROJECTILE_TOUCH(e, t)
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
bool weapon_prepareattack(Weapon thiswep, entity actor,.entity weaponentity, bool secondary, float attacktime)
#define WEP_CVAR_BOTH(wepname, isprimary, name)
#define PHYS_INPUT_BUTTON_ATCK(s)
const int HITTYPE_SECONDARY
#define W_SetupShot(ent, wepent, antilag, recoil, snd, chan, maxdamage, deathtype)
vector(float skel, float bonenum) _skel_get_boneabs_hidden
IntrusiveList g_projectiles
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
entity Notification
always last
void weapon_thinkf(entity actor,.entity weaponentity, WFRAME fr, float t, void(Weapon thiswep, entity actor,.entity weaponentity, int fire) func)
float RadiusDamage(entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype,.entity weaponentity, entity directhitentity)
#define MUTATOR_CALLHOOK(id,...)
#define ATTACK_FINISHED(ent, w)
void W_DecreaseAmmo(Weapon wep, entity actor, float ammo_use,.entity weaponentity)
#define sound(e, c, s, v, a)
fields which are explicitly/manually set are marked with "M", fields set automatically are marked wit...
float W_WeaponRateFactor(entity this)
void set_movetype(entity this, int mt)
void W_Reload(entity actor,.entity weaponentity, float sent_ammo_min, Sound sent_sound)