]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/server/cl_physics.qc
Cubemap reflections for all fluid types, for much better water slime and lava
[voretournament/voretournament.git] / data / qcsrc / server / cl_physics.qc
index 36c5f0b14e1d0c5070a74a4a2b7002f5bb0f69e3..e595c69abec6f924c39d6dedb37d66256c342f0a 100644 (file)
@@ -55,8 +55,13 @@ void PlayerJump (void)
        }\r
 \r
        mjumpheight = cvar("sv_jumpvelocity");\r
-       if(self.scale) // we are smaller or larger, so we jump lower or higher\r
-               mjumpheight *= (1 - cvar("g_healthsize_movementfactor")) + cvar("g_healthsize_movementfactor") * self.scale; \r
+       if(cvar("g_healthsize")) // if we are smaller or larger, we jump lower or higher\r
+               mjumpheight *= (1 - cvar("g_healthsize_movementfactor")) + cvar("g_healthsize_movementfactor") * self.scale;\r
+       if(self.swallow_progress_prey) // cut jumping based on swallow progress for prey\r
+               mjumpheight *= 1 - (self.swallow_progress_prey * cvar("g_balance_vore_swallow_speed_cutspd_prey"));\r
+       if(self.swallow_progress_pred) // cut jumping based on swallow progress for preds\r
+               mjumpheight *= 1 - (self.swallow_progress_pred * cvar("g_balance_vore_swallow_speed_cutspd_pred"));\r
+\r
        if (self.waterlevel >= WATERLEVEL_SWIMMING)\r
        {\r
                if (self.watertype == CONTENT_WATER)\r
@@ -502,8 +507,19 @@ void PM_Accelerate(vector wishdir, float wishspeed, float wishspeed0, float acce
        if(speedclamp)\r
                accelqw = -accelqw;\r
 \r
-       if(self.scale) // we are smaller or larger, so we run slower or faster\r
-               wishspeed *= (1 - cvar("g_healthsize_movementfactor")) + cvar("g_healthsize_movementfactor") * self.scale; \r
+       if(self.classname == "player")\r
+       {\r
+               if(cvar("g_balance_vore_load_pred_weight") > 0) // apply stomach weight\r
+                       wishspeed /= 1 + (self.stomach_load / self.stomach_maxload) * cvar("g_balance_vore_load_pred_speed");\r
+               if(cvar("g_healthsize")) // if we are smaller or larger, we run slower or faster\r
+                       wishspeed *= (1 - cvar("g_healthsize_movementfactor")) + cvar("g_healthsize_movementfactor") * self.scale; \r
+               if(self.swallow_progress_prey) // cut speed based on swallow progress for prey\r
+                       wishspeed *= 1 - (self.swallow_progress_prey * cvar("g_balance_vore_swallow_speed_cutspd_prey"));\r
+               if(self.swallow_progress_pred) // cut speed based on swallow progress for preds\r
+                       wishspeed *= 1 - (self.swallow_progress_pred * cvar("g_balance_vore_swallow_speed_cutspd_pred"));\r
+               if(self.grabber_stunned > time && random() <= cvar("g_balance_grabber_secondary_stun_rate")) // randomly cut speed while the player is stunned\r
+                       return;\r
+       }\r
 \r
        if(cvar("sv_gameplayfix_q2airaccelerate"))\r
                wishspeed0 = wishspeed;\r
@@ -822,10 +838,6 @@ void SV_PlayerPhysics()
        }\r
 \r
        maxspd_mod *= swampspd_mod; // only one common speed modder please!\r
-       if(cvar("g_balance_vore_weight_gravity") > 0)\r
-               maxspd_mod *= 1 - bound(0, self.stomach_load * cvar("g_balance_vore_weight_speed"), 1); // apply stomach weight\r
-       if(self.swallow_progress_prey && cvar("g_balance_vore_swallow_speed_cutspd"))\r
-               maxspd_mod *= 1 - (self.swallow_progress_prey * cvar("g_balance_vore_swallow_speed_cutspd")); // cut speed based on swallow progress\r
        swampspd_mod = 1;\r
 \r
        // if dead, behave differently\r
@@ -844,6 +856,7 @@ void SV_PlayerPhysics()
        {\r
                self.wasFlying = 0;\r
 \r
+               if(self.classname == "player")\r
                if(self.waterlevel < WATERLEVEL_SWIMMING)\r
                if(time >= self.ladder_time)\r
                if not(self.grabber)\r
@@ -854,9 +867,15 @@ void SV_PlayerPhysics()
                        if not(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOSTEPS)\r
                        {\r
                                if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_METALSTEPS)\r
+                               {\r
                                        GlobalSound(globalsound_metalfall, CHAN_PLAYER, VOICETYPE_PLAYERSOUND);\r
+                                       pointparticles(particleeffectnum("ground_metal"), self.origin, '0 0 0', 1);\r
+                               }\r
                                else\r
+                               {\r
                                        GlobalSound(globalsound_fall, CHAN_PLAYER, VOICETYPE_PLAYERSOUND);\r
+                                       pointparticles(particleeffectnum("ground_dirt"), self.origin, '0 0 0', 1);\r
+                               }\r
                        }\r
                }\r
        }\r
@@ -898,7 +917,7 @@ void SV_PlayerPhysics()
        {\r
                RaceCarPhysics();\r
        }\r
-       else if (self.movetype == MOVETYPE_NOCLIP || self.movetype == MOVETYPE_FLY)\r
+       else if (self.movetype == MOVETYPE_NOCLIP || self.movetype == MOVETYPE_FLY || self.movetype == MOVETYPE_FLY_WORLDONLY)\r
        {\r
                // noclipping or flying\r
                self.flags &~= FL_ONGROUND;\r
@@ -1137,7 +1156,7 @@ void SV_PlayerPhysics()
                if (wishspeed > sv_maxspeed*maxspd_mod)\r
                        wishspeed = sv_maxspeed*maxspd_mod;\r
                if (self.crouch)\r
-                       wishspeed = wishspeed * 0.5;\r
+                       wishspeed = wishspeed * cvar("sv_crouchvelocity");\r
                if (time >= self.teleport_time)\r
                        PM_Accelerate(wishdir, wishspeed, wishspeed, sv_accelerate*maxspd_mod, 1, 0);\r
        }\r
@@ -1169,7 +1188,7 @@ void SV_PlayerPhysics()
                if (wishspeed > maxairspd)\r
                        wishspeed = maxairspd;\r
                if (self.crouch)\r
-                       wishspeed = wishspeed * 0.5;\r
+                       wishspeed = wishspeed * cvar("sv_crouchvelocity");\r
                if (time >= self.teleport_time)\r
                {\r
                        float accelerating;\r