4 /* spawnfunc */ ATTRIB(Blaster, m_canonical_spawnfunc, string, "weapon_blaster");
5 /* ammotype */ //ATTRIB(Blaster, ammo_type, Resource, RES_NONE);
6 /* impulse */ ATTRIB(Blaster, impulse, int, 1);
7 /* flags */ ATTRIB(Blaster, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH);
8 /* rating */ ATTRIB(Blaster, bot_pickupbasevalue, float, 0);
9 /* color */ ATTRIB(Blaster, wpcolor, vector, '1 0.5 0.5');
10 /* modelname */ ATTRIB(Blaster, mdl, string, "laser");
12 /* model */ ATTRIB(Blaster, m_model, Model, MDL_BLASTER_ITEM);
13 /* flash mdl */ ATTRIB(Blaster, m_muzzlemodel, Model, MDL_Null);
14 /* flash eff */ ATTRIB(Blaster, m_muzzleeffect, entity, EFFECT_BLASTER_MUZZLEFLASH);
16 /* crosshair */ ATTRIB(Blaster, w_crosshair, string, "gfx/crosshairlaser");
17 /* crosshair */ ATTRIB(Blaster, w_crosshair_size, float, 0.5);
18 /* wepimg */ ATTRIB(Blaster, model2, string, "weaponlaser");
19 /* refname */ ATTRIB(Blaster, netname, string, "blaster");
20 /* wepname */ ATTRIB(Blaster, m_name, string, _("Blaster"));
21 /* legacy */ ATTRIB(Blaster, m_deprecated_netname, string, "laser");
23 #define X(BEGIN, P, END, class, prefix) \
25 P(class, prefix, animtime, float, BOTH) \
26 P(class, prefix, damage, float, BOTH) \
27 P(class, prefix, delay, float, BOTH) \
28 P(class, prefix, edgedamage, float, BOTH) \
29 P(class, prefix, force, float, BOTH) \
30 P(class, prefix, force_zscale, float, BOTH) \
31 P(class, prefix, lifetime, float, BOTH) \
32 P(class, prefix, radius, float, BOTH) \
33 P(class, prefix, refire, float, BOTH) \
34 P(class, prefix, secondary, float, NONE) \
35 P(class, prefix, shotangle, float, BOTH) \
36 P(class, prefix, speed, float, BOTH) \
37 P(class, prefix, spread, float, BOTH) \
38 P(class, prefix, switchdelay_drop, float, NONE) \
39 P(class, prefix, switchdelay_raise, float, NONE) \
40 P(class, prefix, weaponreplace, string, NONE) \
41 P(class, prefix, weaponstartoverride, float, NONE) \
42 P(class, prefix, weaponstart, float, NONE) \
43 P(class, prefix, weaponthrowable, float, NONE) \
45 W_PROPS(X, Blaster, blaster)
49 REGISTER_WEAPON(BLASTER, blaster, NEW(Blaster));
51 SPAWNFUNC_WEAPON(weapon_blaster, WEP_BLASTER)
52 SPAWNFUNC_WEAPON(weapon_laser, WEP_BLASTER)
54 CLASS(OffhandBlaster, OffhandWeapon)
55 ENDCLASS(OffhandBlaster)
56 OffhandBlaster OFFHAND_BLASTER;
57 STATIC_INIT(OFFHAND_BLASTER) { OFFHAND_BLASTER = NEW(OffhandBlaster); }
60 .float blaster_damage;
61 .float blaster_edgedamage;
62 .float blaster_radius;
64 .float blaster_force_zscale;
65 .float blaster_lifetime;
67 // Will be demacroed after WEP_CVAR macros are also demacroed.
68 #define BLASTER_SECONDARY_ATTACK(weapon_name, actor, weaponentity) \
69 makevectors(actor.v_angle); \
73 WEP_BLASTER.m_id | HITTYPE_SECONDARY, \
74 WEP_CVAR_SEC(weapon_name, shotangle), \
75 WEP_CVAR_SEC(weapon_name, damage), \
76 WEP_CVAR_SEC(weapon_name, edgedamage), \
77 WEP_CVAR_SEC(weapon_name, radius), \
78 WEP_CVAR_SEC(weapon_name, force), \
79 WEP_CVAR_SEC(weapon_name, force_zscale), \
80 WEP_CVAR_SEC(weapon_name, speed), \
81 WEP_CVAR_SEC(weapon_name, spread), \
82 WEP_CVAR_SEC(weapon_name, delay), \
83 WEP_CVAR_SEC(weapon_name, lifetime) \