REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 9, WEP_FLAG_NORMAL | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID, "seeker", "seeker", "T.A.G. Seeker");
#else
#ifdef SVQC
-//.float speed; = switchweapon
//.float proxytime; = autoswitch
//.float tl; = wait
vector desireddir, olddir, newdir, eorg;
float turnrate;
float dist;
+ float spd;
if (time > self.cnt)
{
Seeker_Missile_Explode();
}
- if (!self.switchweapon)
- self.switchweapon = cvar("g_balance_seeker_missile_speed");
-
- if ((self.switchweapon < cvar("g_balance_seeker_missile_speed_max")) && cvar("g_balance_seeker_missile_speed_accel"))
- self.switchweapon = self.switchweapon * cvar("g_balance_seeker_missile_accel");
-
- if (self.switchweapon > cvar("g_balance_seeker_missile_speed_max"))
- self.switchweapon = self.switchweapon * cvar("g_balance_seeker_missile_decel");
+ spd = vlen(self.velocity);
+ spd = bound(
+ spd - cvar("g_balance_seeker_missile_decel") * frametime,
+ cvar("g_balance_seeker_missile_speed_max"),
+ spd + cvar("g_balance_seeker_missile_accel") * frametime
+ );
if (self.enemy != world)
if (self.enemy.takedamage != DAMAGE_AIM || self.enemy.deadflag != DEAD_NO)
}
newdir = normalize(olddir + desireddir * turnrate); // take the average of the 2 directions; not the best method but simple & easy
- self.velocity = newdir * self.switchweapon; // make me fly in the new direction at my flight speed
+ self.velocity = newdir * spd; // make me fly in the new direction at my flight speed
}
// Proxy
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_missile_ammo");
makevectors(self.v_angle);
- W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav", cvar("g_balance_seeker_missile_damage"));
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav", CHAN_WEAPON, 0);
w_shotorg += f_diff;
pointparticles(particleeffectnum("seeker_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
missile.flags = FL_PROJECTILE;
W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_missile);
- missile.switchweapon = vlen(missile.velocity);
missile.angles = vectoangles (missile.velocity);
CSQCProjectile(missile, FALSE, PROJECTILE_SEEKER, TRUE);
if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_tag_ammo");
- W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav", 0);
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav", CHAN_WEAPON, cvar("g_balance_seeker_missile_damage") * cvar("g_balance_seeker_missile_count"));
missile = spawn();
missile.owner = self;
f_diff = '+1.25 +3.75 0';
break;
}
- W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", cvar("g_balance_seeker_flac_damage"));
+ W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", CHAN_WEAPON, cvar("g_balance_seeker_flac_damage"));
w_shotorg += f_diff;
pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);