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 turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE);
31 pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
32 if (self.tur_head.frame == 0)
33 self.tur_head.frame = 1;
36 void turret_plasma_dual_attack()
38 turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE);
39 pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
40 self.tur_head.frame += 1;
43 void turret_plasma_std_init()
45 if (self.netname == "") self.netname = "Plasma Cannon";
48 self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
51 self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_GROUNDGROUND;
52 self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_MEDPROJ | TFL_TURRCAPS_PLAYERKILL;
54 if (turret_stdproc_init("plasma_std", "models/turrets/base.md3", "models/turrets/plasma.md3", TID_PLASMA) == 0)
60 self.damage_flags |= TFL_DMG_HEADSHAKE;
61 self.firecheck_flags |= TFL_FIRECHECK_AFF;
63 // Our fireing routine
64 self.turret_firefunc = turret_plasma_attack;
66 // Custom per turret frame stuff. usualy animation.
67 self.turret_postthink = turret_plasma_postthink;
68 turret_do_updates(self);
72 void turret_plasma_dual_init()
74 if (self.netname == "") self.netname = "Dual Plasma Cannon";
77 self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
79 // How to aim at targets
80 self.aim_flags = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_GROUNDGROUND ;
81 self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_MEDPROJ | TFL_TURRCAPS_PLAYERKILL;
83 if (turret_stdproc_init("plasma_dual", "models/turrets/base.md3", "models/turrets/plasmad.md3", TID_PLASMA_DUAL) == 0)
89 self.damage_flags |= TFL_DMG_HEADSHAKE;
90 self.firecheck_flags |= TFL_FIRECHECK_AFF;
92 // Our fireing routine
93 self.turret_firefunc = turret_plasma_dual_attack;
95 // Custom per turret frame stuff. usualy animation.
96 self.turret_postthink = turret_plasma_dual_postthink;
101 * Basic moderate (std) or fast (dual) fireing, short-mid range energy cannon.
102 * Not too mutch of a therat on its own, but can be rather dangerous in groups.
103 * Regenerates ammo slowly, support with a fusionreactor(s) to do some real damage.
106 /*QUAKED turret_plasma (0 .5 .8) ?
108 void spawnfunc_turret_plasma()
110 g_turrets_common_precash();
111 precache_model ("models/turrets/plasma.md3");
112 precache_model ("models/turrets/base.md3");
114 self.think = turret_plasma_std_init;
115 self.nextthink = time + 0.5;
118 /*QUAKED turret_plasma_dual (0 .5 .8) ?
120 void spawnfunc_turret_plasma_dual()
123 precache_model ("models/turrets/plasmad.md3");
124 precache_model ("models/turrets/base.md3");
126 self.think = turret_plasma_dual_init;
127 self.nextthink = time + 0.5;