1 void spawnfunc_turret_plasma();
2 void spawnfunc_turret_plasma_dual();
4 void turret_plasma_std_init();
5 void turret_plasma_dual_init();
7 void turret_plasma_attack();
10 void turret_plasma_postthink()
12 if (self.tur_head.frame != 0)
13 self.tur_head.frame = self.tur_head.frame + 1;
15 if (self.tur_head.frame > 5)
16 self.tur_head.frame = 0;
19 void turret_plasma_dual_postthink()
21 if ((self.tur_head.frame != 0) && (self.tur_head.frame != 3))
22 self.tur_head.frame = self.tur_head.frame + 1;
24 if (self.tur_head.frame > 6)
25 self.tur_head.frame = 0;
28 void turret_plasma_attack()
30 entity missile = turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE);
31 missile.missile_flags = MIF_SPLASH;
33 pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
34 if (self.tur_head.frame == 0)
35 self.tur_head.frame = 1;
38 void turret_plasma_dual_attack()
40 entity missile = turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE);
41 missile.missile_flags = MIF_SPLASH;
42 pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
43 self.tur_head.frame += 1;
46 void turret_plasma_std_init()
48 if (self.netname == "") self.netname = "Plasma Cannon";
51 self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
54 self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_GROUNDGROUND;
55 self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_MEDPROJ | TFL_TURRCAPS_PLAYERKILL;
57 if (turret_stdproc_init("plasma_std", "models/turrets/base.md3", "models/turrets/plasma.md3", TID_PLASMA) == 0)
63 self.damage_flags |= TFL_DMG_HEADSHAKE;
64 self.firecheck_flags |= TFL_FIRECHECK_AFF;
66 // Our fireing routine
67 self.turret_firefunc = turret_plasma_attack;
69 // Custom per turret frame stuff. usualy animation.
70 self.turret_postthink = turret_plasma_postthink;
71 turret_do_updates(self);
75 void turret_plasma_dual_init()
77 if (self.netname == "") self.netname = "Dual Plasma Cannon";
80 self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
82 // How to aim at targets
83 self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_GROUNDGROUND ;
84 self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_MEDPROJ | TFL_TURRCAPS_PLAYERKILL;
86 if (turret_stdproc_init("plasma_dual", "models/turrets/base.md3", "models/turrets/plasmad.md3", TID_PLASMA_DUAL) == 0)
92 self.damage_flags |= TFL_DMG_HEADSHAKE;
93 self.firecheck_flags |= TFL_FIRECHECK_AFF;
95 // Our fireing routine
96 self.turret_firefunc = turret_plasma_dual_attack;
98 // Custom per turret frame stuff. usualy animation.
99 self.turret_postthink = turret_plasma_dual_postthink;
104 * Basic moderate (std) or fast (dual) fireing, short-mid range energy cannon.
105 * Not too mutch of a therat on its own, but can be rather dangerous in groups.
106 * Regenerates ammo slowly, support with a fusionreactor(s) to do some real damage.
109 /*QUAKED turret_plasma (0 .5 .8) ?
111 void spawnfunc_turret_plasma()
113 g_turrets_common_precash();
114 precache_model ("models/turrets/plasma.md3");
115 precache_model ("models/turrets/base.md3");
117 self.think = turret_plasma_std_init;
118 self.nextthink = time + 0.5;
121 /*QUAKED turret_plasma_dual (0 .5 .8) ?
123 void spawnfunc_turret_plasma_dual()
126 precache_model ("models/turrets/plasmad.md3");
127 precache_model ("models/turrets/base.md3");
129 self.think = turret_plasma_dual_init;
130 self.nextthink = time + 0.5;