Gotta go this to be able to merge.
authorunknown <jm@.(none)>
Wed, 10 Nov 2010 23:57:48 +0000 (00:57 +0100)
committerunknown <jm@.(none)>
Wed, 10 Nov 2010 23:57:48 +0000 (00:57 +0100)
balancetZork.cfg
qcsrc/server/w_crylink.qc

index 1c07174..11733c3 100644 (file)
@@ -239,7 +239,7 @@ set g_balance_laser_primary_lifetime 5
 set g_balance_laser_primary_shotangle 0
 set g_balance_laser_primary_delay 0
 set g_balance_laser_primary_gauntlet 0
-set g_balance_laser_primary_force_zscale 1.3
+set g_balance_laser_primary_force_zscale 1.2
 set g_balance_laser_primary_force_velocitybias 0
 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists
 set g_balance_laser_secondary_damage 35
@@ -260,7 +260,7 @@ set g_balance_laser_secondary_force_velocitybias 0
 // {{{ shotgun
 set g_balance_shotgun_primary_bullets 10
 set g_balance_shotgun_primary_damage 5
-set g_balance_shotgun_primary_force 15
+set g_balance_shotgun_primary_force 5
 set g_balance_shotgun_primary_spread 0.07
 set g_balance_shotgun_primary_refire 0.8
 set g_balance_shotgun_primary_animtime 0.2
@@ -373,11 +373,11 @@ set g_balance_minelayer_remote_force 300
 // }}}
 // {{{ electro
 set g_balance_electro_lightning 0
-set g_balance_electro_primary_damage 40
+set g_balance_electro_primary_damage 35
 set g_balance_electro_primary_edgedamage 0
 set g_balance_electro_primary_force 150
 set g_balance_electro_primary_force_up 0
-set g_balance_electro_primary_radius 150
+set g_balance_electro_primary_radius 155
 set g_balance_electro_primary_comboradius 0
 set g_balance_electro_primary_speed 2000
 set g_balance_electro_primary_spread 0
@@ -401,7 +401,7 @@ set g_balance_electro_secondary_spread 0.025
 set g_balance_electro_secondary_lifetime 5
 set g_balance_electro_secondary_refire 0.1
 set g_balance_electro_secondary_refire2 2
-set g_balance_electro_secondary_animtime 0.2
+set g_balance_electro_secondary_animtime 0.15
 set g_balance_electro_secondary_ammo 2
 set g_balance_electro_secondary_health 10
 set g_balance_electro_secondary_damageforcescale 2
@@ -417,26 +417,27 @@ set g_balance_electro_combo_comboradius 0
 set g_balance_electro_combo_speed 1000
 // }}}
 // {{{ crylink
-set g_balance_crylink_primary_damage 5
-set g_balance_crylink_primary_edgedamage 2
-set g_balance_crylink_primary_force 25
-set g_balance_crylink_primary_radius 65
+set g_balance_crylink_primary_damage 20
+set g_balance_crylink_primary_edgedamage 5
+set g_balance_crylink_primary_force 50
+set g_balance_crylink_primary_radius 50
 set g_balance_crylink_primary_speed 2000
 set g_balance_crylink_primary_spread 0.075
-set g_balance_crylink_primary_shots 12
+set g_balance_crylink_primary_shots 4
 set g_balance_crylink_primary_bounces 1
 set g_balance_crylink_primary_refire 1
 set g_balance_crylink_primary_animtime 0.4
 set g_balance_crylink_primary_ammo 2
 set g_balance_crylink_primary_bouncedamagefactor 0.2
 set g_balance_crylink_primary_joinspeed 2000
+set g_balance_crylink_primary_joinboost 2
 
 set g_balance_crylink_primary_middle_lifetime 5 
 set g_balance_crylink_primary_middle_fadetime 5
 set g_balance_crylink_primary_star_lifetime   5 
-set g_balance_crylink_primary_star_fadetime   2.5
+set g_balance_crylink_primary_star_fadetime   5
 set g_balance_crylink_primary_other_lifetime  5 
-set g_balance_crylink_primary_other_fadetime  2.5
+set g_balance_crylink_primary_other_fadetime  5
 
 set g_balance_crylink_secondary 1
 set g_balance_crylink_secondary_damage 2
@@ -536,7 +537,7 @@ set g_balance_rocketlauncher_ammo 3
 set g_balance_rocketlauncher_health 10
 set g_balance_rocketlauncher_damageforcescale 0
 set g_balance_rocketlauncher_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
-set g_balance_rocketlauncher_guiderate 18 // max degrees per second
+set g_balance_rocketlauncher_guiderate 25 // max degrees per second
 set g_balance_rocketlauncher_guideratedelay 0.01 // immediate
 set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic)
 set g_balance_rocketlauncher_guidedelay 0.15 // delay before guiding kicks in
