#pragma once

#include "plasma_weapon.qh"

CLASS(PlasmaDualAttack, PlasmaAttack)
/* flags     */ ATTRIB(PlasmaDualAttack, spawnflags, int, WEP_FLAG_HIDDEN | WEP_FLAG_SPECIALATTACK);
/* refname   */ ATTRIB(PlasmaDualAttack, netname, string, "turret_plasma_dual");
/* wepname   */ ATTRIB(PlasmaDualAttack, m_name, string, _("Dual plasma"));
ENDCLASS(PlasmaDualAttack)
REGISTER_WEAPON(PLASMA_DUAL, NEW(PlasmaDualAttack));

CLASS(DualPlasmaTurret, PlasmaTurret)
#ifdef GAMEQC
/* spawnflags */ ATTRIB(DualPlasmaTurret, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_MEDPROJ | TUR_FLAG_PLAYER);
/* mins       */ ATTRIB(DualPlasmaTurret, m_mins, vector, '-32 -32 0');
/* maxs       */ ATTRIB(DualPlasmaTurret, m_maxs, vector, '32 32 64');
/* modelname  */ ATTRIB(DualPlasmaTurret, mdl, string, "base.md3");
/* model      */ ATTRIB_STRZONE(DualPlasmaTurret, model, string, strcat("models/turrets/", this.mdl));
/* head_model */ ATTRIB_STRZONE(DualPlasmaTurret, head_model, string, strcat("models/turrets/", "plasmad.md3"));
#endif
/* netname    */ ATTRIB(DualPlasmaTurret, netname, string, "plasma_dual");
/* fullname   */ ATTRIB(DualPlasmaTurret, m_name, string, _("Dual Plasma Cannon"));
#ifdef SVQC
/* weapon     */ ATTRIB(DualPlasmaTurret, m_weapon, Weapon, WEP_PLASMA_DUAL);
#endif

#define X(BEGIN, P, END, class, prefix) \
	BEGIN(class) \
		TR_PROPS_COMMON(P, class, prefix) \
	END()
	TR_PROPS(X, DualPlasmaTurret, plasma_dual)
#undef X

ENDCLASS(DualPlasmaTurret)
REGISTER_TURRET(PLASMA_DUAL, NEW(DualPlasmaTurret));
