]> de.git.xonotic.org Git - voretournament/voretournament.git/commitdiff
Allow prey to stay inside dead predators (long as they haven't been gibbed). Dead...
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Mon, 1 Aug 2011 18:28:46 +0000 (21:28 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Mon, 1 Aug 2011 18:28:46 +0000 (21:28 +0300)
data/balanceVT.cfg
data/qcsrc/server/cl_client.qc
data/qcsrc/server/vore.qc

index 87063129ace57b7872f99faae6551451168fc531..e454f823e4d46ce7808bf44e2bec36a660acac75 100644 (file)
@@ -229,4 +229,5 @@ set g_balance_vore_kick_predator_punchangle 6 "your view gets tilted by this amo
 set g_balance_vore_kick_prey_punchangle 6 "your view gets tilted by this amount when dealing stomach kicks"\r
 set g_balance_vore_kick_cutregurgitate 0.75 "probability that a stomach kick will cause the predator to lose a scheduled regurgitation"\r
 set g_balance_vore_escapeprobability 0.003 "probability of getting regurgitated when the predator takes damage, based on the amount of damage dealt"\r
+set g_balance_vore_deadpredator 1 "allow dead predators to keep their prey, as long as their body isn't gibbed"\r
 // }}}\r
index 2522ec30e808c6bd27bf580c664398e4fd925a1c..008499388292dfbcbb87373ce7ae513b9182bc60 100644 (file)
@@ -459,7 +459,7 @@ Client_customizeentityforclient
 void Client_setmodel(string applymodel)\r
 {\r
        local vector m1, m2;\r
-       if(self.classname != "player" || self.deadflag != DEAD_NO) // prevent some bugs\r
+       if(self.classname != "player") // prevent some bugs\r
                return;\r
        if(applymodel == self.model || self.spectatee_status) // no change to apply\r
                return;\r
@@ -1747,6 +1747,7 @@ void respawn(void)
        if(self.predator.digesting && self.health > cvar("g_balance_vore_digestion_limit"))\r
                return;\r
 \r
+       setmodel(self, self.playermodel); // prevents an issue with dead predators\r
        if(self.alpha >= 0 && self.modelindex != 0 && cvar("g_respawn_ghosts"))\r
        {\r
                self.solid = SOLID_NOT;\r
index e053463942403b37b712b920bb8e2275401ffd55..097792c056b7a509679df27b791b1f8a151807df 100644 (file)
@@ -441,7 +441,9 @@ void Vore_Digest()
 {\r
        // apply digestion to prey\r
 \r
-       if(self.health <= cvar("g_balance_vore_digestion_limit"))\r
+       if(self.predator.deadflag != DEAD_NO) // dead predators don't digest\r
+               return;\r
+       if(self.health <= cvar("g_balance_vore_digestion_limit")) // don't digest below this amount of health\r
                return;\r
 \r
        if(time > self.digestion_step)\r
@@ -838,11 +840,14 @@ void Vore()
                return;\r
        }\r
 \r
-       if(self.predator.deadflag != DEAD_NO) // do we want to be in a dead furry x_x\r
+       // do we stick around inside dead furries? x_x\r
+       if(self.predator.deadflag != DEAD_NO)\r
+       if(!cvar("g_balance_vore_deadpredator") || !self.predator.modelindex) // if the predator is gibbed, we are out\r
        {\r
                Vore_Regurgitate(self);\r
                return;\r
        }\r
+\r
        if(self.predator.stomach_load > self.predator.stomach_maxload) // the predator got beyond his capacity after eating, so some prey must pop out\r
        {\r
                Vore_Regurgitate(self);\r