#pragma once CLASS(Vortex, Weapon) /* spawnfunc */ ATTRIB(Vortex, m_canonical_spawnfunc, string, "weapon_vortex"); /* ammotype */ ATTRIB(Vortex, ammo_type, int, RES_CELLS); /* impulse */ ATTRIB(Vortex, impulse, int, 7); /* flags */ ATTRIB(Vortex, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_HITSCAN); /* rating */ ATTRIB(Vortex, bot_pickupbasevalue, float, 8000); /* color */ ATTRIB(Vortex, wpcolor, vector, '0.5 1 1'); /* modelname */ ATTRIB(Vortex, mdl, string, "nex"); #ifdef GAMEQC /* model */ ATTRIB(Vortex, m_model, Model, MDL_VORTEX_ITEM); /* flash mdl */ ATTRIB(Vortex, m_muzzlemodel, Model, MDL_Null); /* flash eff */ ATTRIB(Vortex, m_muzzleeffect, entity, EFFECT_VORTEX_MUZZLEFLASH); #endif /* crosshair */ ATTRIB(Vortex, w_crosshair, string, "gfx/crosshairnex"); /* crosshair */ ATTRIB(Vortex, w_crosshair_size, float, 0.65); /* reticle */ ATTRIB(Vortex, w_reticle, string, "gfx/reticle_nex"); /* wepimg */ ATTRIB(Vortex, model2, string, "weaponnex"); /* refname */ ATTRIB(Vortex, netname, string, "vortex"); /* wepname */ ATTRIB(Vortex, m_name, string, _("Vortex")); #define X(BEGIN, P, END, class, prefix) \ BEGIN(class) \ P(class, prefix, ammo, float, BOTH) \ P(class, prefix, animtime, float, BOTH) \ P(class, prefix, armorpierce, float, BOTH) \ P(class, prefix, chargepool, float, SEC) \ P(class, prefix, chargepool_pause_regen, float, SEC) \ P(class, prefix, chargepool_regen, float, SEC) \ P(class, prefix, charge, float, NONE) \ P(class, prefix, charge_always, float, NONE) \ P(class, prefix, charge_animlimit, float, NONE) \ P(class, prefix, charge_limit, float, NONE) \ P(class, prefix, charge_maxspeed, float, NONE) \ P(class, prefix, charge_mindmg, float, NONE) \ P(class, prefix, charge_minspeed, float, NONE) \ P(class, prefix, charge_rate, float, NONE) \ P(class, prefix, charge_rot_pause, float, NONE) \ P(class, prefix, charge_rot_rate, float, NONE) \ P(class, prefix, charge_shot_multiplier, float, NONE) \ P(class, prefix, charge_start, float, NONE) \ P(class, prefix, charge_velocity_rate, float, NONE) \ P(class, prefix, damagefalloff_forcehalflife, float, BOTH) \ P(class, prefix, damagefalloff_halflife, float, BOTH) \ P(class, prefix, damagefalloff_maxdist, float, BOTH) \ P(class, prefix, damagefalloff_mindist, float, BOTH) \ P(class, prefix, damage, float, BOTH) \ P(class, prefix, force, float, BOTH) \ P(class, prefix, refire, float, BOTH) \ P(class, prefix, secondary, float, NONE) \ P(class, prefix, reload_ammo, float, NONE) \ P(class, prefix, reload_time, float, NONE) \ P(class, prefix, switchdelay_raise, float, NONE) \ P(class, prefix, switchdelay_drop, float, NONE) \ P(class, prefix, weaponreplace, string, NONE) \ P(class, prefix, weaponstart, float, NONE) \ P(class, prefix, weaponstartoverride, float, NONE) \ P(class, prefix, weaponthrowable, float, NONE) \ END() W_PROPS(X, Vortex, vortex) #undef X ENDCLASS(Vortex) REGISTER_WEAPON(VORTEX, vortex, NEW(Vortex)); SPAWNFUNC_WEAPON(weapon_vortex, WEP_VORTEX) SPAWNFUNC_WEAPON(weapon_nex, WEP_VORTEX) #ifdef CSQC bool autocvar_cl_particles_oldvortexbeam; #endif #ifdef SVQC .float vortex_charge_rottime; .float vortex_lasthit; void W_Vortex_Charge(entity actor, .entity weaponentity, float dt); #endif