set g_balance_seeker_flac_radius 100
set g_balance_seeker_flac_refire 0.1
set g_balance_seeker_flac_speed 3000
+set g_balance_seeker_flac_speed_up 1000
set g_balance_seeker_flac_spread 0.4
set g_balance_seeker_missile_accel 1.05
set g_balance_seeker_missile_ammo 2
set g_balance_seeker_missile_smart_trace_max 2500
set g_balance_seeker_missile_smart_trace_min 1000
set g_balance_seeker_missile_speed 700
+set g_balance_seeker_missile_speed_up 300
set g_balance_seeker_missile_speed_max 1250
set g_balance_seeker_missile_turnrate 0.65
set g_balance_seeker_tag_ammo 1
set g_balance_seeker_flac_radius 100
set g_balance_seeker_flac_refire 0.1
set g_balance_seeker_flac_speed 3000
+set g_balance_seeker_flac_speed_up 1000
set g_balance_seeker_flac_spread 0.4
set g_balance_seeker_missile_accel 1.05
set g_balance_seeker_missile_ammo 2
set g_balance_seeker_missile_smart_trace_max 2500
set g_balance_seeker_missile_smart_trace_min 1000
set g_balance_seeker_missile_speed 700
+set g_balance_seeker_missile_speed_up 300
set g_balance_seeker_missile_speed_max 1250
set g_balance_seeker_missile_turnrate 0.65
set g_balance_seeker_tag_ammo 1
set g_balance_seeker_flac_radius 100
set g_balance_seeker_flac_refire 0.1
set g_balance_seeker_flac_speed 3000
+set g_balance_seeker_flac_speed_up 1000
set g_balance_seeker_flac_spread 0.4
set g_balance_seeker_missile_accel 1.05
set g_balance_seeker_missile_ammo 2
set g_balance_seeker_missile_smart_trace_max 2500
set g_balance_seeker_missile_smart_trace_min 1000
set g_balance_seeker_missile_speed 700
+set g_balance_seeker_missile_speed_up 300
set g_balance_seeker_missile_speed_max 1250
set g_balance_seeker_missile_turnrate 0.65
set g_balance_seeker_tag_ammo 1
set g_weaponreplace_campingrifle ""
set g_weaponreplace_tuba ""
set g_weaponreplace_fireball 0 // Don't kill me div0, just for now until I figure out a good balance for it.
+set g_weaponreplace_seeker ""
set sv_q3acompat_machineshotgunswap 0 "shorthand for swapping uzi and shotgun (for Q3A map compatibility)"
// }}}
set g_balance_seeker_flac_radius 100
set g_balance_seeker_flac_refire 0.1
set g_balance_seeker_flac_speed 3000
+set g_balance_seeker_flac_speed_up 1000
set g_balance_seeker_flac_spread 0.4
set g_balance_seeker_missile_accel 1.05
set g_balance_seeker_missile_ammo 2
set g_balance_seeker_missile_smart_trace_max 2500
set g_balance_seeker_missile_smart_trace_min 1000
set g_balance_seeker_missile_speed 700
+set g_balance_seeker_missile_speed_up 300
set g_balance_seeker_missile_speed_max 1250
set g_balance_seeker_missile_turnrate 0.65
set g_balance_seeker_tag_ammo 1
case PROJECTILE_FIREBALL: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("fireball"); break; // particle effect is good enough
case PROJECTILE_FIREMINE: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("firemine"); break; // particle effect is good enough
case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break;
- case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.md3"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_ROCKET"); break;
+ case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_ROCKET"); break;
case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.scale = 2; self.traileffect = particleeffectnum("TR_ROCKET"); break;
default:
error("Received invalid CSQC projectile, can't work with this!");
StartItem ("models/items/g_jetpack.md3", "misc/itempickup.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup, "Jet pack", IT_JETPACK, 0, FL_POWERUP, commodity_pickupevalfunc, BOT_PICKUP_RATING_LOW);
}
-// we no longer have the seeker
-void spawnfunc_weapon_seeker()
-{
- spawnfunc_weapon_fireball();
-}
-
#define OP_SET 0
#define OP_MIN 1
#include "w_tuba.qc"
#include "w_campingrifle.qc"
#include "w_fireball.qc"
+#include "w_seeker.qc"
#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);
}
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);
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.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;