Browse Source

signed scoring

Maxim Sokhatsky 11 years ago
parent
commit
2579d2d5a0

+ 1 - 1
apps/server/src/game.erl

@@ -518,7 +518,7 @@ get_player_info(_,User) ->
         games=Games,
         reveals=Reveals#reveal_log.stats,
         protocol=Protocol#protocol_log.stats,
-        score=Reveals#reveal_log.score}.
+        score=case Reveals#reveal_log.score of undefined -> <<"0">>; E -> integer_to_binary(E) end}.
 
 plist_setkey(Name,Pos,List,New) ->
     case lists:keyfind(Name,Pos,List) of

+ 2 - 2
apps/web/priv/static/app/js/bootloader.js

@@ -9,14 +9,14 @@ var color = ['#DE3F26','#606060','#48AF5E','#FFC800'];
 function parseUInt(x) { return x < 0 ?
     (x > -128 ? x & 255 >>> 0 : (x > -32768 ? x & 65535 >>> 0 : x >>> 0)) : x; }
 
-function statsRow(start_x,start_y,i,games,iter) {
+function statsRow(start_x,start_y,i,games,iter,check) {
     var name = template_engine(
         '<tspan xmlns="http://www.w3.org/2000/svg" x="{this.x}" y="{this.y}">{this.body}</tspan>',{
             x: start_x,
             y: start_y+25*iter,
             body: i18n(games[i].value[0][0].value) + " — " + parseUInt(games[i].value[0][1])});
     var element1 = svg(name);
-    if (locale.tr[games[i].value[0][0].value]) {
+    if (locale.tr[games[i].value[0][0].value] || !check) {
         document.getElementById('Stat-Right').appendChild(element1); 
         return iter+1; } else return iter;
 }

+ 9 - 8
apps/web/priv/static/app/js/roster.js

@@ -18,11 +18,11 @@ function RosterHandlers(scope) {
         var id      = dec(e.raw).value[0][1].value;
             name    = dec(e.raw).value[0][2].value;
             surname = dec(e.raw).value[0][3].value;
-            score   = dec(e.raw).value[0][4];
+            score   = dec(e.raw).value[0][4].value;
         if (null != document.getElementById(id.entag())) removeOnlineUser(id);
         addOnlineUser(id,name+" "+surname,score,"insertTop");
         if ( name == document.names)
-            $("#Quota")[0].lastElementChild.textContent = i18n("Score") + ": " + parseUInt(score);
+            $("#Quota")[0].lastElementChild.textContent = i18n("Score") + ": " + score;
         if (currentChat == null) showOnlineList();
     });
 
@@ -31,7 +31,7 @@ function RosterHandlers(scope) {
         var id      = dec(e.raw).value[0][1].value;
             name    = dec(e.raw).value[0][2].value;
             surname = dec(e.raw).value[0][3].value;
-            score   = dec(e.raw).value[0][4];
+            score   = dec(e.raw).value[0][4].value;
         if (null != document.getElementById(id.entag())) removeOnlineUser(id);
         addOnlineUser(id,name+" "+surname,score,"appendChild");
     });
@@ -41,7 +41,7 @@ function RosterHandlers(scope) {
         var id      = dec(e.raw).value[0][1].value;
             name    = dec(e.raw).value[0][2].value;
             surname = dec(e.raw).value[0][3].value;
-            score   = dec(e.raw).value[0][4];
+            score   = dec(e.raw).value[0][4].value;
         addOnlineUser(id,name+" "+surname,score,"appendChild");
     });
 
@@ -90,12 +90,13 @@ function RosterHandlers(scope) {
         var games    = dec(e.raw).value[0][2],
             reveals  = dec(e.raw).value[0][3],
             protocol = dec(e.raw).value[0][4];
-            score    = dec(e.raw).value[0][5];
+            score    = dec(e.raw).value[0][5].value;
         removeChilds(document.getElementById('Stat-Left'));
         removeChilds(document.getElementById('Stat-Right'));
+        
      // for (var i=0,iter=0;i<games.length;   i++,iter=statsRow(4,  160,i,games,iter));
-        for (var i=0,iter=0;i<protocol.length;iter=statsRow(4,  160,i,protocol,iter),i++);
-//        for (var i=0,iter=0;i<reveals.length; i++,iter=statsRow(320,160,i,reveals,iter));
+        for (var i=0,iter=0;i<protocol.length;iter=statsRow(4,  160,i,protocol,iter,true),i++);
+        for (var i=0,iter=0;i<reveals.length;iter=statsRow(340,160,i,reveals,iter,false),i++);
         translateScene();
         $("#Score").text(i18n("Score") + ": " + score).attr({y: 40});
       });
