Code: Select all
/**
* Roll new dice and notify players that dice has been rolled
* @param bool $forbidDouble
*/
private function rollDice($forbidDouble = false)
{
self::incStat( 1, "turns_number");
// Roll dices
$dice1_value = bga_rand(1, 6);
$dice2_value = bga_rand(1, 6);
// if it is first turn, fordib double
if ($forbidDouble) {
$nbtry = 0;
while ($dice1_value == $dice2_value && $nbtry < 1000) {
$dice2_value = bga_rand(1, 6);
$nbtry++;
}
}
$dice3_value = 0;
$dice4_value = 0;
$additional_greatings_text = false;
if ($dice1_value == $dice2_value) {
$dice3_value = $dice1_value;
$dice4_value = $dice1_value;
$additional_greatings_text = true;
self::incStat(1, "double_number", self::getActivePlayerId());
}
self::incStat(1, "number_of_dice", self::getActivePlayerId());
// Notify all players about dice rolling
self::notifyAllPlayers(
"rollDiceDone",
clienttranslate( '${player_name} roll dice and get ${dice1_value} and ${dice2_value} ${newline} ${additional}' ),
array(
'i18n' => array( 'additional' ),
'player_name' => self::getActivePlayerName(),
'dice1_value' => $dice1_value,
'dice2_value' => $dice2_value,
'dice3_value' => $dice3_value,
'dice4_value' => $dice4_value,
'newline' => $additional_greatings_text ? '<br/>' : '',
'additional' => $additional_greatings_text ? clienttranslate("It's a double !") : '',
)
);
if ($dice1_value == $dice2_value) {
$sql_double = ",dice3 = $dice1_value, dice4= $dice1_value";
$sql_double_usable_init = ", dice3_usable=1, dice4_usable=1";
} else {
$sql_double = ',dice3=0, dice4=0';
$sql_double_usable_init = ", dice3_usable=0, dice4_usable=0";
}
// save dice roll in database
$sql = "UPDATE dice_result
SET dice1 = $dice1_value,
dice2 = $dice2_value
$sql_double ,
dice1_usable=1,
dice2_usable=1
$sql_double_usable_init
WHERE 1";
self::DbQuery( $sql );
self::reloadPlayersBasicInfos();
return array($dice1_value, $dice2_value);
}
Code: Select all
function stPlayerTurn()
{
self::incStat( 1, "turns_number");
self::notifyAllPlayers("selectPlayer", clienttranslate("Next player"), array());
// Roll dices
// if it is first turn, fordib double
if (self::getStat("turns_number") == 1) {
$forbidDouble = true;
} else {
$forbidDouble = false;
}
list($dice1, $dice2) = self::rollDice($forbidDouble);
...