17 this.blaster_edgedamage,
23 this.blaster_force_zscale,
32 void W_Blaster_Think(
entity this)
40 void W_Blaster_Attack(
49 float atk_force_zscale,
60 entity missile =
new(blasterbolt);
61 missile.owner = missile.realowner = actor;
62 missile.bot_dodge =
true;
63 missile.bot_dodgerating = atk_damage;
66 missile.blaster_damage = atk_damage;
67 missile.blaster_edgedamage = atk_edgedamage;
68 missile.blaster_radius = atk_radius;
69 missile.blaster_force = atk_force;
70 missile.blaster_force_zscale = atk_force_zscale;
71 missile.blaster_lifetime = atk_lifetime;
74 setsize(missile,
'0 0 0',
'0 0 0');
92 settouch(missile, W_Blaster_Touch);
93 missile.flags = FL_PROJECTILE;
97 missile.projectiledeathtype = atk_deathtype;
98 missile.weaponentity_fld = weaponentity;
100 missile.nextthink =
time + atk_delay;
104 if (
time >= missile.nextthink)
149 switch(
WEP_CVAR(blaster, secondary))
153 if(actor.(weaponentity).m_switchweapon == WEP_BLASTER)
198 return WEAPON_BLASTER_SUICIDE;
203 return WEAPON_BLASTER_MURDER;
208 if (!key_pressed || (
time < actor.jump_interval))
214 BLASTER_SECONDARY_ATTACK(blaster, actor, weaponentity);
223 org2 = w_org + w_backoff * 6;
#define WEP_CVAR_PRI(wepname, name)
#define PHYS_INPUT_BUTTON_ATCK2(s)
bool bot_aim(entity this,.entity weaponentity, float shotspeed, float shotspeedupward, float maxshottime, float applygravity)
#define WEP_CVAR_SEC(wepname, name)
#define PROJECTILE_MAKETRIGGER(e)
void w_ready(Weapon thiswep, entity actor,.entity weaponentity, int fire)
#define WEP_CVAR(wepname, name)
#define METHOD(cname, name, prototype)
void CSQCProjectile(entity e, float clientanimate, int type, float docull)
const int PROJECTILE_BLASTER
IntrusiveList g_bot_dodge
#define PROJECTILE_TOUCH(e, t)
void W_SetupProjVelocity_Explicit(entity proj, vector dir, vector upDir, float pSpeed, float pUpSpeed, float pZSpeed, float spread, float forceAbsolute)
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 PHYS_INPUT_BUTTON_ATCK(s)
const int HITTYPE_SECONDARY
#define W_SetupShot_Dir(ent, wepent, s_forward, antilag, recoil, snd, chan, maxdamage, deathtype)
vector(float skel, float bonenum) _skel_get_boneabs_hidden
IntrusiveList g_projectiles
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)
#define MUTATOR_CALLHOOK(id,...)
entity weaponentities[MAX_WEAPONSLOTS]
float RadiusDamageForSource(entity inflictor, vector inflictororigin, vector inflictorvelocity, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float inflictorselfdamage, float forceintensity, float forcezscale, int deathtype,.entity weaponentity, entity directhitentity)
#define sound(e, c, s, v, a)
float W_WeaponRateFactor(entity this)
void set_movetype(entity this, int mt)
void W_LastWeapon(entity this,.entity weaponentity)