#ifdef REGISTER_WEAPON
-REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 9, WEP_FLAG_NORMAL | WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MEDIUM, "seeker", "seeker", "T.A.G. Seeker");
+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
//.float speed; = switchweapon
//.float proxytime; = autoswitch
void Seeker_Missile_Explode ()
{
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, cvar("g_balance_seeker_missile_damage"), cvar("g_balance_seeker_missile_edgedamage"), cvar("g_balance_seeker_missile_radius"), world, cvar("g_balance_seeker_missile_force"), self.projectiledeathtype, other, WEP_SEEKER);
+ RadiusDamage (self, self.owner, cvar("g_balance_seeker_missile_damage"), cvar("g_balance_seeker_missile_edgedamage"), cvar("g_balance_seeker_missile_radius"), world, cvar("g_balance_seeker_missile_force"), self.projectiledeathtype, other);
remove (self);
}
float dist;
if (time > self.cnt)
+ {
+ self.projectiledeathtype |= HITTYPE_SPLASH;
Seeker_Missile_Explode();
+ }
if (!self.switchweapon)
self.switchweapon = cvar("g_balance_seeker_missile_speed");
self.think = Seeker_Missile_Think;
self.nextthink = time;// + cvar("g_balance_seeker_missile_activate_delay"); // cant dealy with csqc projectiles
- if (cvar("g_balance_seeker_guided_proxy"))
+ if (cvar("g_balance_seeker_missile_proxy"))
self.movetype = MOVETYPE_BOUNCEMISSILE;
else
self.movetype = MOVETYPE_FLYMISSILE;
{
local entity missile;
- if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
+ if not(self.owner.items & IT_UNLIMITED_WEAPON_AMMO)
self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_missile_ammo");
makevectors(self.v_angle);
missile.nextthink = time;// + 0.2;// + cvar("g_balance_seeker_missile_activate_delay");
missile.cnt = time + cvar("g_balance_seeker_missile_lifetime");
missile.enemy = self.enemy;
- missile.switchweapon = cvar("g_balance_seeker_missile_speed");
missile.solid = SOLID_BBOX;
missile.scale = 2;
missile.takedamage = DAMAGE_YES;
missile.flags = FL_PROJECTILE;
- missile.velocity = (w_shotdir + '0 0 0.45') * missile.switchweapon;
- W_SetupProjectileVelocity(missile);
+ W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_missile);
missile.switchweapon = vlen(missile.velocity);
missile.angles = vectoangles (missile.velocity);
entity oldself,oldenemy;
self.cnt = self.cnt - 1;
- if ((self.owner.ammo_rockets < cvar("g_balance_seeker_missile_ammo")) || (self.cnt <= -1) || (self.owner.deadflag != DEAD_NO))
+ if((!(self.owner.items & IT_UNLIMITED_AMMO) && self.owner.ammo_rockets < cvar("g_balance_seeker_missile_ammo")) || (self.cnt <= -1) || (self.owner.deadflag != DEAD_NO))
{
remove(self);
return;
missile.flags = FL_PROJECTILE;
- missile.velocity = w_shotdir * cvar("g_balance_seeker_tag_speed");
missile.movetype = MOVETYPE_FLY;
- W_SetupProjectileVelocity(missile);
+ W_SETUPPROJECTILEVELOCITY(missile, g_balance_seeker_tag);
missile.angles = vectoangles (missile.velocity);
CSQCProjectile(missile, TRUE, PROJECTILE_TAG, FALSE); // has sound
{
self.event_damage = SUB_Null;
- RadiusDamage (self, self.owner, cvar("g_balance_seeker_flac_damage"), cvar("g_balance_seeker_flac_edgedamage"), cvar("g_balance_seeker_flac_radius"), world, cvar("g_balance_seeker_flac_force"), self.projectiledeathtype, other, WEP_SEEKER);
+ RadiusDamage (self, self.owner, cvar("g_balance_seeker_flac_damage"), cvar("g_balance_seeker_flac_edgedamage"), cvar("g_balance_seeker_flac_radius"), world, cvar("g_balance_seeker_flac_force"), self.projectiledeathtype, other);
remove (self);
}
missile.bot_dodgerating = cvar("g_balance_seeker_flac_damage");
missile.touch = Seeker_Flac_Explode;
missile.use = Seeker_Flac_Explode;
- missile.think = Seeker_Flac_Explode;
+ missile.think = adaptor_think2use_hittype_splash;
missile.nextthink = time + cvar("g_balance_seeker_flac_lifetime") + cvar("g_balance_seeker_flac_lifetime_rand");
missile.solid = SOLID_BBOX;
missile.scale = 0.4; // BUG: the model is too big
missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
missile.movetype = MOVETYPE_FLY;
- w_shotdir = w_shotdir + '0 0 0.3';
- missile.velocity = (w_shotdir + randomvec() * cvar("g_balance_seeker_flac_spread")) * cvar("g_balance_seeker_flac_speed");
-
- W_SetupProjectileVelocity(missile);
+ W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_flac);
missile.angles = vectoangles (missile.velocity);
missile.flags = FL_PROJECTILE;
{
precache_model ("models/weapons/g_seeker.md3");
precache_model ("models/weapons/v_seeker.md3");
- precache_model ("models/weapons/h_seeker.dpm");
+ precache_model ("models/weapons/h_seeker.iqm");
precache_sound ("weapons/tag_fire.wav");
precache_sound ("weapons/flac_fire.wav");
precache_sound ("weapons/seeker_fire.wav");