Basic implementation for scaling players based on their health
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 1 May 2011 20:28:17 +0000 (23:28 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Sun, 1 May 2011 20:28:17 +0000 (23:28 +0300)
data/defaultVT.cfg
data/qcsrc/server/cl_client.qc

index 3707e475e7923a8a303ac57b6cc392716fe96993..dbb2de0c624f20e62567bb32ac9a5962710fb02c 100644 (file)
@@ -1547,6 +1547,9 @@ set g_vore_regurgitatecolor_release_fade 0.01 "how quickly the regurgitation col
 set g_vore_regurgitatecolor_digest "0.15 0.25 0" "the color players will have when digested, only works when g_vore_keepdeadprey is disabled"\r
 set g_vore_keepdeadprey 1 "If enabled, prey remains in the stomach after dying, else the predator throws up their dead body. 0 = disabled, 1 = enabled, anything between = probability"\r
 \r
+set g_healthsize 1 "Players who are low on health shrink and become smaller"\r
+set g_healthsize_speed 0.1 "Players who are low on health shrink and become smaller"\r
+\r
 // part of an ugly hack for the menu audio sliders to work with the cutsound feature\r
 seta menu_volume 0.5\r
 seta menu_bgmvolume 1\r
index a9668ea4e11423339fcd34aab1728f68bc52648e..8ef9663f96942d8ca42ecfcd0964655745a95829 100644 (file)
@@ -2246,6 +2246,23 @@ float vercmp(string v1, string v2)
        return vercmp_recursive(v1, v2);\r
 }\r
 \r
+.float current_scale;\r
+void ApplyHealthSize()\r
+{\r
+       if not(cvar("g_healthsize"))\r
+               return;\r
+\r
+       self.current_scale = self.health / 100; // range between 0 and 100\r
+       self.current_scale = bound(0, self.current_scale, 100);\r
+\r
+       if(self.scale < self.current_scale - self.scale)\r
+               self.scale += cvar("g_healthsize_speed") * sys_frametime;\r
+       else if(self.scale > self.current_scale + self.scale)\r
+               self.scale -= cvar("g_healthsize_speed") * sys_frametime;\r
+       else\r
+               self.scale = self.current_scale;\r
+}\r
+\r
 void ObserverThink()\r
 {\r
        if (self.flags & FL_JUMPRELEASED) {\r
@@ -2358,6 +2375,9 @@ void PlayerPreThink (void)
        // core code for the vore system\r
        Vore();\r
 \r
+       // health based player size\r
+       ApplyHealthSize();\r
+\r
        // version nagging\r
        if(self.version_nagtime)\r
                if(self.cvar_g_voretournamentversion)\r