]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/domination.qc
Merge branch 'master' into terencehill/newpanelhud-dom_points
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / domination.qc
index 578a440990d25045755d6a4afe23fa723b9f5cd0..17e2e5fe0bbaabfefd1f8dd4790129b5778a035e 100644 (file)
@@ -97,7 +97,10 @@ void dompoint_captured ()
                wait_time = self.wait;
 
        bprint("^3", head.netname, "^3", self.message);
-       bprint(" ^7(", ftos(points), " points every ", ftos(wait_time), " seconds)\n");
+       if (points != 1)
+               bprint(" ^7(", ftos(points), " points every ", ftos(wait_time), " seconds)\n");
+       else
+               bprint(" ^7(", ftos(points), " point every ", ftos(wait_time), " seconds)\n");
 
        if(self.enemy.playerid == self.enemy_playerid)
                PlayerScore_Add(self.enemy, SP_DOM_TAKES, 1);
@@ -129,35 +132,45 @@ void dompoint_captured ()
 
        switch(self.team)
        {
+               // "fix" pps when slightly under 0 because of approximation errors
                case COLOR_TEAM1:
                        pps_red -= (points/wait_time);
+                       if (pps_red < 0) pps_red = 0;
                        break;
                case COLOR_TEAM2:
                        pps_blue -= (points/wait_time);
+                       if (pps_blue < 0) pps_blue = 0;
                        break;
                case COLOR_TEAM3:
                        pps_yellow -= (points/wait_time);
+                       if (pps_yellow < 0) pps_yellow = 0;
                        break;
                case COLOR_TEAM4:
                        pps_pink -= (points/wait_time);
+                       if (pps_pink < 0) pps_pink = 0;
        }
 
        switch(self.goalentity.team)
        {
+               // "fix" pps when slightly over total_pps because of approximation errors
                case COLOR_TEAM1:
                        pps_red += (points/wait_time);
+                       if (pps_red > total_pps) pps_red = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-red", "", "");
                        break;
                case COLOR_TEAM2:
                        pps_blue += (points/wait_time);
+                       if (pps_blue > total_pps) pps_blue = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-blue", "", "");
                        break;
                case COLOR_TEAM3:
                        pps_yellow += (points/wait_time);
+                       if (pps_yellow > total_pps) pps_yellow = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-yellow", "", "");
                        break;
                case COLOR_TEAM4:
                        pps_pink += (points/wait_time);
+                       if (pps_pink > total_pps) pps_pink = total_pps;
                        WaypointSprite_UpdateSprites(self.sprite, "dom-pink", "", "");
        }