]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Racer fires one rocket at the time. All vehicles crush. Raptor primary fires two...
authorJakob MG <jakob_mg@hotmail.com>
Wed, 30 Mar 2011 00:38:31 +0000 (02:38 +0200)
committerJakob MG <jakob_mg@hotmail.com>
Wed, 30 Mar 2011 00:38:31 +0000 (02:38 +0200)
qcsrc/server/vehicles/racer.qc
qcsrc/server/vehicles/raptor.qc
qcsrc/server/vehicles/spiderbot.qc
qcsrc/server/vehicles/vehicles.qc
vehicle_racer.cfg
vehicle_raptor.cfg
vehicles.cfg

index 410490c0987d56150d7480b0ced3427f2de9723f..96dbc4268896fc18172d8f9afdeea6e51b8efd27 100644 (file)
@@ -459,14 +459,22 @@ float racer_frame()
     if(time > racer.delay)
     if(player.BUTTON_ATCK2)
     {
-        racer_fire_rocket("tag_rocket_r", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
-        racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
+        self.misc_bulletcounter += 1;
+        racer.delay = time + 0.2;
+        if(self.misc_bulletcounter == 1)
+            racer_fire_rocket("tag_rocket_r", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
+        else if(self.misc_bulletcounter == 2)
+            racer_fire_rocket("tag_rocket_l", (self.lock_strength == 1 && self.lock_target) ? self.lock_target : world);
+        else
+        {
+            self.lock_strength  = 0;
+            self.lock_target    = world;
+            self.misc_bulletcounter = 0;
 
-        self.lock_strength  = 0;
-        self.lock_target    = world;
+            racer.delay = time + autocvar_g_vehicle_racer_rocket_refire;
+            racer.lip = time;
 
-        racer.delay = time + autocvar_g_vehicle_racer_rocket_refire;
-        racer.lip = time;
+        }
     }
 
     player.fire2_waspressed = player.BUTTON_ATCK2;
@@ -556,9 +564,9 @@ void racer_exit(float eject)
     self.owner = world;
 }
 
-void racer_touch()
+/*void racer_touch()
 {
-    vehicles_touch();
+    //vehicles_touch();
     if(self.owner)
     {
         return;
@@ -574,7 +582,7 @@ void racer_touch()
         return;
 
     vehicles_enter();
-}
+}*/
 
 void racer_spawn()
 {
@@ -588,7 +596,8 @@ void racer_spawn()
     self.vehicle_shield = autocvar_g_vehicle_racer_shield;
 
     self.event_damage = vehicles_damage;
-    self.touch      = racer_touch;
+    //self.touch      = racer_touch;
+    self.touch          = vehicles_touch;
 
     self.iscreature = TRUE;
     self.scale      = 0.5;
index 9ea9bcf0486e0a30a410c4c173da5d8470d4bf22..e4adc57bf83fd9da57188f7f460c524dc081bc50 100644 (file)
@@ -506,13 +506,22 @@ float raptor_frame()
     if(raptor.vehicle_energy > autocvar_g_vehicle_raptor_cannon_cost)
     {
         raptor.misc_bulletcounter += 1;
-        if(mod(raptor.misc_bulletcounter, 2))
+        raptor.attack_finished_single = time + autocvar_g_vehicle_raptor_cannon_refire;
+        //if(mod(raptor.misc_bulletcounter, 2))
+        if(raptor.misc_bulletcounter <= 2)
             raptor_fire_cannon(self.gun1, "fire1");
+        else if(raptor.misc_bulletcounter == 3)
+            raptor_fire_cannon(self.gun2, "fire1");
         else
+        {
+            raptor.attack_finished_single = time + autocvar_g_vehicle_raptor_cannon_refire * 2;
             raptor_fire_cannon(self.gun2, "fire1");
+            raptor.misc_bulletcounter = 0;
+        }
+
 
         raptor.vehicle_energy -= autocvar_g_vehicle_raptor_cannon_cost;
-        raptor.attack_finished_single = time + autocvar_g_vehicle_raptor_cannon_refire;
+
         self.cnt = time;
     }
 
@@ -552,9 +561,9 @@ float raptor_frame()
     return 1;
 }
 
-void raptor_touch()
+/*void raptor_touch()
 {
-    vehicles_touch();
+    //vehicles_touch();
     if(self.owner)
     {
         if(vlen(self.velocity) == 0)
@@ -576,7 +585,7 @@ void raptor_touch()
         return;
 
     vehicles_enter();
-}
+}*/
 
 void raptor_blowup()
 {
@@ -633,7 +642,8 @@ void raptor_spawn()
     self.vehicle_health = autocvar_g_vehicle_raptor_health;
     self.vehicle_shield = autocvar_g_vehicle_raptor_shield;
     self.event_damage   = vehicles_damage;
-    self.touch          = raptor_touch;
+    //self.touch          = raptor_touch;
+    self.touch          = vehicles_touch;
     self.iscreature     = TRUE;
     self.movetype       = MOVETYPE_FLY;
     self.solid          = SOLID_BBOX;
index 5668bd26421563a96094bcc07fde3be92bea5b18..07d676789ec72838ca8ac66a2ba4100dcfb9aef3 100644 (file)
@@ -575,9 +575,9 @@ float spiderbot_crushable(entity e)
     return 0;
 }
 
-void spiderbot_touch()
+/*void spiderbot_touch(
 {
-    vehicles_touch();
+    //vehicles_touch();
     if(self.owner)
     {
         if(vlen(self.velocity) == 0)
@@ -602,7 +602,7 @@ void spiderbot_touch()
         return;
 
     vehicles_enter();
-}
+}*/
 
 
 void spiderbot_spawn()
@@ -619,7 +619,8 @@ void spiderbot_spawn()
     self.movetype           = MOVETYPE_WALK;
     self.solid              = SOLID_SLIDEBOX;
     self.takedamage         = DAMAGE_AIM;
-    self.touch              = spiderbot_touch;
+    //self.touch              = spiderbot_touch;
+    self.touch              = vehicles_touch;
     self.alpha              = self.tur_head.alpha = self.gun1.alpha = self.gun2.alpha = 1;
     self.tur_head.angles    = '0 0 0';
        self.deadflag           = DEAD_NO;
index 1cd45691c8b47e470cc3fd11f4956b1556199cb5..647c6c77eb9e3aac05262deadd3d7ce4fb21195b 100644 (file)
@@ -1,3 +1,6 @@
+float autocvar_g_vehicles_crush_dmg;
+float autocvar_g_vehicles_crush_force;
+
 void vehicles_damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force);
 void vehicles_return();
 void vehicles_clearrturn();
