]> icculus.org git repositories - divverent/nexuiz.git/blob - data/qcsrc/server/tturrets/units/unit_fusionreactor.qc
Get rid of g_turrets_unit_ewheel_std_target_range_fire, fix g_turrets_targetscan_mind...
[divverent/nexuiz.git] / data / qcsrc / server / tturrets / units / unit_fusionreactor.qc
1 void spawnfunc_turret_fusionreactor();\r
2 void turret_fusionreactor_dinit();\r
3 void turret_fusionreactor_fire();\r
4 \r
5 float turret_fusionreactor_firecheck()\r
6 {\r
7     if (self.enemy == world) return 0;\r
8 \r
9     if (!self.enemy.ammo_flags & TFL_AMMO_RECIVE) return 0;\r
10     if (!self.enemy.ammo_flags & TFL_AMMO_ENERGY) return 0;\r
11 \r
12     if (self.ammo < self.shot_dmg) return 0;\r
13     if (self.enemy.ammo >= self.enemy.ammo_max) return 0;\r
14     if (self.tur_dist_aimpos > self.target_range) return 0;\r
15     if (self.tur_dist_aimpos < self.target_range_min) return 0;\r
16 \r
17     return 1;\r
18 }\r
19 \r
20 \r
21 void turret_fusionreactor_fire()\r
22 {\r
23     self.enemy.ammo = min(self.enemy.ammo + self.shot_dmg,self.enemy.ammo_max);\r
24     //te_lightning1(world,self.origin,self.enemy.origin);\r
25 }\r
26 \r
27 void turret_fusionreactor_postthink()\r
28 {\r
29 }\r
30 \r
31 void turret_fusionreactor_respawnhook()\r
32 {\r
33     self.tur_head.avelocity = '0 50 0';\r
34 }\r
35 \r
36 void turret_fusionreactor_dinit()\r
37 {\r
38     if (self.netname == "")      self.netname     = "Fusionreactor";\r
39 \r
40     self.turrcaps_flags = TFL_TURRCAPS_SUPPORT | TFL_TURRCAPS_AMMOSOURCE;\r
41 \r
42     self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE;\r
43 \r
44     self.target_select_flags = TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_OWNTEAM | TFL_TARGETSELECT_RANGELIMTS;\r
45 \r
46     self.firecheck_flags = TFL_FIRECHECK_OWM_AMMO | TFL_FIRECHECK_OTHER_AMMO | TFL_FIRECHECK_DISTANCES | TFL_FIRECHECK_DEAD | TFL_FIRECHECK_WORLD;\r
47 \r
48     self.shoot_flags = TFL_SHOOT_HITALLVALID;\r
49     self.aim_flags = TFL_AIM_NO;\r
50     self.track_flags = TFL_TRACK_NO;\r
51     self.turret_respawnhook = turret_fusionreactor_respawnhook;\r
52     if (turret_stdproc_init("fusreac_std",0) == 0)\r
53     {\r
54         remove(self);\r
55         return;\r
56     }\r
57 \r
58     setmodel(self,"models/turrets/base.md3");\r
59     setmodel(self.tur_head,"models/turrets/reactor.md3");\r
60 \r
61     //if(!turret_tag_setup())\r
62     //    dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");\r
63 \r
64     self.tur_head.scale = 0.75;\r
65     setorigin(self.tur_head,self.origin + '0 0 25');\r
66     self.tur_head.avelocity = '0 50 0';\r
67 \r
68     self.turret_firecheckfunc = turret_fusionreactor_firecheck;\r
69     self.turret_firefunc = turret_fusionreactor_fire;\r
70 \r
71     self.turret_postthink = turret_fusionreactor_postthink;\r
72 }\r
73 \r
74 /*QUAKED turret_fusionreactor (0 .5 .8) ?\r
75 */\r
76 void spawnfunc_turret_fusionreactor()\r
77 {\r
78     precache_model ("models/turrets/reactor.md3");\r
79     precache_model ("models/turrets/base.md3");\r
80 \r
81     self.think = turret_fusionreactor_dinit;\r
82     self.nextthink = time + 0.5;\r
83 }\r