@create Scrabule Clock @desc Scrabule Clock=Clock Commands :%r%tSCRABCLOCK , :%r%t%tTime for a turn is the sum of these. After , the clock will notify you. &cmd_scrabclock Scrabule Clock=$SCRABCLOCK *,*:&time1 me=%0; &time2 me=add(%1,%0); &overlaps1 me=0; &overlaps2 me=0; &warningtext0 me=<[name(me)]> %1 seconds remaining.; &snd_turnplayed1 me=^* scrabs * for * points.:@trigger me/ext_go\[hasflag(%%#,CONNECT)\]; &snd_turnplayed2 me=^* gives up * turn.:@trigger me/ext_go\[hasflag(%%#,CONNECT)\]; &snd_turnplayed3 me=^* swaps * tiles.:@trigger me/ext_go\[hasflag(%%#,CONNECT)\]; @trigger me/ext_go0; @emit [name(me)] is ticking, warning after %0 seconds, timeout after additional %1 seconds. &timeouttext0 Scrabule Clock=<[name(me)]> Out of time. &snd_gameover Scrabule Clock=^* loses * points (*), making * final score *.:&snd_turnplayed1 me=;&snd_turnplayed2 me=;&snd_turnplayed3 me=;&warningtext0 me=;&timeouttext0 me= &ext_go0 Scrabule Clock=&overlaps1 me=add(u(overlaps1),1); &overlaps2 me=add(u(overlaps2),1); @wait u(time1)={&overlaps1 me=sub(u(overlaps1),1); @emit u(warningtext[u(overlaps1)])}; @wait u(time2)={&overlaps2 me=sub(u(overlaps2),1); @emit u(timeouttext[u(overlaps2)])} @set scrabule clock=MONITOR