Browse Source

correct revealing display after round

Maxim Sokhatsky 11 years ago
parent
commit
c1f9edb925

+ 29 - 10
apps/web/priv/static/app/js/bootloader.js

@@ -199,7 +199,7 @@ function initPauseOverlay() {
     var html = '<g xmlns="http://www.w3.org/2000/svg" id="overlay" style="display:none;">'+
         '<rect x="216" y="91" stroke-width="0" stroke="red" width="641" height="367" rx="6" fill="skyblue" opacity="0.8"></rect>'+
         '<g>'+
-        '<text fill="white" font-family="Exo 2" y="280" x="-116" text-anchor="middle" dx="641" font-size="30pt"> Someone paused the game</text></g>'+
+        '<text id="Overlay-Text" fill="white" font-family="Exo 2" y="280" x="-116" text-anchor="middle" dx="641" font-size="30pt"> Someone paused the game</text></g>'+
         '</g>';
     var page = document.getElementById("Kakaranet-12-maxim");
     var kakush = document.getElementById("Kakush");
@@ -210,19 +210,38 @@ function showRevealHand(o) {
 
     var player    = o.value[0][3][0].value[0][1].value,
         discard   = o.value[0][3][1].value[0][1].value,
-        deck = [];
+        deck      = o.value[0][3][2].value[0][1];
 
-    deck[0] = o.value[0][3][2].value[0][1][0],
-    deck[1] = o.value[0][3][2].value[0][1][1];
+    $.load("svg/Deck.svg", function(h) {
 
-    console.log(player);
-    console.log(discard);
-    console.log(deck);
+        $reveal_deck = $("#RevealDeck");
 
-    if (!document.getElementById("RevealDeck"))
-        $.load("svg/Deck.svg", function(h) { $overlay.append(svg(h)); });
+        if (null == $reveal_deck.$el) {
+            $overlay.append(svg(h));
+            $reveal_deck = $("#RevealDeck");
+            $("#RevealDeckRoot").on("click",function () {
+                $overlay.hide();
+                if (scope.ended) window.deck.fill([]);
+            });
+        }
+
+        $reveal_deck.each(function(card){ card.$el && card.$el.remove(); });
+
+        for (var i=0;i<2;i++)
+        for (var j=0;j<15;j++) {
+            var bin = deck[i][j];
+            if (null != bin.value[0][2]) {
+                var card = new scope.Card({
+                    color: scope.CARD_COLORS[bin.value[0][1]-1],
+                    value: bin.value[0][2] });
+                card.$el.attr('transform', 'translate(' + (5+j*42) + ' ' + (10+i*62) + ')');
+                $reveal_deck.append(card.$el[0]);
+            }
+        }
+
+    });
 
     $overlay.show();
-    $overlay.find("text").text(player + " revealed ");
+    $("#Overlay-Text").text(player + " revealed ");
 
 }

+ 10 - 12
apps/web/priv/static/app/js/okey/deck.js

@@ -168,18 +168,16 @@ function DeckScope(scope) {
                         card = new scope.Card({
                             color: scope.CARD_COLORS[tile[1]-1],
                             value: tile[2]
-                        })
-                        card.pos = {x:i, y:j}
-                        card.on('dragstart', this.select)
-                        card.on('dragmove', this.track)
-                        card.$el.doubletap(function(){ 
-                            scope.apiProvider.actionDiscard(card) 
-                        })                     
-                        this.cards[j][i] = card
-                        card.$el.attr('transform', 'translate(' + this.trfs[j][i].x + ' ' + this.trfs[j][i].y + ')')
-                        card.drag()
-                        this.$el.append(card.$el[0])
-                        return false
+                        });
+                        card.pos = {x:i, y:j};
+                        card.on('dragstart', this.select);
+                        card.on('dragmove', this.track);
+                        card.$el.doubletap(function() { scope.apiProvider.actionDiscard(card) });
+                        this.cards[j][i] = card;
+                        card.$el.attr('transform', 'translate(' + this.trfs[j][i].x + ' ' + this.trfs[j][i].y + ')');
+                        card.drag();
+                        this.$el.append(card.$el[0]);
+                        return false;
                     }
                 })
             }

+ 6 - 6
apps/web/priv/static/app/js/okey/okey.js

@@ -59,8 +59,8 @@ function PostLoad()
 
     });
 
-    var $gosterme = $("#Gosterme"),
-        ended = !0;
+    var $gosterme = $("#Gosterme");
+    scope.ended = !0;
 
     apiProvider.on("okey_game_started", initOkeyScene);
     apiProvider.on("okey_game_player_state", initOkeyScene);
@@ -80,7 +80,7 @@ function PostLoad()
     apiProvider.on("okey_game_info", function(x) {
         var e = {detail: x.detail.json, raw: x.detail.bert};
         scope.user = document.user;
-        $overlay.hide();
+        //$overlay.hide();
         if (!scope.started) {
             for (var playerInfo, players = e.detail.players, i = 0; i < players.length; i++) 
                 if (playerInfo = players[i].PlayerInfo, playerInfo[0] == scope.user)
@@ -212,7 +212,7 @@ function PostLoad()
     apiProvider.on("okey_revealed", function(x) {
         var e = {detail: x.detail.json, raw: x.detail.bert};
         showRevealHand(dec(e.raw));
-        ended = !0;//, deck.fill([]);
+        scope.ended = !0;//, deck.fill([]);
         for (var hand in playersLeftHandsMap) playersLeftHandsMap[hand].clear();
         for (var playerName in playersMap) playersMap[playerName].unselect();
         // $gosterme.remove();
@@ -260,7 +260,7 @@ function PostLoad()
     $("#Table-Oval").droppable({
         accept: function(target) {
             return 1 === apiProvider.socket.readyState && deck.length() > 14 && 
-                target.owner != centralCard && !ended && scope.Card.selected.length <= 1;
+                target.owner != centralCard && !scope.ended && scope.Card.selected.length <= 1;
         },
         drop: function(target) {
             apiProvider.reveal(target.owner, deck.hand(target.owner));
@@ -271,7 +271,7 @@ function PostLoad()
 function initOkeyScene(x)
 {
     var e = {detail: x.detail.json, raw: x.detail.bert};
-    if (ended = !1, 
+    if (scope.ended = !1, 
         scope.deck.fill(e.detail.tiles),
         scope.deck.render(),
         centralCard.dragHandler.disable(),

+ 1 - 1
apps/web/priv/static/app/js/selector.js

@@ -10,7 +10,7 @@ var scope = {
     CARD_COLORS: [ "#CE290F", "#3B5998", "#48AF5E", "#F8E81C" ],
     SKIN_NAMES: [ "Alina", "Gabrielo", "Mustafa" ],
     paused: false,
-    version: 1306201402
+    version: 1406201401
 };
 
 var $ = function(_undefind)