package Ġticket To R ide čĊč Ċ import Ġticket To R ide . Response .* č Ċ import Ġticket To R ide . Player Action .* čĊč Ċ fun ĠPlayer Action . chat Message ( locale : ĠLocale ) Ġ= Ġwith ( str ( locale )) Ġ{ čĊĠĠĠ Ġwhen Ġ( this @ chat Message ) Ġ{ čĊĠĠĠĠĠĠĠ Ġis ĠJoin Game Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( player Name , Ġhello ) čĊĠĠĠĠĠĠĠ Ġis ĠLeave Game Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( player Name , Ġdisconnected ) čĊĠĠĠĠĠĠĠ Ġis ĠConfirm Tickets Choice Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( player Name , Ġconfirm Tickets Choice ( tickets To Keep )) čĊĠĠĠĠĠĠĠ Ġis ĠPick Cards . Lo co Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( player Name , Ġpick Lo co Card ) čĊĠĠĠĠĠĠĠ Ġis ĠPick Cards . Two Cards Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Name , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cards . first Ġis ĠPick ed Card . Closed Ġ&& Ġcards . second Ġis ĠPick ed Card . Closed ) Ġpick Two Face Down Cards čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġpick Cards ( cards . first . getName ( locale ) Ġto Ġcards . second . getName ( locale )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġis ĠPick Tickets Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( player Name , Ġpick Tickets ) čĊĠĠĠĠĠĠĠ Ġis ĠBuild Segment Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcard sBy Count Ġ= Ġcards . grouping By Ġ{ Ġit Ġ}. each Count (). toList () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString Ġ{ Ġ( card , Ġcount ) Ġ-> Ġ"$ count Ġ${ card . getName ( locale )}" Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Message ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Name , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Segment ( Triple ( segment . from . value , Ġsegment . to . value , Ġcard sBy Count )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġis ĠBuild Station Ġ-> ĠChat Message ( player Name , Ġbuild Station ( target . value )) čĊĠĠĠ Ġ} č Ċ } čĊč Ċ fun ĠPick ed Card . getName ( locale : ĠLocale ) Ġ= Ġwhen Ġ( this ) Ġ{ čĊĠĠĠ Ġis ĠPick ed Card . Closed Ġ-> Ġstr ( locale ). closed Card čĊĠĠĠ Ġis ĠPick ed Card . Open Ġ-> Ġcard . getName ( locale ) č Ċ } čĊč Ċ fun Ġget Segment Color Name ( segment Color : ĠCard Color ?, Ġlocale : ĠLocale ) Ġ= čĊĠĠĠ Ġstr ( locale ). segment Color ( segment Color ) čĊč Ċ fun ĠCard . getName ( locale : ĠLocale ) Ġ= Ġwhen Ġ( this ) Ġ{ čĊĠĠĠ Ġis ĠCard . Lo co Ġ-> Ġstr ( locale ). lo co čĊĠĠĠ Ġis ĠCard . Car Ġ-> Ġstr ( locale ). card Color ( color ) č Ċ } čĊč Ċ private Ġclass ĠStrings ( getLocale : Ġ() Ġ-> ĠLocale ) Ġ: ĠLocal ized Strings ( getLocale ) Ġ{ čĊčĊĠĠĠ Ġval Ġclosed Card Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" face Ġdown ", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð· Ð°Ðº ÑĢÑĭ ÑĤ Ð°Ñı " čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġlo co Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" locomotive ", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð¿ Ð°ÑĢ Ð¾Ð² Ð¾Ð· " čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġcard Color Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ{ Ġcolor : ĠCard Color Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( color ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . RED Ġ-> Ġ" red " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . GREEN Ġ-> Ġ" green " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . BLUE Ġ-> Ġ" blue " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . BLACK Ġ-> Ġ" black " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . WHITE Ġ-> Ġ" white " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . YELLOW Ġ-> Ġ" yellow " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . OR ANGE Ġ-> Ġ" orange " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . MA GEN TO Ġ-> Ġ" m agento " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ{ Ġcolor : ĠCard Color Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( color ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . RED Ġ-> Ġ" Ðº ÑĢ Ð°Ñģ Ð½Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . GREEN Ġ-> Ġ" Ð· ÐµÐ» ÐµÐ½ Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . BLUE Ġ-> Ġ" Ñģ Ð¸Ð½ Ñı Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . BLACK Ġ-> Ġ" Ñĩ ÐµÑĢ Ð½Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . WHITE Ġ-> Ġ" Ð± ÐµÐ» Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . YELLOW Ġ-> Ġ" Ð¶ ÐµÐ» ÑĤ Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . OR ANGE Ġ-> Ġ" Ð¾ÑĢ Ð°Ð½ Ð¶ ÐµÐ² Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . MA GEN TO Ġ-> Ġ" ÑĦ Ð¸ Ð¾Ð» ÐµÑĤ Ð¾Ð² Ð°Ñı " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġsegment Color Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ{ Ġcolor : ĠCard Color ? Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor ?. let Ġ{ Ġcard Color ( it ) Ġ} Ġ?: Ġ" grey " čĊĠĠĠĠĠĠĠ Ġ}, čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ{ Ġcolor : ĠCard Color ? Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( color ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . RED Ġ-> Ġ" Ðº ÑĢ Ð°Ñģ Ð½ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . GREEN Ġ-> Ġ" Ð· ÐµÐ» ÐµÐ½ ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . BLUE Ġ-> Ġ" Ñģ Ð¸Ð½ Ð¸Ð¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . BLACK Ġ-> Ġ" Ñĩ ÐµÑĢ Ð½ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . WHITE Ġ-> Ġ" Ð± ÐµÐ» ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . YELLOW Ġ-> Ġ" Ð¶ ÐµÐ» ÑĤ ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . OR ANGE Ġ-> Ġ" Ð¾ÑĢ Ð°Ð½ Ð¶ ÐµÐ² ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCard Color . MA GEN TO Ġ-> Ġ" ÑĦ Ð¸ Ð¾Ð» ÐµÑĤ Ð¾Ð² ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ" Ñģ ÐµÑĢ ÑĭÐ¹ " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġhello Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" hello Ġ: )", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð² Ñģ ÐµÐ¼ ĠÐ¿ÑĢ Ð¸Ð² ÐµÑĤ Ġ: )" čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġdisconnected Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" disconnected ", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð¾ÑĤ ÐºÐ»ÑİÑĩ Ð¸Ð» ÑģÑı " čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġconfirm Tickets Choice Ġby Ġloc With Param < Int >( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ{ Ġn Ġ-> Ġ" I Ġkeep Ġ$ n Ġtickets " Ġ}, čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ{ Ġn Ġ-> Ġ" Ð¾ÑģÑĤÐ°Ð² Ð»Ñı Ñİ Ġ$ n ĠÐ¼ Ð°ÑĢ ÑĪ ÑĢÑĥ ÑĤ Ð¾Ð² " Ġ} čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġpick Lo co Card Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" I Ġpick Ġlo co Ġcard ", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð± ÐµÑĢ Ñĥ ĠÐ¿ Ð°ÑĢ Ð¾Ð² Ð¾Ð· " čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġpick Cards Ġby Ġloc With Param < Pair < String , ĠString >>( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ{ Ġ( first , Ġsecond ) Ġ-> Ġ" I Ġpick Ġ$ first Ġand Ġ$ second Ġcards " Ġ}, čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ{ Ġ( first , Ġsecond ) Ġ-> Ġ" Ð± ÐµÑĢ Ñĥ ĠÐº Ð°ÑĢ ÑĤ Ñĭ Ġ- Ġ$ first ĠÐ¸ Ġ$ second " Ġ} čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġpick Two Face Down Cards Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" I Ġpick Ġtwo Ġface Ġdown Ġcards ", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð± ÐµÑĢ Ñĥ ĠÐ´Ð² Ðµ ĠÐ·Ð°Ðº ÑĢÑĭ ÑĤ ÑĭÐµ ĠÐº Ð°ÑĢ ÑĤ Ñĭ " čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġpick Tickets Ġby Ġloc ( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ" I Ġpick Ġmore Ġtickets ", čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ" Ð± ÐµÑĢ Ñĥ ĠÐµ Ñī Ðµ ĠÐ¼ Ð°ÑĢ ÑĪ ÑĢÑĥ ÑĤ Ñĭ " čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġbuild Segment Ġby Ġloc With Param < Triple < String , ĠString , ĠString >>( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ{ Ġ( from , Ġto , Ġcards ) Ġ-> Ġ" I Ġbuild Ġ$ from Ġ- Ġ$ to Ġsegment Ġby Ġusing Ġ$ cards Ġcards " Ġ}, čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ{ Ġ( from , Ġto , Ġcards ) Ġ-> Ġ" ÑģÑĤ ÑĢÐ¾ Ñİ ĠÑĥ Ñĩ Ð°ÑģÑĤ Ð¾Ðº Ġ$ from Ġ- Ġ$ to ĠÐ¸ ĠÑģ Ð± ÑĢ Ð°Ñģ ÑĭÐ² Ð°Ñİ ĠÐº Ð°ÑĢ ÑĤ Ñĭ : Ġ$ cards " Ġ} čĊĠĠĠ Ġ) čĊčĊĠĠĠ Ġval Ġbuild Station Ġby Ġloc With Param < String >( čĊĠĠĠĠĠĠĠ ĠLocale . En Ġto Ġ{ Ġcity Ġ-> Ġ" I Ġput Ġa Ġstation Ġto Ġ$ city " Ġ}, čĊĠĠĠĠĠĠĠ ĠLocale . Ru Ġto Ġ{ Ġcity Ġ-> Ġ" ÑģÑĤÐ°Ð² Ð»Ñİ ĠÑģÑĤ Ð°Ð½ ÑĨÐ¸ Ñİ ĠÐ² Ġ$ city " Ġ} čĊĠĠĠ Ġ) č Ċ } čĊč Ċ private Ġval Ġstr Ġ= Ġmap Of ( čĊĠĠĠ ĠLocale . En Ġto ĠStrings Ġ{ ĠLocale . En Ġ}, čĊĠĠĠ ĠLocale . Ru Ġto ĠStrings Ġ{ ĠLocale . Ru Ġ} č Ċ ) čĊč Ċ private Ġfun Ġstr ( locale : ĠLocale ) Ġ= Ġstr [ locale ] Ġ?: Ġthrow ĠError (" Locale Ġ$ locale Ġnot Ġsupported ")