@@ -168,6 +171,21 @@ vector vehicles_force_fromtag_maglev(string tag_name, float spring_length, float
     return v_forward  * force_fromtag_power;
 }
 
+// Better way of determening whats crushable needed! (fl_crushable?)
+float vehicles_crushable(entity e)
+{
+    if(e.classname == "corpse")
+        return TRUE;
+
+    if(e.classname == "player")
+        return TRUE;
+
+    if(e.classname == "monster_zombie")
+        return TRUE;
+
+    return FALSE;
+}
+
 void vehicles_enter();
 void vehicles_touch()
 {
@@ -185,7 +203,14 @@ void vehicles_touch()
             {
                 //other.velocity += self.velocity * (self.mass / other.mass);
             }
+            else if(vehicles_crushable(other))
+            {
+                if(vlen(self.velocity) != 0)
+                    Damage(other, self, self.owner, autocvar_g_vehicles_crush_dmg, DEATH_SBCRUSH, '0 0 0', normalize(other.origin - self.origin) * autocvar_g_vehicles_crush_force);
+            }
         }
+
+        return;
     }
 
     if(other.classname != "player")
@@ -385,6 +410,8 @@ void vehicles_damage(entity inflictor, entity attacker, float damage, float deat
     else
         self.vehicle_health -= damage;
 
+    self.velocity += force * (vlen(force) / self.mass);
+
     if(self.vehicle_health <= 0)
     {
         if(self.owner)
@@ -607,5 +634,4 @@ void bugmenot()
     self.vehicle_die        = self.vehicle_exit;
     self.vehicle_spawn      = self.vehicle_exit;
     self.AuxiliaryXhair     = self.AuxiliaryXhair;
-    //self.vehicle_message    = self.vehicle_exit;
 }
index 1dfeba427481bdadfb24a8b0ed90fc71ee95eddb..8895746f331059025e16b6d5c4e5febd88094fc7 100644 (file)
@@ -25,7 +25,7 @@ set g_vehicle_racer_upforcedamper       0.94
 
 set g_vehicle_racer_downforce            0.01
 set g_vehicle_racer_springlength         40
-set g_vehicle_racer_collision_multiplier 0.55
+set g_vehicle_racer_collision_multiplier 0.05
 set g_vehicle_racer_anglestabilizer      2
 
 set g_vehicle_racer_turnspeed          200
@@ -39,21 +39,22 @@ set g_vehicle_racer_laser_radius       100
 set g_vehicle_racer_laser_refire       0.1
 set g_vehicle_racer_laser_cost         2
 
-set g_vehicle_racer_rocket_speed       1250
-set g_vehicle_racer_rocket_accel       1000
-set g_vehicle_racer_rocket_turnrate    0.12
-set g_vehicle_racer_rocket_damage      120
+set g_vehicle_racer_rocket_speed       1000
+set g_vehicle_racer_rocket_accel       1300
+set g_vehicle_racer_rocket_turnrate    0.14
+set g_vehicle_racer_rocket_damage      150
 set g_vehicle_racer_rocket_radius      100
-set g_vehicle_racer_rocket_refire      3
+set g_vehicle_racer_rocket_refire      5
 set g_vehicle_racer_rocket_cost        0
-set g_vehicle_racer_rocket_locktarget 1
-set g_vehicle_racer_rocket_locking_time 0.5
-set g_vehicle_racer_rocket_locking_releasetime 1
-set g_vehicle_racer_rocket_locked_time 2
-set g_vehicle_racer_rocket_locked_maxangle 1.4
-set g_vehicle_racer_blowup_radius 250
-set g_vehicle_racer_blowup_coredamage 250
-set g_vehicle_racer_blowup_edgedamage 15
-set g_vehicle_racer_blowup_forceintensity 250
-
-set g_vehicle_racer_mass              900
+set g_vehicle_racer_rocket_locktarget           1
+set g_vehicle_racer_rocket_locking_time         0.45
+set g_vehicle_racer_rocket_locking_releasetime  1.2
+set g_vehicle_racer_rocket_locked_time          3.5
+set g_vehicle_racer_rocket_locked_maxangle      1.42
+
+set g_vehicle_racer_blowup_radius           250
+set g_vehicle_racer_blowup_coredamage       250
+set g_vehicle_racer_blowup_edgedamage       15
+set g_vehicle_racer_blowup_forceintensity   250
+
+set g_vehicle_racer_mass                    900
index adfd0a06cc02c1b8d8739cd3f3796dfe39d31361..8af2573930955396f9050fa130e7f50d58b1d0ff 100644 (file)
@@ -16,15 +16,15 @@ set g_vehicle_raptor_speed_up 600
 set g_vehicle_raptor_speed_down 900
 set g_vehicle_raptor_friction 0.7
 
-set g_vehicle_raptor_bomblets           12
+set g_vehicle_raptor_bomblets           10
 set g_vehicle_raptor_bomblet_alt        750
 set g_vehicle_raptor_bomblet_time       0.5
-set g_vehicle_raptor_bomblet_spread     0.4
-set g_vehicle_raptor_bomblet_damage     35
-set g_vehicle_raptor_bomblet_edgedamage 15
-set g_vehicle_raptor_bomblet_radius     300
+set g_vehicle_raptor_bomblet_spread     0.45
+set g_vehicle_raptor_bomblet_damage     40
+set g_vehicle_raptor_bomblet_edgedamage 20
+set g_vehicle_raptor_bomblet_radius     310
 set g_vehicle_raptor_bomblet_force      150
-set g_vehicle_raptor_bomblet_explode_delay 0.25
+set g_vehicle_raptor_bomblet_explode_delay 0.35
 set g_vehicle_raptor_bombs_refire       5
 
 set g_vehicle_raptor_cannon_turnspeed 90
@@ -32,21 +32,21 @@ set g_vehicle_raptor_cannon_turnlimit 20
 set g_vehicle_raptor_cannon_pitchlimit_up   12
 set g_vehicle_raptor_cannon_pitchlimit_down 32
 
-set g_vehicle_raptor_cannon_locktarget 1
-set g_vehicle_raptor_cannon_locking_time 0.5
-set g_vehicle_raptor_cannon_locking_releasetime 1
-set g_vehicle_raptor_cannon_locked_time 2
-set g_vehicle_raptor_cannon_predicttarget 1
+set g_vehicle_raptor_cannon_locktarget          1
+set g_vehicle_raptor_cannon_locking_time        0.6
+set g_vehicle_raptor_cannon_locking_releasetime 1.5
+set g_vehicle_raptor_cannon_locked_time         3.5
+set g_vehicle_raptor_cannon_predicttarget       1
 
 set g_vehicle_raptor_cannon_cost     1
 set g_vehicle_raptor_cannon_damage   25
-set g_vehicle_raptor_cannon_radius   50
-set g_vehicle_raptor_cannon_refire   0.075
-set g_vehicle_raptor_cannon_speed    12500
-set g_vehicle_raptor_cannon_spread   0.0125
+set g_vehicle_raptor_cannon_radius   60
+set g_vehicle_raptor_cannon_refire   0.1
+set g_vehicle_raptor_cannon_speed    12000
+set g_vehicle_raptor_cannon_spread   0.01
 
-set g_vehicle_raptor_energy             30
-set g_vehicle_raptor_energy_regen       15
+set g_vehicle_raptor_energy             40
+set g_vehicle_raptor_energy_regen       20
 set g_vehicle_raptor_energy_regen_pause 0.75
 
 set g_vehicle_raptor_health             200
index 840ed51226a8e60a00c97ad366a76cbef9f73a77..2b9a94754db884fe2e01e8d2f62c7d8d9cea518e 100644 (file)
@@ -7,3 +7,6 @@ exec vehicle_spiderbot.cfg
 set g_vehicle_racer_respawntime     10
 set g_vehicle_spiderbot_respawntime 10
 set g_vehicle_raptor_respawntime    10
+
+set g_vehicles_crush_dmg 70
+set g_vehicles_crush_force 50