]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/turrets/turret/hellion.qc
b3100bcb5e8aeb7e1a474b87ca2bf38b16644ee5
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / turrets / turret / hellion.qc
1 #ifndef TURRET_HELLION_H
2 #define TURRET_HELLION_H
3
4 #include "hellion_weapon.qh"
5
6 CLASS(Hellion, Turret)
7 /* spawnflags */ ATTRIB(Hellion, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_FASTPROJ | TUR_FLAG_PLAYER | TUR_FLAG_MISSILE);
8 /* mins       */ ATTRIB(Hellion, mins, vector, '-32 -32 0');
9 /* maxs       */ ATTRIB(Hellion, maxs, vector, '32 32 64');
10 /* modelname  */ ATTRIB(Hellion, mdl, string, "base.md3");
11 /* model      */ ATTRIB_STRZONE(Hellion, model, string, strcat("models/turrets/", this.mdl));
12 /* head_model */ ATTRIB_STRZONE(Hellion, head_model, string, strcat("models/turrets/", "hellion.md3"));
13 /* netname    */ ATTRIB(Hellion, netname, string, "hellion");
14 /* fullname   */ ATTRIB(Hellion, turret_name, string, _("Hellion Missile Turret"));
15     ATTRIB(Hellion, m_weapon, Weapon, WEP_HELLION);
16 ENDCLASS(Hellion)
17 REGISTER_TURRET(HELLION, NEW(Hellion));
18
19 #endif
20
21 #ifdef IMPLEMENTATION
22
23 #ifdef SVQC
24
25 spawnfunc(turret_hellion) { if (!turret_initialize(TUR_HELLION)) remove(this); }
26
27 METHOD(Hellion, tr_think, void(Hellion thistur, entity it))
28 {
29     SELFPARAM();
30     if (self.tur_head.frame != 0)
31         self.tur_head.frame += 1;
32
33     if (self.tur_head.frame >= 7)
34         self.tur_head.frame = 0;
35 }
36 METHOD(Hellion, tr_setup, void(Hellion this, entity it))
37 {
38     it.aim_flags = TFL_AIM_SIMPLE;
39     it.target_select_flags = TFL_TARGETSELECT_LOS | TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_RANGELIMITS | TFL_TARGETSELECT_TEAMCHECK ;
40     it.firecheck_flags = TFL_FIRECHECK_DEAD | TFL_FIRECHECK_DISTANCES | TFL_FIRECHECK_TEAMCHECK | TFL_FIRECHECK_REFIRE | TFL_FIRECHECK_AFF | TFL_FIRECHECK_AMMO_OWN;
41     it.ammo_flags = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
42 }
43
44 #endif
45 #endif