From 4c6a45316a6527f5a5bca791e8d0e29628b712cf Mon Sep 17 00:00:00 2001 From: Jakob MG Date: Sun, 24 Jun 2012 14:01:56 +0200 Subject: [PATCH] Raptor gets missile proxy alarm. Generic missile flags. reduce raptor speed, health & shiled a tad --- qcsrc/server/defs.qh | 17 ++++++++++++ qcsrc/server/tturrets/units/unit_ewheel.qc | 7 +++-- qcsrc/server/tturrets/units/unit_flac.qc | 3 ++- qcsrc/server/tturrets/units/unit_hellion.qc | 1 + qcsrc/server/tturrets/units/unit_hk.qc | 3 ++- qcsrc/server/tturrets/units/unit_mlrs.qc | 1 + qcsrc/server/tturrets/units/unit_plasma.qc | 7 +++-- qcsrc/server/tturrets/units/unit_walker.qc | 5 ++-- qcsrc/server/vehicles/raptor.qc | 28 ++++++++++++++++++++ qcsrc/server/w_crylink.qc | 6 +++-- qcsrc/server/w_electro.qc | 2 ++ qcsrc/server/w_fireball.qc | 6 +++-- qcsrc/server/w_grenadelauncher.qc | 2 ++ qcsrc/server/w_hagar.qc | 3 +++ qcsrc/server/w_hlac.qc | 1 + qcsrc/server/w_hook.qc | 1 + qcsrc/server/w_laser.qc | 1 + qcsrc/server/w_minelayer.qc | 1 + qcsrc/server/w_rocketlauncher.qc | 1 + qcsrc/server/w_seeker.qc | 4 +++ sound/vehicles/missile_alarm.wav | Bin 0 -> 40184 bytes vehicle_raptor.cfg | 28 ++++++++++---------- 22 files changed, 102 insertions(+), 26 deletions(-) create mode 100644 sound/vehicles/missile_alarm.wav diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index fe1b00b9a..2391f37ae 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -657,3 +657,20 @@ typedef vector(entity player, entity spot, vector current) spawn_evalfunc_t; .entity conveyor; string modname; + +.float missile_flags; +#define MIF_SPLASH 2 +#define MIF_ARC 4 +#define MIF_PROXY 8 +#define MIF_GUIDED_MANUAL 16 +#define MIF_GUIDED_HEAT 32 +#define MIF_GUIDED_LASER 64 +#define MIF_GUIDED_AI 128 +#define MIF_GUIDED_TAG 128 +#define MIF_GUIDED_ALL (MIF_GUIDED_MANUAL | MIF_GUIDED_HEAT | MIF_GUIDED_LASER | MIF_GUIDED_AI | MIF_GUIDED_TAG) +#define MIF_GUIDED_TRACKING (MIF_GUIDED_HEAT | MIF_GUIDED_LASER | MIF_GUIDED_AI | MIF_GUIDED_TAG) +#define MIF_GUIDED_CONFUSABLE (MIF_GUIDED_HEAT | MIF_GUIDED_AI) + +#define MISSILE_IS_CONFUSABLE(m) ((m.missile_flags & MIF_GUIDED_CONFUSABLE) ? TRUE : FALSE) +#define MISSILE_IS_GUIDED(m) ((m.missile_flags & MIF_GUIDED_ALL) ? TRUE : FALSE) +#define MISSILE_IS_TRACKING(m) ((m.missile_flags & MIF_GUIDED_TRACKING) ? TRUE : FALSE) \ No newline at end of file diff --git a/qcsrc/server/tturrets/units/unit_ewheel.qc b/qcsrc/server/tturrets/units/unit_ewheel.qc index 6b8f8e7d4..767c34662 100644 --- a/qcsrc/server/tturrets/units/unit_ewheel.qc +++ b/qcsrc/server/tturrets/units/unit_ewheel.qc @@ -7,12 +7,15 @@ void ewheel_attack() { float i; - + entity _mis; + for (i = 0; i < 1; ++i) { turret_do_updates(self); - turret_projectile("weapons/lasergun_fire.wav", 1, 0, DEATH_TURRET_EWHEEL, PROJECTILE_LASER, TRUE, TRUE); + _mis = turret_projectile("weapons/lasergun_fire.wav", 1, 0, DEATH_TURRET_EWHEEL, PROJECTILE_LASER, TRUE, TRUE); + _mis.missile_flags = MIF_SPLASH; + pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1); self.tur_head.frame += 2; diff --git a/qcsrc/server/tturrets/units/unit_flac.qc b/qcsrc/server/tturrets/units/unit_flac.qc index 975abbd4c..7c21ba7ab 100644 --- a/qcsrc/server/tturrets/units/unit_flac.qc +++ b/qcsrc/server/tturrets/units/unit_flac.qc @@ -29,7 +29,8 @@ void turret_flac_attack() pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1); proj.think = turret_flac_projectile_think_explode; proj.nextthink = time + self.tur_impacttime + (random() * 0.01 - random() * 0.01); - + proj.missile_flags = MIF_SPLASH | MIF_PROXY; + self.tur_head.frame = self.tur_head.frame + 1; if (self.tur_head.frame >= 4) self.tur_head.frame = 0; diff --git a/qcsrc/server/tturrets/units/unit_hellion.qc b/qcsrc/server/tturrets/units/unit_hellion.qc index 08bfad2a6..75360bcd7 100644 --- a/qcsrc/server/tturrets/units/unit_hellion.qc +++ b/qcsrc/server/tturrets/units/unit_hellion.qc @@ -79,6 +79,7 @@ void turret_hellion_attack() missile.flags = FL_PROJECTILE; missile.tur_health = time + 9; missile.tur_aimpos = randomvec() * 128; + missile.missile_flags = MIF_SPLASH | MIF_PROXY | MIF_GUIDED_HEAT; self.tur_head.frame += 1; } diff --git a/qcsrc/server/tturrets/units/unit_hk.qc b/qcsrc/server/tturrets/units/unit_hk.qc index aa80e0d6b..8676091f5 100644 --- a/qcsrc/server/tturrets/units/unit_hk.qc +++ b/qcsrc/server/tturrets/units/unit_hk.qc @@ -257,7 +257,8 @@ void turret_hk_attack() missile.angles = vectoangles(missile.velocity); missile.cnt = time + 30; missile.ticrate = max(autocvar_sys_ticrate, 0.05); - + missile.missile_flags = MIF_SPLASH | MIF_PROXY | MIF_GUIDED_AI; + if (self.tur_head.frame == 0) self.tur_head.frame = self.tur_head.frame + 1; diff --git a/qcsrc/server/tturrets/units/unit_mlrs.qc b/qcsrc/server/tturrets/units/unit_mlrs.qc index 65c0ed058..a12d9d725 100644 --- a/qcsrc/server/tturrets/units/unit_mlrs.qc +++ b/qcsrc/server/tturrets/units/unit_mlrs.qc @@ -20,6 +20,7 @@ void turret_mlrs_attack() turret_tag_fire_update(); missile = turret_projectile("weapons/rocket_fire.wav", 6, 10, DEATH_TURRET_MLRS, PROJECTILE_ROCKET, TRUE, TRUE); missile.nextthink = time + max(self.tur_impacttime,(self.shot_radius * 2) / self.shot_speed); + missile.missile_flags = MIF_SPLASH; te_explosion (missile.origin); } diff --git a/qcsrc/server/tturrets/units/unit_plasma.qc b/qcsrc/server/tturrets/units/unit_plasma.qc index d5abf654b..aacca522e 100644 --- a/qcsrc/server/tturrets/units/unit_plasma.qc +++ b/qcsrc/server/tturrets/units/unit_plasma.qc @@ -27,7 +27,9 @@ void turret_plasma_dual_postthink() void turret_plasma_attack() { - turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE); + entity missile = turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE); + missile.missile_flags = MIF_SPLASH; + pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1); if (self.tur_head.frame == 0) self.tur_head.frame = 1; @@ -35,7 +37,8 @@ void turret_plasma_attack() void turret_plasma_dual_attack() { - turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE); + entity missile = turret_projectile("weapons/hagar_fire.wav", 1, 0, DEATH_TURRET_PLASMA, PROJECTILE_ELECTRO_BEAM, TRUE, TRUE); + missile.missile_flags = MIF_SPLASH; pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1); self.tur_head.frame += 1; } diff --git a/qcsrc/server/tturrets/units/unit_walker.qc b/qcsrc/server/tturrets/units/unit_walker.qc index 646fccccb..f47003f4b 100644 --- a/qcsrc/server/tturrets/units/unit_walker.qc +++ b/qcsrc/server/tturrets/units/unit_walker.qc @@ -199,7 +199,7 @@ void walker_fire_rocket(vector org) rocket.tur_shotorg = randomvec() * 512; rocket.cnt = time + 1; rocket.enemy = self.enemy; - + if (random() < 0.01) rocket.think = walker_rocket_loop; else @@ -215,7 +215,8 @@ void walker_fire_rocket(vector org) rocket.flags = FL_PROJECTILE; rocket.solid = SOLID_BBOX; rocket.tur_health = time + 9; - + rocket.missile_flags = MIF_SPLASH | MIF_PROXY | MIF_GUIDED_HEAT; + CSQCProjectile(rocket, FALSE, PROJECTILE_ROCKET, FALSE); // no culling, has fly sound } diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc index 996fbc7c9..40717bea0 100644 --- a/qcsrc/server/vehicles/raptor.qc +++ b/qcsrc/server/vehicles/raptor.qc @@ -320,6 +320,11 @@ float raptor_takeoff() return 1; } +void raptor_flare_touch() +{ + remove(self); +} + void raptor_flare_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) { self.health -= damage; @@ -574,6 +579,7 @@ float raptor_frame() _flare.event_damage = raptor_flare_damage; _flare.health = 20; _flare.tur_impacttime = time + autocvar_g_vehicle_raptor_flare_lifetime; + _flare.touch = raptor_flare_touch; } raptor.delay = time + autocvar_g_vehicle_raptor_flare_refire; raptor.lip = time; @@ -583,6 +589,27 @@ float raptor_frame() raptor.bomb1.alpha = raptor.bomb2.alpha = (time - raptor.lip) / (raptor.delay - raptor.lip); player.vehicle_reload2 = bound(0, raptor.bomb1.alpha * 100, 100); + if(self.bomb1.cnt < time) + { + entity _missile = findchainentity(enemy, raptor); + float _incomming = 0; + while(_missile) + { + if(_missile.flags & FL_PROJECTILE) + if(MISSILE_IS_TRACKING(_missile)) + if(vlen(self.origin - _missile.origin) < 2 * autocvar_g_vehicle_raptor_flare_range) + ++_incomming; + + _missile = _missile.chain; + } + + if(_incomming) + sound(self, CH_PAIN_SINGLE, "vehicles/missile_alarm.wav", VOL_BASE, ATTN_NONE); + + self.bomb1.cnt = time + 1; + } + + VEHICLE_UPDATE_PLAYER(health, raptor); VEHICLE_UPDATE_PLAYER(energy, raptor); if(self.vehicle_flags & VHF_HASSHIELD) @@ -829,6 +856,7 @@ void spawnfunc_vehicle_raptor() precache_sound ("vehicles/raptor_fly.wav"); precache_sound ("vehicles/raptor_speed.wav"); + precache_sound ("vehicles/missile_alarm.wav"); self.think = raptor_dinit; diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc index e748987cb..1ce463827 100644 --- a/qcsrc/server/w_crylink.qc +++ b/qcsrc/server/w_crylink.qc @@ -409,7 +409,8 @@ void W_Crylink_Attack (void) //proj.glow_size = 20; proj.flags = FL_PROJECTILE; - + proj.missile_flags = MIF_SPLASH; + CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE); other = proj; MUTATOR_CALLHOOK(EditProjectile); @@ -500,7 +501,8 @@ void W_Crylink_Attack2 (void) //proj.glow_size = 20; proj.flags = FL_PROJECTILE; - + proj.missile_flags = MIF_SPLASH; + CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE); other = proj; MUTATOR_CALLHOOK(EditProjectile); diff --git a/qcsrc/server/w_electro.qc b/qcsrc/server/w_electro.qc index 9b1b96e56..7a91cbd89 100644 --- a/qcsrc/server/w_electro.qc +++ b/qcsrc/server/w_electro.qc @@ -140,6 +140,7 @@ void W_Electro_Attack() proj.touch = W_Plasma_TouchExplode; setsize(proj, '0 0 -3', '0 0 -3'); proj.flags = FL_PROJECTILE; + proj.missile_flags = MIF_SPLASH; CSQCProjectile(proj, TRUE, PROJECTILE_ELECTRO_BEAM, TRUE); @@ -185,6 +186,7 @@ void W_Electro_Attack2() proj.bouncefactor = autocvar_g_balance_electro_secondary_bouncefactor; proj.bouncestop = autocvar_g_balance_electro_secondary_bouncestop; + proj.missile_flags = MIF_SPLASH | MIF_ARC; #if 0 entity p2; diff --git a/qcsrc/server/w_fireball.qc b/qcsrc/server/w_fireball.qc index 1c950aca4..67547e358 100644 --- a/qcsrc/server/w_fireball.qc +++ b/qcsrc/server/w_fireball.qc @@ -159,7 +159,8 @@ void W_Fireball_Attack1() proj.touch = W_Fireball_TouchExplode; setsize(proj, '-16 -16 -16', '16 16 16'); proj.flags = FL_PROJECTILE; - + proj.missile_flags = MIF_SPLASH | MIF_PROXY; + CSQCProjectile(proj, TRUE, PROJECTILE_FIREBALL, TRUE); other = proj; MUTATOR_CALLHOOK(EditProjectile); @@ -289,7 +290,8 @@ void W_Fireball_Attack2() proj.angles = vectoangles(proj.velocity); proj.flags = FL_PROJECTILE; - + proj.missile_flags = MIF_SPLASH | MIF_PROXY | MIF_ARC; + CSQCProjectile(proj, TRUE, PROJECTILE_FIREMINE, TRUE); other = proj; MUTATOR_CALLHOOK(EditProjectile); diff --git a/qcsrc/server/w_grenadelauncher.qc b/qcsrc/server/w_grenadelauncher.qc index 352ce883b..5f6c0346f 100644 --- a/qcsrc/server/w_grenadelauncher.qc +++ b/qcsrc/server/w_grenadelauncher.qc @@ -200,6 +200,7 @@ void W_Grenade_Attack (void) gren.damageforcescale = autocvar_g_balance_grenadelauncher_primary_damageforcescale; gren.event_damage = W_Grenade_Damage; gren.damagedbycontents = TRUE; + gren.missile_flags = MIF_SPLASH | MIF_ARC; W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_primary); gren.angles = vectoangles (gren.velocity); @@ -247,6 +248,7 @@ void W_Grenade_Attack2 (void) gren.damageforcescale = autocvar_g_balance_grenadelauncher_secondary_damageforcescale; gren.event_damage = W_Grenade_Damage; gren.damagedbycontents = TRUE; + gren.missile_flags = MIF_SPLASH | MIF_ARC; W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_secondary); gren.angles = vectoangles (gren.velocity); diff --git a/qcsrc/server/w_hagar.qc b/qcsrc/server/w_hagar.qc index f3a200f1c..9a4b1ef44 100644 --- a/qcsrc/server/w_hagar.qc +++ b/qcsrc/server/w_hagar.qc @@ -101,6 +101,7 @@ void W_Hagar_Attack (void) missile.angles = vectoangles (missile.velocity); missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH; CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR, TRUE); @@ -144,6 +145,7 @@ void W_Hagar_Attack2 (void) missile.angles = vectoangles (missile.velocity); missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH; CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR_BOUNCING, TRUE); @@ -197,6 +199,7 @@ void W_Hagar_Attack2_Load_Release (void) setorigin (missile, w_shotorg); setsize(missile, '0 0 0', '0 0 0'); missile.movetype = MOVETYPE_FLY; + missile.missile_flags = MIF_SPLASH; // per-shot spread calculation: the more shots there are, the less spread is applied (based on the bias cvar) spread_pershot = ((shots - 1) / (autocvar_g_balance_hagar_secondary_load_max - 1)); diff --git a/qcsrc/server/w_hlac.qc b/qcsrc/server/w_hlac.qc index 62be05f0d..a2697b2f5 100644 --- a/qcsrc/server/w_hlac.qc +++ b/qcsrc/server/w_hlac.qc @@ -102,6 +102,7 @@ void W_HLAC_Attack2f (void) missile.nextthink = time + autocvar_g_balance_hlac_secondary_lifetime; missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH; missile.projectiledeathtype = WEP_HLAC | HITTYPE_SECONDARY; CSQCProjectile(missile, TRUE, PROJECTILE_HLAC, TRUE); diff --git a/qcsrc/server/w_hook.qc b/qcsrc/server/w_hook.qc index 695ac381f..63d02604c 100644 --- a/qcsrc/server/w_hook.qc +++ b/qcsrc/server/w_hook.qc @@ -100,6 +100,7 @@ void W_Hook_Attack2() gren.damageforcescale = autocvar_g_balance_hook_secondary_damageforcescale; gren.event_damage = W_Hook_Damage; gren.damagedbycontents = TRUE; + gren.missile_flags = MIF_SPLASH | MIF_ARC; gren.velocity = '0 0 1' * autocvar_g_balance_hook_secondary_speed; if(autocvar_g_projectiles_newton_style) diff --git a/qcsrc/server/w_laser.qc b/qcsrc/server/w_laser.qc index 3da9e422b..5e2bb075a 100644 --- a/qcsrc/server/w_laser.qc +++ b/qcsrc/server/w_laser.qc @@ -75,6 +75,7 @@ void W_Laser_Attack (float issecondary) missile.touch = W_Laser_Touch; missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH; missile.think = W_Laser_Think; missile.nextthink = time + autocvar_g_balance_laser_primary_delay; diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index 5bf98d752..4d98f0c91 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -308,6 +308,7 @@ void W_Mine_Attack (void) mine.nextthink = time; mine.cnt = time + (autocvar_g_balance_minelayer_lifetime - autocvar_g_balance_minelayer_lifetime_countdown); mine.flags = FL_PROJECTILE; + mine.missile_flags = MIF_SPLASH | MIF_ARC | MIF_PROXY; CSQCProjectile(mine, TRUE, PROJECTILE_MINE, TRUE); diff --git a/qcsrc/server/w_rocketlauncher.qc b/qcsrc/server/w_rocketlauncher.qc index 42ae90d74..643bf4bd5 100644 --- a/qcsrc/server/w_rocketlauncher.qc +++ b/qcsrc/server/w_rocketlauncher.qc @@ -250,6 +250,7 @@ void W_Rocket_Attack (void) missile.nextthink = time; missile.cnt = time + autocvar_g_balance_rocketlauncher_lifetime; missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH; CSQCProjectile(missile, autocvar_g_balance_rocketlauncher_guiderate == 0 && autocvar_g_balance_rocketlauncher_speedaccel == 0, PROJECTILE_ROCKET, FALSE); // because of fly sound diff --git a/qcsrc/server/w_seeker.qc b/qcsrc/server/w_seeker.qc index f5a3e3b16..7cf6cfb73 100644 --- a/qcsrc/server/w_seeker.qc +++ b/qcsrc/server/w_seeker.qc @@ -207,6 +207,8 @@ void Seeker_Fire_Missile(vector f_diff, entity m_target) setsize (missile, '-4 -4 -4', '4 4 4'); missile.movetype = MOVETYPE_FLYMISSILE; missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH | MIF_GUIDED_TAG; + W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_missile); missile.angles = vectoangles (missile.velocity); @@ -279,6 +281,7 @@ void Seeker_Fire_Flac() missile.projectiledeathtype = WEP_SEEKER; missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY; missile.flags = FL_PROJECTILE; + missile.missile_flags = MIF_SPLASH; // csqc projectiles //missile.angles = vectoangles (missile.velocity); @@ -500,6 +503,7 @@ void Seeker_Fire_Tag() setsize (missile, '-2 -2 -2', '2 2 2'); missile.flags = FL_PROJECTILE; + //missile.missile_flags = MIF_..?; missile.movetype = MOVETYPE_FLY; W_SETUPPROJECTILEVELOCITY(missile, g_balance_seeker_tag); diff --git a/sound/vehicles/missile_alarm.wav b/sound/vehicles/missile_alarm.wav new file mode 100644 index 0000000000000000000000000000000000000000..bf3860aaf87b7544edeb2d7e14a9f57468d11f20 GIT binary patch literal 40184 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 literal 0 HcmV?d00001 diff --git a/vehicle_raptor.cfg b/vehicle_raptor.cfg index 96ba6a0cd..3d6d82c3b 100644 --- a/vehicle_raptor.cfg +++ b/vehicle_raptor.cfg @@ -1,10 +1,10 @@ -set g_vehicle_raptor_respawntime 35 +set g_vehicle_raptor_respawntime 40 // 0: go where player aims, +forward etc relative to aim angles // 1: ignore aim for up/down movement. +forward always moved forward, +jump always moves up set g_vehicle_raptor_movestyle 1 -set g_vehicle_raptor_turnroll 0.2 +set g_vehicle_raptor_turnroll 0.4 set g_vehicle_raptor_takeofftime 1.5 @@ -12,11 +12,11 @@ set g_vehicle_raptor_turnspeed 120 set g_vehicle_raptor_pitchspeed 60 set g_vehicle_raptor_pitchlimit 45 -set g_vehicle_raptor_speed_forward 1500 -set g_vehicle_raptor_speed_strafe 1000 +set g_vehicle_raptor_speed_forward 1000 +set g_vehicle_raptor_speed_strafe 700 set g_vehicle_raptor_speed_up 900 set g_vehicle_raptor_speed_down 1200 -set g_vehicle_raptor_friction 0.8 +set g_vehicle_raptor_friction 0.7 set g_vehicle_raptor_bomblets 8 set g_vehicle_raptor_bomblet_alt 750 @@ -29,7 +29,7 @@ set g_vehicle_raptor_bomblet_force 150 set g_vehicle_raptor_bomblet_explode_delay 0.4 set g_vehicle_raptor_bombs_refire 5 -set g_vehicle_raptor_cannon_turnspeed 45 +set g_vehicle_raptor_cannon_turnspeed 40 set g_vehicle_raptor_cannon_turnlimit 20 set g_vehicle_raptor_cannon_pitchlimit_up 12 set g_vehicle_raptor_cannon_pitchlimit_down 32 @@ -41,7 +41,7 @@ set g_vehicle_raptor_cannon_locked_time 5 set g_vehicle_raptor_cannon_predicttarget 1 set g_vehicle_raptor_cannon_cost 1 -set g_vehicle_raptor_cannon_damage 20 +set g_vehicle_raptor_cannon_damage 10 set g_vehicle_raptor_cannon_radius 60 set g_vehicle_raptor_cannon_refire 0.05 set g_vehicle_raptor_cannon_speed 12000 @@ -51,22 +51,22 @@ set g_vehicle_raptor_cannon_force 25 set g_vehicle_raptor_flare_refire 5 set g_vehicle_raptor_flare_lifetime 10 set g_vehicle_raptor_flare_chase 0.9 -set g_vehicle_raptor_flare_range 1500 +set g_vehicle_raptor_flare_range 1750 -set g_vehicle_raptor_energy 30 -set g_vehicle_raptor_energy_regen 15 -set g_vehicle_raptor_energy_regen_pause 0.8 +set g_vehicle_raptor_energy 60 +set g_vehicle_raptor_energy_regen 20 +set g_vehicle_raptor_energy_regen_pause 1 -set g_vehicle_raptor_health 200 +set g_vehicle_raptor_health 160 set g_vehicle_raptor_health_regen 0 set g_vehicle_raptor_health_regen_pause 0 -set g_vehicle_raptor_shield 150 +set g_vehicle_raptor_shield 90 set g_vehicle_raptor_shield_regen 25 set g_vehicle_raptor_shield_regen_pause 1.5 set g_vehicle_raptor_bouncefactor 0.2 set g_vehicle_raptor_bouncestop 0 -set g_vehicle_raptor_bouncepain "1 1.5 500" +set g_vehicle_raptor_bouncepain "1 1 500" set g_vehicle_raptor_mass 2200 -- 2.39.2