@@ -546,9 +547,9 @@ set g_balance_rocketlauncher_laserguided_speedaccel 0
 set g_balance_rocketlauncher_laserguided_speedstart 1000
 set g_balance_rocketlauncher_laserguided_turnrate 0.75 //0.5
 set g_balance_rocketlauncher_laserguided_allow_steal 1
-set g_balance_rocketlauncher_remote_damage 90
-set g_balance_rocketlauncher_remote_edgedamage 20
-set g_balance_rocketlauncher_remote_radius 125
+set g_balance_rocketlauncher_remote_damage 120
+set g_balance_rocketlauncher_remote_edgedamage 25
+set g_balance_rocketlauncher_remote_radius 130
 set g_balance_rocketlauncher_remote_force 350
 // }}}
 // {{{ porto
index 14470ed..bf65d03 100644 (file)
@@ -231,6 +231,7 @@ void W_Crylink_Attack (void)
        while (counter < shots)
        {
                proj = spawn ();
+               proj.crylink_waitrelease = time;        // keep track of when each projectile was spawned
                proj.realowner = proj.owner = self;
                proj.classname = "spike";
                proj.bot_dodge = TRUE;
@@ -325,6 +326,7 @@ void W_Crylink_Attack2 (void)
        while (counter < shots)
        {
                proj = spawn ();
+               proj.crylink_waitrelease = time;        // keep track of when each projectile was spawned
                proj.realowner = proj.owner = self;
                proj.classname = "spike";
                proj.bot_dodge = TRUE;
@@ -404,14 +406,19 @@ float w_crylink(float req)
        {
                if (self.BUTTON_ATCK)
                {
+                       if(self.crylink_lastgroup == world)
+                               self.crylink_waitrelease = 0;
+                               
                        if (!self.crylink_waitrelease)
                        if (weapon_prepareattack(0, cvar("g_balance_crylink_primary_refire")))
                        {
                                W_Crylink_Attack();
                                weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_crylink_primary_animtime"), w_ready);
                                if(cvar("g_balance_crylink_primary_joinspeed") != 0)
-                                       self.crylink_waitrelease = 1;
-                       }               
+                                       self.crylink_waitrelease = 1; // time + 0.01;
+                       }
+                       
+
                }
                else if(self.BUTTON_ATCK2 && cvar("g_balance_crylink_secondary"))
                {
@@ -424,29 +431,33 @@ float w_crylink(float req)
                        }
                }
                else
-               {
-                       if (self.crylink_waitrelease)
+               {                       
+                       if (self.crylink_waitrelease) 
                        {
                                // fired and released now!
                                if(self.crylink_lastgroup)
-                               {
-                                       if(self.crylink_waitrelease == 1)
+                               {                                       
+                                       // Click and hold fire
+                                       if (time - self.crylink_lastgroup.crylink_waitrelease > 0.1)
                                        {
-                                               W_Crylink_LinkJoin(self.crylink_lastgroup, cvar("g_balance_crylink_primary_joinspeed"));                                                
-                                               
+                                               //dprint("HoldFire:", ftos(time - self.crylink_lastgroup.crylink_waitrelease), "\nTimer is ", ftos(self.crylink_lastgroup.crylink_waitrelease),"\n");
+                                               W_Crylink_LinkJoin(self.crylink_lastgroup, cvar("g_balance_crylink_primary_joinspeed"));                                                                                                        
                                                // 'splode @ join, if timing is just right, you get the target with the join-explode splash first, then the individual projectile's damage.
-                                               self.crylink_lastgroup.think = W_Crylink_Touch;
-                                               self.crylink_lastgroup.nextthink = w_crylink_linkjoin_time + time;                                                      
                                                
+                                               if(w_crylink_linkjoin_time > 0)
+                                               {
+                                                       self.crylink_lastgroup.think            = W_Crylink_Touch;
+                                                       self.crylink_lastgroup.nextthink        = w_crylink_linkjoin_time + time;                                                                                                                                                               
+                                               }
                                        }
-                                       else
+                                       else // tap fire
                                        {
-                                               W_Crylink_LinkJoin(self.crylink_lastgroup, cvar("g_balance_crylink_secondary_joinspeed"));
+                                               dprint("TapFire:", ftos(time - self.crylink_lastgroup.crylink_waitrelease), "\nTimer is ", ftos(self.crylink_lastgroup.crylink_waitrelease),"\n");
                                        }
                                }
-                       }
-
-                       self.crylink_waitrelease = 0;
+                               
+                               self.crylink_waitrelease = 0;
+                       }                                                       
                }
        }
        else if (req == WR_PRECACHE)