mirror of
git://git.savannah.nongnu.org/eliot.git
synced 2025-01-18 10:26:15 +01:00
New utility methods to retrieve the total number of penalty (or solo) points for a player
This commit is contained in:
parent
572d172640
commit
6ba32f4835
2 changed files with 44 additions and 0 deletions
|
@ -29,6 +29,7 @@
|
|||
#include "turn.h"
|
||||
#include "history.h"
|
||||
#include "encoding.h"
|
||||
#include "settings.h"
|
||||
|
||||
#include "debug.h"
|
||||
|
||||
|
@ -82,6 +83,7 @@ void Player::removeLastTurn()
|
|||
m_history.removeLastTurn();
|
||||
}
|
||||
|
||||
|
||||
unsigned Player::getWarningsNb() const
|
||||
{
|
||||
unsigned total = 0;
|
||||
|
@ -92,6 +94,39 @@ unsigned Player::getWarningsNb() const
|
|||
return total;
|
||||
}
|
||||
|
||||
|
||||
int Player::getPenaltyPoints() const
|
||||
{
|
||||
int total = 0;
|
||||
for (unsigned i = 0; i < m_history.getSize(); ++i)
|
||||
{
|
||||
total += m_history.getTurn(i).getPenaltyPoints();
|
||||
}
|
||||
|
||||
// Add penalties due to warnings
|
||||
unsigned warningsNb = getWarningsNb();
|
||||
int limit = Settings::Instance().getInt("arbitration.warnings-limit");
|
||||
if ((int)warningsNb > limit)
|
||||
{
|
||||
int penaltiesPoints =
|
||||
Settings::Instance().getInt("arbitration.default-penalty");
|
||||
total -= penaltiesPoints * (warningsNb - limit);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
|
||||
int Player::getSoloPoints() const
|
||||
{
|
||||
int total = 0;
|
||||
for (unsigned i = 0; i < m_history.getSize(); ++i)
|
||||
{
|
||||
total += m_history.getTurn(i).getSoloPoints();
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
|
||||
wstring Player::toString() const
|
||||
{
|
||||
wstring res = L"Player ";
|
||||
|
|
|
@ -82,6 +82,15 @@ public:
|
|||
/// Return the total number of warnings received
|
||||
unsigned getWarningsNb() const;
|
||||
|
||||
/**
|
||||
* Return the total number of penalties received
|
||||
* (including the penalties due to warnings)
|
||||
*/
|
||||
int getPenaltyPoints() const;
|
||||
|
||||
/// Return the total number of solo points received
|
||||
int getSoloPoints() const;
|
||||
|
||||
/**************************
|
||||
* Accessors for the score of the player
|
||||
**************************/
|
||||
|
|
Loading…
Reference in a new issue