Просмотр исходного кода

Merge branch 'master' of github.com:kakaranet/games

Maxim Sokhatsky 11 лет назад
Родитель
Сommit
f083a5c40d
1 измененных файлов с 33 добавлено и 2 удалено
  1. 33 2
      apps/face/src/index.erl

+ 33 - 2
apps/face/src/index.erl

@@ -6,7 +6,7 @@
 -include("../../server/include/settings.hrl").
 -include_lib("avz/include/avz.hrl").
 -include_lib("kvs/include/user.hrl").
--jsmacro([take/2,attach/1,join/1,discard/3,player_info/2,reveal/4,piece/2,logout/0]).
+-jsmacro([take/2,attach/1,join/1,discard/3,player_info/2,reveal/4,piece/2,logout/0,pause/3]).
 
 user() -> case wf:user() of undefined -> #user{id="maxim"}; U->U end.
 
@@ -58,6 +58,21 @@ reveal(GameId, Color, Value, Hand) ->
             [{discarded, bert:tuple(bert:atom("OkeyPiece"), Color, Value)},
              {hand, Hand}])))).
 
+pause(GameId, Action, Who) ->
+    ws:send(
+      bert:encodebuf(
+        bert:tuple(
+          bert:atom("client"),
+          bert:tuple(
+            bert:atom("pause_game"),
+            bert:atom("undefined"),
+            GameId,
+            bert:binary(Action)
+           )
+         )
+       )
+     ).
+
 redraw_tiles([{Tile, _}| _ ] = TilesList) ->
     wf:update(discard_combo,
         [#dropdown{id = discard_combo, postback = combo,
@@ -96,6 +111,7 @@ body() ->
                },
       #button{ id = discard, body = <<"Discard">>, postback = discard, source=[discard_combo]},
       #button{ id = reveal, body = <<"Reveal">>, postback = reveal, source = [discard_combo]},
+      #button{ id = pause, body = <<"Pause">>, postback = pause},
       #button{ id = player_info, body = <<"PlayerInfo">>, postback = player_info}
     ].
 
@@ -142,6 +158,7 @@ event({server, {game_event, _, okey_game_started, Args}}) ->
                  erlang:integer_to_list(V)]), {C, V}} || {_, C, V} <- Tiles],
     wf:info("tiles ~p", [TilesList]),
     put(game_okey_tiles, TilesList),
+    put(game_okey_pause, resume),
     redraw_tiles(TilesList);
 
 event({server, {game_event, _, okey_tile_discarded, Args}}) ->
@@ -246,6 +263,20 @@ event(login_button) -> wf:wire(logout());
 event({register,User}) -> wf:info("Register: ~p",[User]), kvs:add(User), wf:user(User);
 event({login,User}) -> wf:info("Login: ~p",[User]), wf:user(User);
 
-event(Event) -> wf:info("Event: ~p", [Event]).
+event(pause) ->
+    Action  =
+        case get(game_okey_pause) of 
+            resume -> 
+                put(game_okey_pause, pause),
+                wf:update(pause, [#button{id = pause, body = "Resume", postback = pause}]),
+                "pause";
+            pause ->
+                put(game_okey_pause, resume),
+                wf:update(pause, [#button{id = pause, body = <<"Pause">>, postback = pause}]),
+                "resume"
+        end,
+    wf:wire(pause("1000001", wf:f("~p", [Action]), wf:f("~p", [wf:to_list(get(okey_im))])));
+
+event(Event)  -> wf:info("Event: ~p", [Event]).
 
 api_event(X,Y,Z) -> avz:api_event(X,Y,Z).