@@ -110,7 +111,7 @@ function RosterHandlers(scope) {
                 id       = item.value[0][0].value,
                 names    = item.value[0][1].value,
                 surnames = item.value[0][2].value,
-                score    = item.value[0][3];
+                score    = item.value[0][3].value;
             addOnlineUser(id,names+" "+surnames,score,'appendChild');
         }
     });

+ 27 - 7
apps/web/src/okey.erl

@@ -87,7 +87,7 @@ patch_users() ->
 send_roster(Pid) ->
 %    X = [ send_roster_item(User) || User=#user{tokens=Tokens} <- kvs:all(user), Tokens /= [], Tokens /= undefined],
     X = [ begin
-       {User#user.id,User#user.names,User#user.surnames,score(User)}
+       {User#user.id,User#user.names,User#user.surnames,integer_to_binary(score(User))}
        end || User=#user{tokens=Tokens} <- kvs:all(user), Tokens /= [], Tokens /= undefined, proplists:get_value(score,Tokens,0) /= 0],
     XS = lists:sort(fun({_,_,_,S1},{_,_,_,S2}) -> S1 > S2 end,X),
     Lists = [lists:sublist(XS,100)], %split(170,XS,[]),
@@ -157,7 +157,6 @@ event(attach) ->
     end),
     ok;
 
-
 event({client,{message,From,Name,To,Message}}) ->
     wf:info(?MODULE,"Online Chat Message from ~p(~p) to ~p:~n ~p~n",[From,Name,To,Message]),
     wf:send(To,{server,{chat_message,{From,Name},To,wf:to_binary(Message)}}),
@@ -181,11 +180,32 @@ event({server,{update_score,Score}}) ->
     wf:send(broadcast,{user_online,NewUser}),
     ok;
 event({counter,Res}) -> Pid = self(), spawn(fun() -> Pid ! {server,{online_number,length(game:online())}} end);
-event({user_online,User}) -> wf:info(?MODULE,"User ~p goes Online",[User#user.id]), self() ! {server,{online,User#user.id,User#user.names,User#user.surnames,score(User)}};
-event({user_offline,User}) -> self() ! {server,{offline,User#user.id,User#user.names,User#user.surnames,score(User)}};
-
-event({register,User}) -> wf:info(?MODULE,"Register: ~p",[User]), wf:send(broadcast,{user_offline,user()}), new_facebook_user(User), wf:wire("window.location='https://kakaranet.com'");
-event({login,User}) -> wf:info(?MODULE,"Login: ~p",[User]), wf:send(broadcast,{user_offline,user()}), send_auth_cookies(User), wf:wire("window.location='https://kakaranet.com'");
+event({user_online,User}) ->
+    wf:info(?MODULE,"User ~p goes Online",[User#user.id]),
+    Id = User#user.id,
+    Names = User#user.names,
+    Surnames = User#user.surnames,
+    Score = score(User),
+    self() ! {server,{online,Id,Names,Surnames,integer_to_binary(Score)}};
+
+event({user_offline,User}) ->
+    Id = User#user.id,
+    Names = User#user.names,
+    Surnames = User#user.surnames,
+    Score = score(User),
+    self() ! {server,{online,Id,Names,Surnames,integer_to_binary(Score)}};
+
+event({register,User}) ->
+    wf:info(?MODULE,"Register: ~p",[User]),
+    wf:send(broadcast,{user_offline,user()}),
+    new_facebook_user(User),
+    wf:wire("window.location='https://kakaranet.com'");
+
+event({login,User}) ->
+    wf:info(?MODULE,"Login: ~p",[User]),
+    wf:send(broadcast,{user_offline,user()}),
+    send_auth_cookies(User),
+    wf:wire("window.location='https://kakaranet.com'");
 
 event(_Event) -> wf:info(?MODULE,"Unknown Event: ~p", [_Event]).