@@ -65,7 +65,6 @@ export function handleSocket(
6565 devcards : number ;
6666 } [ ] ;
6767 } ) => {
68- console . log ( "client INIT id" , id ) ;
6968 const materialsMap = new Map (
7069 materials . map ( ( [ index , { num, material } ] ) => {
7170 return [
@@ -104,15 +103,11 @@ export function handleSocket(
104103 } ) ;
105104
106105 const { onlines } = get ( ) ;
107- console . log ( "onlines.clear before" , onlines ) ;
108106 onlines . forEach ( ( _ , key ) => onlines . delete ( key ) ) ;
109- console . log ( "onlines.clear after" , onlines ) ;
110107
111108 for ( const xplayer of xplayers ) {
112109 const { devcards, id, materials, name } = xplayer ;
113110
114- console . log ( "client player INIT" , xplayer ) ;
115-
116111 onlines . set ( id , {
117112 devcards,
118113 color : id ,
@@ -190,7 +185,6 @@ export function handleSocket(
190185 materials : number ;
191186 devcards : number ;
192187 } ) => {
193- console . log ( "client player PLAYER_JOIN" , xplayer ) ;
194188 const { onlines } = get ( ) ;
195189 const { devcards, id, materials, name } = xplayer ;
196190
@@ -301,8 +295,6 @@ export function handleSocket(
301295 id : number ;
302296 players : { id : number ; vp : number ; vpdc : number } [ ] ;
303297 } ) => {
304- console . log ( "winner.client" ) ;
305-
306298 get ( ) . ui . events . emit ( "win" , id , players ) ;
307299 }
308300 ) ;
@@ -317,10 +309,78 @@ export function handleSocket(
317309 } ) ) ;
318310 } ) ;
319311
320- socket . on ( ClientCodes . TURN_SWITCH , ( turnId : number ) => {
321- set ( { turnId } ) ;
322- setTurnState ( get ( ) . turnId === get ( ) . local . color ? "ready" : "others" ) ;
323- } ) ;
312+ socket . on (
313+ ClientCodes . TURN_SWITCH ,
314+ ( { turnId, round } : { turnId : number ; round : number } ) => {
315+ console . log ( "client.turn turn=" , turnId , "round=" , round ) ;
316+ const myTurn = turnId === get ( ) . local . color ;
317+
318+ if ( round === 2 ) {
319+ set ( { firstRounds : false } ) ;
320+ }
321+
322+ if ( myTurn ) {
323+ switch ( round ) {
324+ case 0 :
325+ case 1 : {
326+ const { events } = get ( ) . ui ;
327+
328+ set ( ( old ) => ( {
329+ ui : { ...old . ui , mapState : "picking vertex" } ,
330+ } ) ) ;
331+
332+ // pick vertex
333+ events . once ( "picked vertex" , ( index ) => {
334+ socket ?. emit ( ServerCodes . BUY_SETTLEMENT , index ) ;
335+
336+ if ( round === 1 ) {
337+ set ( { secondSettlement : index } ) ;
338+ }
339+ set ( ( old ) => ( {
340+ ui : { ...old . ui , mapState : "ready" } ,
341+ } ) ) ;
342+
343+ setTimeout ( ( ) => {
344+ set ( ( old ) => ( {
345+ ui : { ...old . ui , mapState : "picking edge" } ,
346+ } ) ) ;
347+
348+ // pick edge
349+ events . once (
350+ "picked edge" ,
351+ ( from : number , to : number ) => {
352+ socket . emit ( ServerCodes . BUY_ROAD , [
353+ from ,
354+ to ,
355+ ] ) ;
356+
357+ set ( ( old ) => ( {
358+ ui : {
359+ ...old . ui ,
360+ mapState : "ready" ,
361+ } ,
362+ } ) ) ;
363+
364+ setTimeout ( ( ) => {
365+ set ( {
366+ secondSettlement : undefined ,
367+ } ) ;
368+
369+ socket . emit ( ServerCodes . STOP_TURN ) ;
370+ } , 50 ) ;
371+ }
372+ ) ;
373+ } , 50 ) ;
374+ } ) ;
375+ break ;
376+ }
377+ }
378+ }
379+
380+ set ( { turnId } ) ;
381+ setTurnState ( turnId === get ( ) . local . color ? "ready" : "others" ) ;
382+ }
383+ ) ;
324384
325385 socket . on (
326386 ClientCodes . PLAYER_UPDATE ,
0 commit comments