]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
q3df rl 1.2x horizontal force in specific context
authordrjaska <drjaska83@gmail.com>
Fri, 31 Mar 2023 23:42:09 +0000 (02:42 +0300)
committerdrjaska <drjaska83@gmail.com>
Fri, 31 Mar 2023 23:42:09 +0000 (02:42 +0300)
qcsrc/server/damage.qc

index 661f8f945bf2787d9d279755447757ef3620ece0..4ec6c3f178dc2a3d38e67a9aee8fd1bfdf0fd4a5 100644 (file)
@@ -707,6 +707,24 @@ void Damage(entity targ, entity inflictor, entity attacker, float damage, int de
                mirrordamage = M_ARGV(5, float);
                force = M_ARGV(6, vector);
 
+               // Dr. Jaska:
+               // Quake 3 DeFRaG's cpm physic's rocketlauncher has 1.2x horizontal force multiplier
+               // This aims to reproduce it in Quake 3 DeFRaG cpm and XDF physics if damagepush_speedfactor is 0
+               // CPMA cpm physics should be active in .arena maps and Quake 3 DeFRaG cpm physics in .defi maps
+               // It is only intended to be used with 250 base force for devastator which matches Q3 if our
+               // target's damageforcescale is also 2
+               if(force)
+               if(autocvar_g_balance_damagepush_speedfactor == 0)
+               if(attacker.(weaponentity).m_weapon == WEP_DEVASTATOR)
+               if(autocvar_g_balance_devastator_force == 250)
+               if(targ.damageforcescale == 2)
+               if(q3compat & Q3COMPAT_DEFI)
+               if((cvar_string("g_mod_physics") == "CPMA") || (cvar_string("g_mod_physics") == "XDF"))
+               {
+                       force.x *= 1.2;
+                       force.y *= 1.2;
+               }
+
                if(IS_PLAYER(targ) && damage > 0 && attacker)
                {
                        for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)