X-Git-Url: https://mop.ddnsfree.com/gitweb/?p=brisk.git;a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Frules_together17.phh;h=c5221ef1747b492ae6c59ba596f211f8d44cf08c;hp=05708687ad8504dace26b2faf446dbcb41cbc91e;hb=6a939415c569cb6b078b3dab42be2d35c7238d4f;hpb=4e85feb5b8e779a853365d0440b7ddac24eae60d diff --git a/web/briskin5/Obj/rules_together17.phh b/web/briskin5/Obj/rules_together17.phh index 0570868..c5221ef 100644 --- a/web/briskin5/Obj/rules_together17.phh +++ b/web/briskin5/Obj/rules_together17.phh @@ -38,21 +38,18 @@ class Rules_together17 extends Rules_no_draw { unset($user->asta_tourn_pts); $user->asta_tourn_pts = array(0, 0, 0, 0); $tourn_values = array(11, 10, 4,3,2, 1,1,1,1,1); - - error_log("QUI CI SIAMO: PRE"); + for ($i = 0 ; $i < BIN5_PLAYERS_N * BIN5_CARD_HAND ; $i++) { - error_log("QUI CI SIAMO: LOOP"); - + if ($card[$i]->owner == $user_pos) { - error_log("QUI CI SIAMO: ASSIGN"); - $user->asta_tourn_pts[(int)($i / 10)] += $tourn_values[$i % 10]; + $user->asta_tourn_pts[(int)($i / 10)] += $tourn_values[$i % 10]; } } } function tourn_points_max($user) { - + $mx = 0; for ($i = 0 ; $i < 4 ; $i++) { error_log("tourn_pts_max "); @@ -79,30 +76,61 @@ Per chiamate da 101 a 120 bisognerà avere 28 punti ( esempi.:asso, tre, re e ca oppure asso, tre, cavallo, 7, 6, 5 e 4 ). */ - if ($a_card >= 0 && $a_card < 9 && $a_card > $this->table->asta_card) - return TRUE; - else if ($a_card == 9 && - $a_pnt > ($this->table->asta_pnt >= 61 ? $this->table->asta_pnt : 60) && $a_pnt <= 120) { - if ($a_pnt < 71) - $min_pts = 13; - else if ($a_pnt < 80) - $min_pts = 19; - else if ($a_pnt < 90) - $min_pts = 23; - else if ($a_pnt < 100) - $min_pts = 25; - else - $min_pts = 28; - - $max_hand_pts = $this->tourn_points_max($user); - if ($max_hand_pts < $min_pts) { - $ret_s = sprintf("Hai chiamato un due a %d ma in mano hai al massimo %d punti-torneo, non puoi.", - $a_pnt, $max_hand_pts); - return FALSE; - } + $index_cur = $this->table->gstart % BIN5_PLAYERS_N; + + // Abbandono dell'asta + if ($a_card <= -1) { + log_wr("Abbandona l'asta."); + $this->table->asta_pla[$index_cur] = FALSE; + $user->asta_card = -1; + $this->table->asta_pla_n--; return TRUE; } + else if ($a_card <= 9) { + $ret_s = ""; + + do { + if ($a_card >= 0 && $a_card < 9 && $a_card > $this->table->asta_card) { + return TRUE; + } + else if ($a_card == 9 && + $a_pnt > ($this->table->asta_pnt >= 61 ? $this->table->asta_pnt : 60) + && $a_pnt <= 120) { + if ($a_pnt < 71) + $min_pts = 13; + else if ($a_pnt < 80) + $min_pts = 19; + else if ($a_pnt < 90) + $min_pts = 23; + else if ($a_pnt < 100) + $min_pts = 25; + else + $min_pts = 28; + + $max_hand_pts = $this->tourn_points_max($user); + if ($max_hand_pts < $min_pts) { + // FIXME_LANG + $ret_s = sprintf("Hai chiamato un due a %d ma in mano hai al massimo %d punti-torneo, non puoi.", + $a_pnt, $max_hand_pts); + break; + } + } + else { + break; + } + + $user->asta_card = $a_card; + $this->table->asta_card = $a_card; + if ($a_card == 9) { + $user->asta_pnt = $a_pnt; + $this->table->asta_pnt = $a_pnt; + } + + return TRUE; + } while (0); + } + return FALSE; }