]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Raptor gets missile proxy alarm. Generic missile flags. reduce raptor speed, health...
authorJakob MG <jakob_mg@hotmail.com>
Sun, 24 Jun 2012 12:01:56 +0000 (14:01 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Sun, 24 Jun 2012 12:01:56 +0000 (14:01 +0200)
22 files changed:
qcsrc/server/defs.qh
qcsrc/server/tturrets/units/unit_ewheel.qc
qcsrc/server/tturrets/units/unit_flac.qc
qcsrc/server/tturrets/units/unit_hellion.qc
qcsrc/server/tturrets/units/unit_hk.qc
qcsrc/server/tturrets/units/unit_mlrs.qc
qcsrc/server/tturrets/units/unit_plasma.qc
qcsrc/server/tturrets/units/unit_walker.qc
qcsrc/server/vehicles/raptor.qc
qcsrc/server/w_crylink.qc
qcsrc/server/w_electro.qc
qcsrc/server/w_fireball.qc
qcsrc/server/w_grenadelauncher.qc
qcsrc/server/w_hagar.qc
qcsrc/server/w_hlac.qc
qcsrc/server/w_hook.qc
qcsrc/server/w_laser.qc
qcsrc/server/w_minelayer.qc
qcsrc/server/w_rocketlauncher.qc
qcsrc/server/w_seeker.qc
sound/vehicles/missile_alarm.wav [new file with mode: 0644]
vehicle_raptor.cfg

index fe1b00b9a643ea68c510bef32f1c9bff13a49be0..2391f37ae3bd42cea432fa6f40d5fa87e98fa7dd 100644 (file)
@@ -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
index 6b8f8e7d4cbadaa337953dee17dc4f5cacaa7349..767c346620547b0dd565f58f093f46b675b1f8f8 100644 (file)
@@ -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;
index 975abbd4c928254ec566a3d8858df8ad67b3f28a..7c21ba7abef9e0bdea8535d6b805167fc3f50953 100644 (file)
@@ -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;
index 08bfad2a611e71546139ce17ff9beee69f02b62d..75360bcd7142bf7af73518c7226f42ba217bb375 100644 (file)
@@ -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;
 }
 
index aa80e0d6b93a985a996a151f75d2eca69652bff3..8676091f583aaaebf708b814ec7b415f7a9e8b17 100644 (file)
@@ -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;
 
index 65c0ed058500873456c5b7b4c443b062b85e295b..a12d9d7259f6b8c1cc5a3aa610768d4d7b499173 100644 (file)
@@ -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);    
 }
 
index d5abf654be6a8c0f9c9d453d5cb44ea005f3108c..aacca522ec9a1d63c05ac5a042da69ab7e2614fc 100644 (file)
@@ -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;
 }
index 646fccccb2b8ab7e57751e40e6f26c76e9fdcbc8..f47003f4bb19d0d581ed529e8d4c71246dba2a28 100644 (file)
@@ -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
 }
 
index 996fbc7c9b8f7c40700edadb5ebd7789ea0c560e..40717bea0528692e98cc686e0d6030ca79b4d82d 100644 (file)
@@ -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;
     
index e748987cb56a9d9a7f2441d32930a0da47ea6084..1ce463827423fe2d2ca24cfc279772824128f569 100644 (file)
@@ -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);
index 9b1b96e56547abaf3d4bbff42c89a41bde6c781f..7a91cbd89cae366bfde23606899c9fd9807281a9 100644 (file)
@@ -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;
index 1c950aca4a58ddc2b3e1eff4092008df91a086a7..67547e3583efef51458b138d926cfda5daf1ed2d 100644 (file)
@@ -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);
index 352ce883bd255fb49c9ebf0ff95bdb9bf40c06f1..5f6c0346f5cf3c11137bf6e5271487fb764b263e 100644 (file)
@@ -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);
index f3a200f1ca230d9b016e07e2803cea15dbf5310e..9a4b1ef4495aa95d223d7df5cd15f7e770060f0b 100644 (file)
@@ -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)); 
index 62be05f0dcf62a3a8b21bfef514715f9438ca39b..a2697b2f5cb527050677ace98031e52896c6b83e 100644 (file)
@@ -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);
index 695ac381fe55afcaeb750f2890e313addb6ef915..63d02604c4271f11cc808099f148f8946393bbf1 100644 (file)
@@ -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)
index 3da9e422b5c377799d9556013c41a2b2d3dfaaa8..5e2bb075aa5c7ff1a4fd6b258ac2cea9661954a7 100644 (file)
@@ -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;
index 5bf98d7524ab256e33d1a73938088ec887a2f38f..4d98f0c91cd50927abfecdacd53c1b82c6a35dec 100644 (file)
@@ -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);
 
index 42ae90d7466e84c0a46740c9ec2cef614ce873ef..643bf4bd5b5b72b0984365ab6f3f368347b434a2 100644 (file)
@@ -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
 
index f5a3e3b1678fe5e4092700003e838c0c7856e1e2..7cf6cfb73634e11be73aba7215de897f8ee7b715 100644 (file)
@@ -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 (file)
index 0000000..bf3860a
Binary files /dev/null and b/sound/vehicles/missile_alarm.wav differ
index 96ba6a0cdcda8114e607df0ed9754154343a742a..3d6d82c3bb8dee78abf6f97c530042f39c0cfdf0 100644 (file)
@@ -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