#pragma once
+
+#include "phaser_weapon.qh"
+
+CLASS(PhaserTurret, Turret)
+/* spawnflags */ ATTRIB(PhaserTurret, spawnflags, int, TUR_FLAG_SNIPER | TUR_FLAG_HITSCAN | TUR_FLAG_PLAYER);
+/* mins */ ATTRIB(PhaserTurret, m_mins, vector, '-32 -32 0');
+/* maxs */ ATTRIB(PhaserTurret, m_maxs, vector, '32 32 64');
+/* modelname */ ATTRIB(PhaserTurret, mdl, string, "base.md3");
+/* model */ ATTRIB_STRZONE(PhaserTurret, model, string, strcat("models/turrets/", this.mdl));
+/* head_model */ ATTRIB_STRZONE(PhaserTurret, head_model, string, strcat("models/turrets/", "phaser.md3"));
+/* netname */ ATTRIB(PhaserTurret, netname, string, "phaser");
+/* fullname */ ATTRIB(PhaserTurret, turret_name, string, _("Phaser Cannon"));
+ ATTRIB(PhaserTurret, m_weapon, Weapon, WEP_PHASER);
+
+#define X(BEGIN, P, END, class, prefix) \
+ BEGIN(class) \
+ P(class, prefix, aim_firetolerance_dist, float) \
+ P(class, prefix, aim_maxpitch, float) \
+ P(class, prefix, aim_maxrot, float) \
+ P(class, prefix, aim_speed, float) \
+ P(class, prefix, ammo, float) \
+ P(class, prefix, ammo_max, float) \
+ P(class, prefix, ammo_recharge, float) \
+ P(class, prefix, health, float) \
+ P(class, prefix, respawntime, float) \
+ P(class, prefix, shot_dmg, float) \
+ P(class, prefix, shot_force, float) \
+ P(class, prefix, shot_radius, float) \
+ P(class, prefix, shot_refire, float) \
+ P(class, prefix, shot_speed, float) \
+ P(class, prefix, shot_spread, float) \
+ P(class, prefix, shot_volly, float) \
+ P(class, prefix, shot_volly_refire, float) \
+ P(class, prefix, target_range, float) \
+ P(class, prefix, target_range_min, float) \
+ P(class, prefix, target_range_optimal, float) \
+ P(class, prefix, target_select_anglebias, float) \
+ P(class, prefix, target_select_missilebias, float) \
+ P(class, prefix, target_select_playerbias, float) \
+ P(class, prefix, target_select_rangebias, float) \
+ P(class, prefix, target_select_samebias, float) \
+ P(class, prefix, track_accel_pitch, float) \
+ P(class, prefix, track_accel_rot, float) \
+ P(class, prefix, track_blendrate, float) \
+ P(class, prefix, track_type, float) \
+ END()
+ TR_PROPS(X, PhaserTurret, phaser)
+#undef X
+
+ENDCLASS(PhaserTurret)
+REGISTER_TURRET(PHASER, NEW(PhaserTurret));