1 void spawnfunc_turret_tesla();
\r
2 void turret_tesla_dinit();
\r
3 void turret_tesla_fire();
\r
6 entity toast(entity from, float range, float damage)
\r
14 e = findradius(from.origin,range);
\r
17 if ((e.toasted != 1) && (e != from))
\r
18 if (turret_validate_target(self,e,self.target_validate_flags) > 0)
\r
21 traceline(from.origin,e.origin,0,from);
\r
22 if (trace_fraction > 0.9)
\r
24 d = vlen(e.origin - from.origin);
\r
37 te_smallflash(etarget.origin);
\r
38 te_lightning1(world,from.origin,etarget.origin);
\r
39 Damage(etarget,self,self,damage,DEATH_TURRET,etarget.origin,'0 0 0');
\r
40 etarget.toasted = 1;
\r
46 void turret_tesla_fire()
\r
51 if (cvar("g_turrets_nofire") != 0)
\r
54 if (self.attack_finished_single > time) return;
\r
57 r = self.target_range;
\r
59 setorigin(e,self.origin + self.tur_shotorg);
\r
62 self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_MISSILES |
\r
63 TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK;
\r
68 if (t == world) return;
\r
70 self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_MISSILES |
\r
71 TFL_TARGETSELECT_TEAMCHECK;
\r
73 self.attack_finished_single = time + self.shot_refire;
\r
74 self.ammo = self.ammo - self.shot_dmg;
\r
75 for (i = 0;i < 10;i = i + 1)
\r
80 if (t == world) break;
\r
83 e = findchainfloat(toasted, 1);
\r
91 void turret_tesla_postthink()
\r
93 turret_tesla_fire();
\r
95 self.tur_head.frame = self.tur_head.frame + 1;
\r
97 if (self.tur_head.frame >= 11)
\r
98 self.tur_head.frame = 0;
\r
100 if (self.tur_head.avelocity == '0 0 0')
\r
101 self.tur_head.avelocity = '0 35 0';
\r
105 void turret_tesla_dinit()
\r
107 if (self.netname == "") self.netname = "Tesla Coil";
\r
109 self.turrcaps_flags = TFL_TURRCAPS_HITSCAN | TFL_TURRCAPS_PLAYERKILL | TFL_TURRCAPS_MISSILEKILL;
\r
110 self.target_select_flags = TFL_TARGETSELECT_NO;
\r
111 self.firecheck_flags = TFL_FIRECHECK_REFIRE;
\r
112 self.shoot_flags = TFL_SHOOT_CUSTOM;
\r
113 self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
\r
114 self.aim_flags = TFL_AIM_NO;
\r
115 self.track_flags = TFL_TRACK_NO;
\r
117 if (turret_stdproc_init("tesla_std") == 0)
\r
123 setmodel(self,"models/turrets/tesla_base.md3");
\r
124 setmodel(self.tur_head,"models/turrets/tesla_head.md3");
\r
126 self.target_validate_flags = TFL_TARGETSELECT_PLAYERS | TFL_TARGETSELECT_MISSILES |
\r
127 TFL_TARGETSELECT_RANGELIMTS | TFL_TARGETSELECT_TEAMCHECK;
\r
129 if (!turret_tag_setup(0))
\r
130 dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
\r
132 self.turret_firefunc = turret_stdproc_nothing;
\r
133 self.turret_postthink = turret_tesla_postthink;
\r
136 /*QUAKED turret_tesla (0 .5 .8) ?
\r
138 void spawnfunc_turret_tesla()
\r
140 //precache_model ("models/turrets/tesla_head.md3");
\r
141 //precache_model ("models/turrets/tesla_base.md3");
\r
144 self.think = turret_tesla_dinit;
\r
145 self.nextthink = time + 0.5;
\r