Browse Source

add reveal (in progress)

Roman Dayneko 11 years ago
parent
commit
ed767d2cfa
1 changed files with 29 additions and 1 deletions
  1. 29 1
      apps/face/src/index.erl

+ 29 - 1
apps/face/src/index.erl

@@ -4,7 +4,7 @@
 -include_lib("n2o/include/wf.hrl").
 -include("../../server/include/requests.hrl").
 -include("../../server/include/settings.hrl").
--jsmacro([take/2,attach/1,join/1,discard/3,player_info/2]).
+-jsmacro([take/2,attach/1,join/1,discard/3,player_info/2,reveal/3]).
 
 join(Game) ->
     ws:send(bert:encodebuf(bert:tuple(
@@ -36,6 +36,20 @@ player_info(User,GameModule) ->
         bert:atom('client'),
         bert:tuple(bert:atom("get_player_stats"),bert:binary(User),bert:atom(GameModule))))).
 
+reveal(GameId, {CDiscarded, VDiscarded}, Hand) ->
+    wf:send(
+      bert:encodebuf(
+        bert:atom("client"),
+        ber:tuple(
+          bert:atom("game_action"),
+          GameId,
+          bert:atom("okey_reveal"),
+          [{discarded, bert:tuple(bert:atom("OkeyPieces"), CDiscarded, VDiscarded)},
+           {hand, [[case OkeyPiece of null -> bert:atom("null"); {C, V} -> bert:tuple(bert:atom("OkeyPiece"), C, V) end || OkeyPiece <- Hand]]}]
+         )
+       )
+     ).
+
 redraw_tiles([{Tile, _}| _ ] = TilesList) ->
     wf:update(discard_combo,
         [#dropdown{id = discard_combo, postback = combo,
@@ -71,6 +85,7 @@ body() ->
                      ]
                },
       #button{ id = discard, body = <<"Discard">>, postback = discard, source=[discard_combo]},
+      #button{ id = reveal, body = <<"Reveal">>, postback = reveal, source = [discard_combo]},
       #button{ id = player_info, body = <<"PlayerInfo">>, postback = player_info}
     ].
 
@@ -194,4 +209,17 @@ event({server,{game_event, _, okey_next_turn, Args}}) ->
 
     put(okey_turn_mark, LabelId);
 
+event(reveal) ->
+    TilesList = get(game_okey_tiles),
+    Discarded = wf:q(discard_combo),
+
+    case lists:keyfind(erlang:list_to_binary(Discarded), 1, TilesList) of
+        {_, {CDiscarded, VDiscarded} = Key} ->
+            Hand = [{erlang:integer_to_list(C), erlang:integer_to_list(V)} || {_, {C, V}} <- lists:keydelete(Key, 2, TilesList)],
+            wf:info("+++ ~p ~p", [CDiscarded, VDiscarded]),
+            wf:info(reveal("1000001", {erlang:integer_to_list(CDiscarded), erlang:integer_to_list(VDiscarded)}, [null | Hand]));
+        _ ->
+            wf:info("error discarded ~p", Discarded)
+    end;
+
 event(Event)  -> wf:info("Event: ~p", [Event]).