);
#else
#ifdef SVQC
-float turret_fusionreactor_firecheck()
+bool turret_fusionreactor_firecheck()
{
- if (self.attack_finished_single > time)
- return 0;
+ if (self.attack_finished_single > time)
+ return false;
- if (self.enemy.deadflag != DEAD_NO)
- return 0;
+ if (self.enemy.deadflag != DEAD_NO)
+ return false;
- if (self.enemy == world)
- return 0;
+ if (self.enemy == world)
+ return false;
- if (self.ammo < self.shot_dmg)
- return 0;
+ if (self.ammo < self.shot_dmg)
+ return false;
- if (self.enemy.ammo >= self.enemy.ammo_max)
- return 0;
+ if (self.enemy.ammo >= self.enemy.ammo_max)
+ return false;
- if (vlen(self.enemy.origin - self.origin) > self.target_range)
- return 0;
+ if (vlen(self.enemy.origin - self.origin) > self.target_range)
+ return false;
- if(self.team != self.enemy.team)
- return 0;
+ if(self.team != self.enemy.team)
+ return false;
- if(!(self.enemy.ammo_flags & TFL_AMMO_ENERGY))
- return 0;
+ if(!(self.enemy.ammo_flags & TFL_AMMO_ENERGY))
+ return false;
- return 1;
+ return true;
}
void spawnfunc_turret_fusionreactor() { if(!turret_initialize(TUR_FUSIONREACTOR)) remove(self); }
float t_fusionreactor(float req)
{
- switch(req)
- {
- case TR_ATTACK:
- {
- vector fl_org;
-
- self.enemy.ammo = min(self.enemy.ammo + self.shot_dmg,self.enemy.ammo_max);
- fl_org = 0.5 * (self.enemy.absmin + self.enemy.absmax);
- te_smallflash(fl_org);
-
- return true;
- }
- case TR_THINK:
- {
- self.tur_head.avelocity = '0 250 0' * (self.ammo / self.ammo_max);
-
- return true;
- }
- case TR_DEATH:
- {
- return true;
- }
- case TR_SETUP:
- {
- self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE;
- self.target_select_flags = TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_OWNTEAM | TFL_TARGETSELECT_RANGELIMITS;
- self.firecheck_flags = TFL_FIRECHECK_AMMO_OWN | TFL_FIRECHECK_AMMO_OTHER | TFL_FIRECHECK_DISTANCES | TFL_FIRECHECK_DEAD;
- self.shoot_flags = TFL_SHOOT_HITALLVALID;
- self.aim_flags = TFL_AIM_NO;
- self.track_flags = TFL_TRACK_NO;
-
- self.tur_head.scale = 0.75;
- self.tur_head.avelocity = '0 50 0';
-
- self.turret_firecheckfunc = turret_fusionreactor_firecheck;
-
- return true;
- }
- case TR_PRECACHE:
- {
- precache_model ("models/turrets/base.md3");
- precache_model ("models/turrets/reactor.md3");
- return true;
- }
- }
-
- return true;
+ switch(req)
+ {
+ case TR_ATTACK:
+ {
+ vector fl_org;
+
+ self.enemy.ammo = min(self.enemy.ammo + self.shot_dmg,self.enemy.ammo_max);
+ fl_org = 0.5 * (self.enemy.absmin + self.enemy.absmax);
+ te_smallflash(fl_org);
+
+ return true;
+ }
+ case TR_THINK:
+ {
+ self.tur_head.avelocity = '0 250 0' * (self.ammo / self.ammo_max);
+
+ return true;
+ }
+ case TR_DEATH:
+ {
+ return true;
+ }
+ case TR_SETUP:
+ {
+ self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE;
+ self.target_select_flags = TFL_TARGETSELECT_TEAMCHECK | TFL_TARGETSELECT_OWNTEAM | TFL_TARGETSELECT_RANGELIMITS;
+ self.firecheck_flags = TFL_FIRECHECK_AMMO_OWN | TFL_FIRECHECK_AMMO_OTHER | TFL_FIRECHECK_DISTANCES | TFL_FIRECHECK_DEAD;
+ self.shoot_flags = TFL_SHOOT_HITALLVALID;
+ self.aim_flags = TFL_AIM_NO;
+ self.track_flags = TFL_TRACK_NO;
+
+ self.tur_head.scale = 0.75;
+ self.tur_head.avelocity = '0 50 0';
+
+ self.turret_firecheckfunc = turret_fusionreactor_firecheck;
+
+ return true;
+ }
+ case TR_PRECACHE:
+ {
+ precache_model ("models/turrets/base.md3");
+ precache_model ("models/turrets/reactor.md3");
+ return true;
+ }
+ }
+
+ return true;
}
#endif // SVQC
#ifdef CSQC
float t_fusionreactor(float req)
{
- switch(req)
- {
- case TR_SETUP:
- {
- return true;
- }
- case TR_PRECACHE:
- {
- return true;
- }
- }
-
- return true;
+ switch(req)
+ {
+ case TR_SETUP:
+ {
+ return true;
+ }
+ case TR_PRECACHE:
+ {
+ return true;
+ }
+ }
+
+ return true;
}
#endif // CSQC