]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/weapons/weapon/shockwave.qh
Refactoring item system.
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / weapon / shockwave.qh
1 #pragma once
2
3 CLASS(Shockwave, Weapon)
4 /* ammotype  */ //ATTRIB(Shockwave, ammo_type, int, RESOURCE_NONE);
5 /* impulse   */ ATTRIB(Shockwave, impulse, int, 2);
6 /* flags     */ ATTRIB(Shockwave, spawnflags, int, WEP_TYPE_HITSCAN | WEP_FLAG_CANCLIMB | WEP_TYPE_MELEE_SEC);
7 /* rating    */ ATTRIB(Shockwave, bot_pickupbasevalue, float, 3000);
8 /* color     */ ATTRIB(Shockwave, wpcolor, vector, '0.5 0.25 0');
9 /* modelname */ ATTRIB(Shockwave, mdl, string, "shotgun");
10 #ifdef GAMEQC
11 /* model     */ ATTRIB(Shockwave, m_model, Model, MDL_SHOCKWAVE_ITEM);
12 #endif
13 /* crosshair */ ATTRIB(Shockwave, w_crosshair, string, "gfx/crosshairshotgun");
14 /* crosshair */ ATTRIB(Shockwave, w_crosshair_size, float, 0.7);
15 /* wepimg    */ ATTRIB(Shockwave, model2, string, "weaponshockwave");
16 /* refname   */ ATTRIB(Shockwave, netname, string, "shockwave");
17 /* wepname   */ ATTRIB(Shockwave, m_name, string, _("Shockwave"));
18
19 #define X(BEGIN, P, END, class, prefix) \
20         BEGIN(class) \
21                 P(class, prefix, blast_animtime, float, NONE) \
22                 P(class, prefix, blast_damage, float, NONE) \
23                 P(class, prefix, blast_distance, float, NONE) \
24                 P(class, prefix, blast_edgedamage, float, NONE) \
25                 P(class, prefix, blast_force, float, NONE) \
26                 P(class, prefix, blast_force_forwardbias, float, NONE) \
27                 P(class, prefix, blast_force_zscale, float, NONE) \
28                 P(class, prefix, blast_jump_damage, float, NONE) \
29                 P(class, prefix, blast_jump_edgedamage, float, NONE) \
30                 P(class, prefix, blast_jump_force, float, NONE) \
31                 P(class, prefix, blast_jump_force_velocitybias, float, NONE) \
32                 P(class, prefix, blast_jump_force_zscale, float, NONE) \
33                 P(class, prefix, blast_jump_multiplier_accuracy, float, NONE) \
34                 P(class, prefix, blast_jump_multiplier_distance, float, NONE) \
35                 P(class, prefix, blast_jump_multiplier_min, float, NONE) \
36                 P(class, prefix, blast_jump_radius, float, NONE) \
37                 P(class, prefix, blast_multiplier_accuracy, float, NONE) \
38                 P(class, prefix, blast_multiplier_distance, float, NONE) \
39                 P(class, prefix, blast_multiplier_min, float, NONE) \
40                 P(class, prefix, blast_refire, float, NONE) \
41                 P(class, prefix, blast_splash_damage, float, NONE) \
42                 P(class, prefix, blast_splash_edgedamage, float, NONE) \
43                 P(class, prefix, blast_splash_force, float, NONE) \
44                 P(class, prefix, blast_splash_force_forwardbias, float, NONE) \
45                 P(class, prefix, blast_splash_multiplier_accuracy, float, NONE) \
46                 P(class, prefix, blast_splash_multiplier_distance, float, NONE) \
47                 P(class, prefix, blast_splash_multiplier_min, float, NONE) \
48                 P(class, prefix, blast_splash_radius, float, NONE) \
49                 P(class, prefix, blast_spread_max, float, NONE) \
50                 P(class, prefix, blast_spread_min, float, NONE) \
51                 P(class, prefix, melee_animtime, float, NONE) \
52                 P(class, prefix, melee_damage, float, NONE) \
53                 P(class, prefix, melee_delay, float, NONE) \
54                 P(class, prefix, melee_force, float, NONE) \
55                 P(class, prefix, melee_multihit, float, NONE) \
56                 P(class, prefix, melee_no_doubleslap, float, NONE) \
57                 P(class, prefix, melee_nonplayerdamage, float, NONE) \
58                 P(class, prefix, melee_range, float, NONE) \
59                 P(class, prefix, melee_refire, float, NONE) \
60                 P(class, prefix, melee_swing_side, float, NONE) \
61                 P(class, prefix, melee_swing_up, float, NONE) \
62                 P(class, prefix, melee_time, float, NONE) \
63                 P(class, prefix, melee_traces, float, NONE) \
64                 P(class, prefix, switchdelay_raise, float, NONE) \
65         P(class, prefix, switchdelay_drop, float, NONE) \
66         P(class, prefix, weaponreplace, string, NONE) \
67         P(class, prefix, weaponstart, float, NONE) \
68         P(class, prefix, weaponstartoverride, float, NONE) \
69         P(class, prefix, weaponthrowable, float, NONE) \
70         END()
71     W_PROPS(X, Shockwave, shockwave)
72 #undef X
73
74 ENDCLASS(Shockwave)
75 REGISTER_WEAPON(SHOCKWAVE, shockwave, NEW(Shockwave));
76
77
78 #ifdef CSQC
79 void Net_ReadShockwaveParticle();
80 .vector sw_shotorg;
81 .vector sw_shotdir;
82 .float sw_distance;
83 .float sw_spread_max;
84 .float sw_spread_min;
85 .float sw_time;
86 #endif
87
88 #ifdef SVQC
89 spawnfunc(weapon_shockwave);
90 #endif