X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Fbriskin5.phh;h=d3066be39c8b6adc6efe1d408fa8360c89710594;hb=51d3c2f014e177b27027d1340f7e49a947f6f9b0;hp=51ff38a481c9c9566472203b569f43b4ac682e46;hpb=648e67ab39b09ae4a82fe2548a6c63154b61e901;p=brisk.git diff --git a/web/briskin5/Obj/briskin5.phh b/web/briskin5/Obj/briskin5.phh index 51ff38a..d3066be 100644 --- a/web/briskin5/Obj/briskin5.phh +++ b/web/briskin5/Obj/briskin5.phh @@ -32,7 +32,9 @@ define('BIN5_PROXY_PATH', PROXY_PATH."/bin5"); require_once('rules.phh'); -define('BIN5_TOURNAMENT_CURRENT', BIN5_TOURNAMENT_NO_DRAW); +// FIXME: JUST FOR DEVELOP +// define('BIN5_TOURNAMENT_CURRENT', BIN5_TOURNAMENT_NO_DRAW); +define('BIN5_TOURNAMENT_CURRENT', BIN5_TOURNAMENT_TOGETHER17); $mlang_bin5_bin5 = array( // br, hr, b, /b, win, fri @@ -130,7 +132,7 @@ function multoval($mult) function dom_select_rules() { - printf(""); + printf(""); } class Card { @@ -174,19 +176,19 @@ class Card { } // end class Card class Bin5_table extends Table { - var $card; // il mazzo di carte - var $mazzo; // chi e' di mazzo - var $gstart; - var $turn; + var $card; // il mazzo di carte + var $mazzo; // chi e' di mazzo + var $gstart; // first player of the current game + var $turn; // turn in the game (absolute, not modularized) - var $asta_pla; - var $asta_pla_n; - var $asta_card; - var $asta_pnt; + var $asta_pla; // array(); TRUE: in auction, FALSE: out of the auction + var $asta_pla_n; // number of players in auction + var $asta_card; // current card for auction + var $asta_pnt; // current point for auction var $mult; - var $points; // points array - var $points_n; // number of row of points + var $points; // points array + var $points_n; // number of row of points var $total; var $asta_win; // the caller idx position at table @@ -426,6 +428,7 @@ class Bin5_table extends Table { $user_cur->asta_card = -2; $user_cur->asta_pnt = -1; $user_cur->handpt = $this->hand_points($i); + $this->rules->tourn_points($user_cur, $i); } log_rd2("GEND 4"); } @@ -613,7 +616,6 @@ class Bin5_table extends Table { /* reload of the page with the new layout */ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$this->player[$i]]; - $user_cur->continue_set(BIN5_USER_CONTINUE_INIT); $user_cur->trans_step = $user_cur->step + 1; $user_cur->comm[$user_cur->step % COMM_N] = sprintf('gst.st_loc++; gst.st=%d; xstm.stop(); window.onunload = null ; window.onbeforeunload = null ; document.location.assign("index.php");|', $user_cur->step+1); @@ -641,7 +643,7 @@ class Bin5_table extends Table { } } - function rules_change(&$bri, $user, $rules_code_s) + function rules_change(&$bri, $user, $rules_id_s) { // // Rules: update version following loaded tcode @@ -650,39 +652,57 @@ class Bin5_table extends Table { $curtime = time(); do { - /* - verify if match_id and user are both valid to accept - the match_continue request - */ - $rules_id = (int)$match_code_s; + if ($this->match_id != -1) { + $msg = sprintf("Stai già giocando la partita con codice %d.", $this->match_id); + break; + } + + $rules_id = (int)$rules_id_s; // FIXME: from dynamic rules list if ($rules_id != 1 && $rules_id != 2 && $rules_id != 4) { $msg = "queste regole non esistono o non sono attive"; break; } - if ($this->match_id != -1) { - $msg = "Non si possono cambiare regole dopo che si è già ultimata una mano."; + if ($user->rules_get() == $rules_id) { + $msg = "hai già richiesto di usare queste regole"; break; } - // set the match_id for the current user - $user->rules_set($rules_id); + /* - the user is in the list, add the match_id to his profile + and check if he is the N'th to require continue - */ - // XXXXXXXXXXX - $tot_sel_rules = 0; + $rules_tot = 0; for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) { - if ($bri->user[$this->player[$i]]->rules_get() == BIN5_USER_RULES_INIT) { + $user_cur = &$bri->user[$this->player[$i]]; + + if ($user == $user_cur) { + $rules_tot += 1; continue; } - if ($bri->user[$this->player[$i]]->rules_get() != $rules_id) { + if ($user_cur->rules_get() == BIN5_USER_CONTINUE_INIT) + continue; + + if ($user_cur->rules_get() != $rules_id) break; - } - $tot_sel_rules++; + $rules_tot += 1; + } + if ($i < BIN5_PLAYERS_N) { + // FIXME_LANG + $msg = sprintf("L'utente %s voleva già usare le %s.", + xcape($user_cur->name), xcape(rules_id2descr($user_cur->rules_get()))); + break; } + + // set the match_id for the current user + $user->rules_set($rules_id); + $ret = TRUE; // not all players set the continue match than we exit - if ($i < BIN5_PLAYERS_N) { - $msg = sprintf("L'utente %s vorrebbe utilizzare le %s.", + if ($rules_tot < BIN5_PLAYERS_N) { + // FIXME_LANG + $msg = sprintf("L'utente %s vorrebbe usare le %s.", xcape($user->name), xcape(rules_id2descr($rules_id))); break; } @@ -690,50 +710,18 @@ class Bin5_table extends Table { /* - all users decide to continue the same match, update all infos and rearrange users to the right positions on the table - */ - /* reset users table order */ - for ($i = 0 ; $i < BIN5_PLAYERS_N - 1 ; $i++) { - if ($bri->user[$this->player[$i]]->code == $ucodes[$i]) { - continue; - } - for ($e = $i + 1 ; $e < BIN5_PLAYERS_N ; $e++) { - if ($bri->user[$this->player[$e]]->code == $ucodes[$i]) { - $swap = $this->player[$i]; - $this->player[$i] = $this->player[$e]; - $this->player[$e] = $swap; - $bri->user[$this->player[$i]]->table_pos = $i; - $bri->user[$this->player[$e]]->table_pos = $e; - } - } - } - for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) { - fprintf(STDERR, "USERZ: [%s]\n", $bri->user[$this->player[$i]]->name); - } - - // update database info to be aligned with current table (ttok and table_idx - if (($bdb = BriskDB::create()) != FALSE) { - if ($bdb->match_continue($match_id, $this, $user->table_orig) == FALSE) { - unset($bdb); - $msg = "aggiornamento dei dati della partita fallito"; - break; - } - unset($bdb); - } - /* update rules engine */ - $rules_name = rules_id2name($match_data['tcode']); + $rules_name = rules_id2name($rules_id); $this->rules = new $rules_name($this); - /* bunch and multiplier status set */ - $this->mazzo = $match_data['mazzo_next']; - $this->mult = $match_data['mult_next']; - $this->match_id = $match_id; - $this->game_init(&$bri->user); + // $this->game_init(&$bri->user); /* reload of the page with the new layout */ for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) { $user_cur = &$bri->user[$this->player[$i]]; - $user_cur->continue_set(BIN5_USER_CONTINUE_INIT); + $this->rules->tourn_points($user_cur, $i); + $user_cur->rules_set(BIN5_USER_CONTINUE_INIT); $user_cur->trans_step = $user_cur->step + 1; $user_cur->comm[$user_cur->step % COMM_N] = sprintf('gst.st_loc++; gst.st=%d; xstm.stop(); window.onunload = null ; window.onbeforeunload = null ; document.location.assign("index.php");|', $user_cur->step+1); $user_cur->step_inc(); @@ -758,8 +746,7 @@ class Bin5_table extends Table { $user_cur->comm[$user_cur->step % COMM_N] .= nickserv_msg($dt, $msg); $user_cur->step_inc(); } - } - + } // end function rules_change } // end class Bin5_table @@ -778,6 +765,9 @@ class Bin5_user extends User { var $continue; // Id of the match that the user would continue var $rules; // Id of rules required by user + + var $asta_tourn_pts; // array with tournment points for each suit + const BASE = "../"; function User() { @@ -1632,7 +1622,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again) if (!$is_again) $ret .= table_welcome($user); - if ($is_transition && !$is_again) { // appena seduti al tavolo, play della mucca + if ($is_transition && !$is_again) { // just sit, play cow $ret .= playsound("cow.mp3"); } @@ -1732,6 +1722,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again) $table->asta_card); } else { + // FIXME - RULES to be able to abandon table /* show auction */ if ($table_pos == ($table->gstart % BIN5_PLAYERS_N) && $table->asta_win == -1) @@ -1830,7 +1821,8 @@ function show_table_info(&$bri, &$table, $table_pos) // TAG: POINTS_MANAGEMENT $pnt_min = $table->points_n - MAX_POINTS < 0 ? 0 : $table->points_n - MAX_POINTS; - $noty = sprintf(''); + $noty = sprintf('

%s.

\n', xcape(ucfirst(rules_id2descr($table->rules->id_get())))); + $noty .= sprintf('
'); // Names. for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++)