From db161a75702bb21f9bd6602dfac920444591bcfb Mon Sep 17 00:00:00 2001 From: actioninja Date: Mon, 2 Dec 2019 00:22:36 -0800 Subject: [PATCH] Roulette Machine initial work more work more roulette work more work more yet more FINALLY small fixes use global colors for last spun box no low memory mode cleanup nuke old roulette assets kills remaining 2 usages forgot this var --- code/game/machinery/roulette_machine.dm | 74 +++- code/modules/client/asset_cache.dm | 16 - icons/UI_Icons/Roulette/0.png | Bin 2767 -> 0 bytes icons/UI_Icons/Roulette/1-18.png | Bin 3598 -> 0 bytes icons/UI_Icons/Roulette/19-36.png | Bin 4375 -> 0 bytes icons/UI_Icons/Roulette/black.png | Bin 4791 -> 0 bytes icons/UI_Icons/Roulette/even.png | Bin 4355 -> 0 bytes icons/UI_Icons/Roulette/nano.png | Bin 5219 -> 0 bytes icons/UI_Icons/Roulette/odd.png | Bin 3884 -> 0 bytes icons/UI_Icons/Roulette/red.png | Bin 6119 -> 0 bytes .../packages/tgui/interfaces/Roulette.js | 401 ++++++++++++++++++ tgui-next/packages/tgui/routes.js | 6 + .../tgui/styles/components/Roulette.scss | 99 +++++ tgui-next/packages/tgui/styles/main.scss | 1 + .../tgui/styles/themes/cardtable.scss | 46 ++ tgui-next/packages/tgui/webpack.config.js | 3 +- 16 files changed, 610 insertions(+), 36 deletions(-) delete mode 100644 icons/UI_Icons/Roulette/0.png delete mode 100644 icons/UI_Icons/Roulette/1-18.png delete mode 100644 icons/UI_Icons/Roulette/19-36.png delete mode 100644 icons/UI_Icons/Roulette/black.png delete mode 100644 icons/UI_Icons/Roulette/even.png delete mode 100644 icons/UI_Icons/Roulette/nano.png delete mode 100644 icons/UI_Icons/Roulette/odd.png delete mode 100644 icons/UI_Icons/Roulette/red.png create mode 100644 tgui-next/packages/tgui/interfaces/Roulette.js create mode 100644 tgui-next/packages/tgui/styles/components/Roulette.scss create mode 100644 tgui-next/packages/tgui/styles/themes/cardtable.scss diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index 2372fa4b35c..b5d089b44eb 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -1,10 +1,17 @@ -#define ROULETTE_SINGLES_PAYOUT 35 +#define ROULETTE_SINGLES_PAYOUT 36 #define ROULETTE_SIMPLE_PAYOUT 2 +#define ROULETTE_DOZ_COL_PAYOUT 3 #define ROULETTE_BET_ODD "odd" #define ROULETTE_BET_EVEN "even" #define ROULETTE_BET_1TO18 "s1-18" //adds s to prevent text2num from working #define ROULETTE_BET_19TO36 "s19-36" //adds s to prevent text2num from working +#define ROULETTE_BET_1TO12 "s1-12" +#define ROULETTE_BET_13TO24 "s13-24" +#define ROULETTE_BET_25TO36 "s25-36" +#define ROULETTE_BET_2TO1_FIRST "s1st col" +#define ROULETTE_BET_2TO1_SECOND "s2nd col" +#define ROULETTE_BET_2TO1_THIRD "s3rd col" #define ROULETTE_BET_BLACK "black" #define ROULETTE_BET_RED "red" @@ -22,6 +29,8 @@ idle_power_usage = 10 active_power_usage = 100 max_integrity = 500 + ui_x = 603 + ui_y = 475 armor = list("melee" = 45, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 10, "bio" = 30, "rad" = 30, "fire" = 30, "acid" = 30) var/static/list/numbers = list("0" = "green", "1" = "red", "3" = "red", "5" = "red", "7" = "red", "9" = "red", "12" = "red", "14" = "red", "16" = "red",\ "18" = "red", "19" = "red", "21" = "red", "23" = "red", "25" = "red", "27" = "red", "30" = "red", "32" = "red", "34" = "red", "36" = "red",\ @@ -29,7 +38,7 @@ "22" = "black", "24" = "black", "26" = "black", "28" = "black", "29" = "black", "31" = "black", "33" = "black", "35" = "black") var/chosen_bet_amount = 10 - var/chosen_bet_type = 0 + var/chosen_bet_type = "0" var/last_anti_spam = 0 var/anti_spam_cooldown = 20 var/obj/item/card/id/my_card @@ -39,8 +48,8 @@ var/static/list/coin_values = list(/obj/item/coin/diamond = 100, /obj/item/coin/gold = 25, /obj/item/coin/silver = 10, /obj/item/coin/iron = 1) //Make sure this is ordered from left to right. var/list/coins_to_dispense = list() var/datum/looping_sound/jackpot/jackpot_loop - var/datum/asset/spritesheet/simple/assets var/on = TRUE + var/last_spin = 13 /obj/machinery/roulette/Initialize() . = ..() @@ -56,9 +65,7 @@ return ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/roulette) - assets.send(user) - ui = new(user, src, ui_key, "roulette", name, 455, 520, master_ui, state) + ui = new(user, src, ui_key, "roulette", name, ui_x, ui_y, master_ui, state) ui.open() /obj/machinery/roulette/ui_data(mob/user) @@ -67,6 +74,8 @@ data["BetAmount"] = chosen_bet_amount data["BetType"] = chosen_bet_type data["HouseBalance"] = my_card?.registered_account.account_balance + data["LastSpin"] = last_spin + data["Spinning"] = playing if(ishuman(user)) var/mob/living/carbon/human/H = user var/obj/item/card/id/C = H.get_idcard(TRUE) @@ -76,8 +85,6 @@ data["AccountBalance"] = 0 data["CanUnbolt"] = (H.get_idcard() == my_card) - if(!assets) - assets = get_asset_datum(/datum/asset/spritesheet/simple/roulette) return data /obj/machinery/roulette/ui_act(action, params) @@ -90,19 +97,11 @@ if("ChangeBetAmount") chosen_bet_amount = CLAMP(text2num(params["amount"]), 10, 500) . = TRUE - if("ChangeBetAmountCustom") - var/amount = input(usr, "Bet amount between 10 and 500:") as num|null - if(amount) - chosen_bet_amount = CLAMP(amount, 10, 500) if("ChangeBetType") chosen_bet_type = params["type"] . = TRUE update_icon() // Not applicable to all objects. -/obj/machinery/roulette/ui_base_html(html) - var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/roulette) - . = replacetext(html, "", assets.css_tag()) - ///Handles setting ownership and the betting itself. /obj/machinery/roulette/attackby(obj/item/W, mob/user, params) if(stat & MAINT && is_wire_tool(W)) @@ -126,7 +125,26 @@ if(!chosen_bet_amount || isnull(chosen_bet_type)) return FALSE - var/potential_payout = text2num(chosen_bet_type) ? chosen_bet_amount * ROULETTE_SINGLES_PAYOUT : chosen_bet_amount * ROULETTE_SIMPLE_PAYOUT + //double to nothing bets + var/list/doubles = list( + ROULETTE_BET_2TO1_FIRST, + ROULETTE_BET_2TO1_SECOND, + ROULETTE_BET_2TO1_THIRD, + ROULETTE_BET_1TO12, + ROULETTE_BET_13TO24, + ROULETTE_BET_25TO36 + ) + //result of text2num is null if text starts with a character, meaning it's not a singles bet + var/single = !isnull(text2num(chosen_bet_type)) + var/potential_payout_mult + if (single) + potential_payout_mult = ROULETTE_SINGLES_PAYOUT + else + if (chosen_bet_type in doubles) + potential_payout_mult = ROULETTE_DOZ_COL_PAYOUT + else + potential_payout_mult = ROULETTE_SIMPLE_PAYOUT + var/potential_payout = chosen_bet_amount * potential_payout_mult if(!check_bartender_funds(potential_payout)) return FALSE //bartender is too poor @@ -181,6 +199,7 @@ ///Ran after a while to check if the player won or not. /obj/machinery/roulette/proc/finish_play(obj/item/card/id/player_id, bet_type, bet_amount, potential_payout, rolled_number) + last_spin = rolled_number var/is_winner = check_win(bet_type, bet_amount, rolled_number) //Predetermine if we won var/color = numbers["[rolled_number]"] //Weird syntax, but dict uses strings. @@ -275,8 +294,25 @@ return "black" == numbers["[rolled_number]"]//Check if our number is black in the numbers dict if(ROULETTE_BET_RED) return "red" == numbers["[rolled_number]"] //Check if our number is black in the numbers dict - if("0") - return "0" == "rolled_number" //Check if our number is 0 + if(ROULETTE_BET_1TO12) + return (rolled_number >= 1 && rolled_number <= 12) + if(ROULETTE_BET_13TO24) + return (rolled_number >= 13 && rolled_number <= 24) + if(ROULETTE_BET_25TO36) + return (rolled_number >= 25 && rolled_number <= 36) + if(ROULETTE_BET_2TO1_FIRST) + //You could do this mathematically but w/e this is easy to understand + //numbers in the first column + var/list/winners = list(1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34) + return (rolled_number in winners) + if(ROULETTE_BET_2TO1_SECOND) + //numbers in the second column + var/list/winners = list(2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35) + return (rolled_number in winners) + if(ROULETTE_BET_2TO1_THIRD) + //numbers in the third column + var/list/winners = list(3, 5, 8, 12, 15, 18, 21, 24, 27, 30, 33, 36) + return (rolled_number in winners) ///Returns TRUE if the owner has enough funds to payout diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index ea5be43008b..ebfc2b62519 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -630,22 +630,6 @@ GLOBAL_LIST_EMPTY(asset_datums) "pill22" = 'icons/UI_Icons/Pills/pill22.png', ) - -/datum/asset/spritesheet/simple/roulette - name = "roulette" - assets = list( - "black" = 'icons/UI_Icons/Roulette/black.png', - "red" = 'icons/UI_Icons/Roulette/red.png', - "odd" = 'icons/UI_Icons/Roulette/odd.png', - "even" = 'icons/UI_Icons/Roulette/even.png', - "low" = 'icons/UI_Icons/Roulette/1-18.png', - "high" = 'icons/UI_Icons/Roulette/19-36.png', - "nano" = 'icons/UI_Icons/Roulette/nano.png', - "zero" = 'icons/UI_Icons/Roulette/0.png' - - ) - - //this exists purely to avoid meta by pre-loading all language icons. /datum/asset/language/register() for(var/path in typesof(/datum/language)) diff --git a/icons/UI_Icons/Roulette/0.png b/icons/UI_Icons/Roulette/0.png deleted file mode 100644 index 8e10b8e2aecf311b760f2574bb18436c0da1cbcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2767 zcmV;=3NZDFP)a!nE000U>dQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3&scH=q@h5vIEy##Rtxg3t?^bUIY{ehAb+ll>> zs%KR!Spx~+;sTc{GynJBW&Xp*OAaPP$*H7t@ChXpS2@VX`KkNc9$|m)kGn4M`{BF^ zw}%|3JbQos%;`EmInUGf8X@;mvRP2}x4!Ep_2>NSve z*UaJk-A=cTRI=Q=(69T~b$y3{Kcip4i%T(C348~4h@`@Cc1IB6Hq_A7UD4-ay9Rpt zZEm+ZY;x0EfAF2vLXY{r_{v_ttxw#e=c|uwm7~j2&~oMwj>|2s??3M>H#gHS$R8jT z`#sbjM|Vh@9njka|AbKb*nfN8#?SNS9@355-OMR{%=~bk0FMWsZ>Z_tS|hJDPw#3- zxSTGhZm#Sj?rR#Y{ZwKT{^F4}*t!+A3?({wG)S_>)@`v47?%xp*lL%Zd*5xx#NehA z_Re+ZZ8x0EfKgoEa0lJ&asuSTXCUsRgXgUKu*L3a%bu>=%*4ZHL-tq(vpn)woB7F2 zYbl|uJ@OeRQLL;}reTF5XRSFbw}FUVS5V^)@NIkkD6Sp^;|_Di!Fn_u0r*?ApULGn z(4HG3`;)*{#x(#T!h(n~)`P&2tdBO?L!2{WErHAcR52a;xCSgXMmI3h1rNoH3WOD?6<%A}Q%D^FK$sI|G~TWGPRCM~zpYImml9(wGl zOV7RZI^6IB9*;C+xHlh`g z45s+NKoDwKiM5ObB5n8?sl1_|wzU2D9(#{W^V{yQuwP$dOWSjUfb<< zb1>IT5_^n7K8xuq`L@QS&Nu=|uL;akO3!)_qN>Ul`v*tOqo?ZVw6(QDKFJw;&;8_h z@!UrtiW1gz6fK$>v?mKZR%b(A)Jcsf$MWGdHGy(Ee)n!S_+YZ;@H?}nt8E$T#3TX6 zn#;OXfQ&+?qw{z;>OMYR@9}5axHKXAf}Lb(V7_W=lw*82|A_GhxC#@h)Gez^UbSGY z2F*kfy8=bGzQbmg6Ih&5Xcbe1_695+-YiP#@*_{GUoO(yqRVVtsPgUvk*@S|FZcrq z7kzDpB%q|}woWP_!CcGfBLGx^D*`;ZW5B&cAr5dW$iW;5AQw-}reQ2*-$ zyO3u_jesWUNZVT{IR>6Od!yeAly3Cf025OnHtU&ve@H&_z`m~ucu%~`Z!GwRc;LN z+)7Z{Xw9f$IaPiwA_#TjkkzswZVHLy7p!n}^|^dXqt6(?q8FkcYcAco5mB+;B638f`z5CLs znMchk7k5r}UQKh6PL|3*BR37M2d*Bu8y-8XX(@97ONKs;$ z%Hpd>MC3tMM~{@W!=+SMwjPD7?$HPRXJ^c1blVC`FI~9K7EKQ$koUHU>tRY~4aw@x z&t6OFjf!xkjN2*mx|N!r_tN*R)cm}czHg=G4~6WPR%(9UOW(Ir^YdQ%zLlCkm9fvQ z)cm}czHg=G=e_iOD>d(X>5l~M&OYjZWV= zqGO9CBzDA#XzO#oqjSFJlu5X$N)b7%Z_&vTn)bpuzVmM2+Ol8HQc>CZiUs)wt@Q=p zG4xf)`KAVvgzMg5rP;#I} zJ{>mS*mAvmIz6ExT)t4X*7-I`{ZVuMB5P0_7PYMZ2T419V+&7Se%!n`olqB=Em>bc zp(f0IJpb8_PhU>WkMXA~)2JuO`{O>Q|5Qp^jbBhSpD+?cYY{B6P+H{Nifvd;YDY36 znpwmQ$cR|8*@_ECBvE|{5NikvKLorhY^jfStW2zk37RhjEZ28m)}F8CYSXucsIyr2 zd)`{qfT;zIWq{GRjdC33|E6gPub!GMyZ`_I2~bQ_MJOmJ33@H&=H^D6rV{`F05nNN zK~yNuW6)X!1}hk*hJr!ZC<7-WY9*ABwF=5u8a5Tem>N12O$4q6u4^<5F&VJr2LLu> V*n6_J(y;&l002ovPDHLkV1gCIUrqo3 diff --git a/icons/UI_Icons/Roulette/1-18.png b/icons/UI_Icons/Roulette/1-18.png deleted file mode 100644 index c9a9ac887b0f167b72b9396281e81afd7fbbee9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3598 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 U!~nuG6951J07*qoM6N<$f-gYGP5=M^ diff --git a/icons/UI_Icons/Roulette/19-36.png b/icons/UI_Icons/Roulette/19-36.png deleted file mode 100644 index e6c68bc512eae21954241d75db22a9b934d52152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4375 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

+m&x(Kx#(Txg78j#epi1KBqn&kdVz z1v`N!SFWD?t7Xj2oUF(`<@%WsR73$cu0u*OYHpnD@T; z+(*|`!)#;slHW}9o~AidxhA61P*=W8@%`~{rf2@lrJs28o~Frv;868h+oZ%fN47Ul zc0y}=k|LYj**)btdmnqwo>$~+UNZ7-JT!;dNi118%N*#UGo$J%z;0scnxP?8TPJME zE+1#@iGoUoW=X--*drO?Gk2Hc00R2>%SZ0+Nt~>{(X-;rnsueR9dlpF9s|-m&q#IV z%D@qnB-{Bk{w>A_ z;FfuyO5M6gF1uA`t4=eLv)d8UZQo(D>IE!DDYS~ILi+%g3U4-4y2C6B_A51yzNs6PA6`?pMrEMk5z#h%LPPo8E(}u%X-oPCM z)M3Uwppvgr%MM5;UuSrre!y;Q5kr zBRrv3+_eBd6jJ^AWc+8(O&*#Kr4)e$YH9X|@f*n0F1sOqH zRFnqKXykOS$XD?#`!xpS34n!DjJ|rFE*lYo&|zSjNPLhGWJAI(nk+#$@uF31Q=-SE zYn9oGNSy)spc&nY2E&YI9xGR#Nbkc!Wa0(-#FsMQC>k5rJ?hDi+}h|ljp?zpSwS47 z5|S&!FcX?yG>PylqYAq$?`QUKn(Q7BNPOvqG#Zl{gI6Yo_MydrP8<6Jk%eg}tV*pb z8#y=@Enn?ul0CGz6Xg-qG?+(#^eQ?J@6N#GD9z{!o-PAfnhl~97Hdg|8seC`Lr9gf z7IVZ|+WS$Y(iCmQY3fKyM5jmZwW49|#>`s#>D$`rL6s44qeBoTl$XbNPjXepsoC`w zs)HbvPJA~%xzhHhV%nP<$KAM4B~W#%mtT|{JF zDh(b`9{X5neke4X#I_mE9(2P{D|RGR=Q@lKKe_MRa`h@yJA!2tp?Ww?ZP83 zKN?5z2(T^$ti5$lNQ33Hp@6@bEV0=#T@9?EmeCY>X5Kn=KPB7+6Qb;db{)k>vlC~e z`SCTT!&^=;8H#J-k(_(_ombOhq>*3hupc7d{1p1XjePS{=>InI%{QU1N}gc37*s(| z*T9`vMp9U`Z?T?A(}^h)3YpH}nVySt0%=I02MO>Itt34w#<>Zv7iQkX@l^CTbQfq; zdxp<^t%;6)f>Z+eKL!;hRwd zAyL8Ij9RSPn6%VOx*ytm29(W61#lox*XfRU8op~-AC){Cq|j9dp$UjT)Cq!{%rHKvVvHq3?N}$OcGH53yI~H>Yq1pvWxkubA2VFAMMji z{C}dK&F2F8iw5tZpO1P5FV)YtdNx1E=Sw{^TM&m)&d^9(c(ak@R61x7*X(KLrh~*K z$k zk4FdHQM?3(Cgm;I_bu2d3Qf}wJur@}r?8HEX^WVq*L*?nSc2GXb5>nY+$#z08oEwd zbU%YSy60pNEb*ekMc4IuHs^2wv{i16^)uI^@ij8IqNs}q=%NMM{ zXhOiH5n#zCrns>PEgk_l6K%5BQAF0Qf>$;3<(ZmC%R)6>*O+y!(c@l*mc!Y)NGX?0 z*vK=g#@3RqHJ!XiWUmZk>oP^!gwHIrRus84=+?nDRN94{O`0^7x+6$t%Sg1jGG}W1 zQh2>;t3evklH%k{B-DlK(L`*>jE!ccg!R-7tR$0*1-QtmymWPZBIYD+uUirpc$((O zwT^@qx{6TOEkKvL^oc|o1|OoA11yeLX(7nZk*xyiyQK$YG`{$J(r@uKpD`aJp7C^V zz%ZoqBmiB2sy3K~#&y!SX5xtWsaGT+>dUulCFcEN$v<5yF@L{Gdy&2Qob3rc!fDF2 zvfjyAMrooOA!IhKJYmPc2)LzGZ+A1h3F3G<$%K)5p^L6}l9iAS0`k>5`L_%D=KYF3 zK`E3Kf)$!06Ik*q{K;RD~wiZmOw>8{lz*RqFb9p~3zWqBB3K)!!1G`AMyQyS|AGe|(zv z2mWlW?vn%gs=I#wZ4~42J_ophMzVW%x`xYe%fR(zujf{X_LYHc9-F&O$PJZ zU51}F8O()^_N@tVi1lr%G+dK*PtyX4hnk~&6#Y6>9O-IgPV@#+bTx8n{X8v%uCSc$ zV&_M9G0u9@@}4HB=}HHtz(o$1xJh}SO0TnlOHvm^+!nLWqG7&Tn7K|1vz2$s>4(01 z2%SmM{WmRf5Sy}|5*xla6_zB6;ZZKN*(DgRm3Mc#s@8RRR~MsnakrD~y4^2^ejp{M z8d>%!=H%qOnzXOya_>xDhQJ7zqHF$I&-b<0sP^c5p+Pi=mVBV(`u)vZjy%RRwd1W7 zYD0Im==LPF|LM>5aUL(zFpqh>*rNOD$C}HQV+r!f9-rPW{YWL|-HuU{Z&1`ajeuhA z$Z;wGm6UO3ZVx-$wqo#R~#H}krg@645Ga0ihCiFc%?BrH347Y6NCc_qZQp4 zb?(wfbQ-#sOuH-X{4W6QIFLokXtbQ_wpq>p0Wm`MXhqg%!~g&Q2~bQ_MJOmJ33@H& z=H^D6rV{`F00Cl4M??UK1szBL000SaNLh0L04^f{04^f|c%?sf00007bV*G`2jdA4 z05vV<<7lA(000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0000|NklZiS_K9x7^a4TLD*1btXee{jS;#MDiyXA%7~hZTQSU>rD0H!X-lDusZ-GznA)d? xqMNg7CEPBUQ(-2<8E`4MVyZi1kTYP(4*-L7=XrVZ6AAzT002ovPDHLkV1h(^OCtaP diff --git a/icons/UI_Icons/Roulette/nano.png b/icons/UI_Icons/Roulette/nano.png deleted file mode 100644 index 239e49fcdb6533d7eb5176728bd9b1aba1fadc6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5219 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 diff --git a/icons/UI_Icons/Roulette/odd.png b/icons/UI_Icons/Roulette/odd.png deleted file mode 100644 index 532a23bd9fa87cf832d4c6043782476b78354667..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3884 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 up^R0l&>3*40Wk+I0#^gqHJoAxmiz#^)!@qz+ zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3+|aU?mGMgJkih=6?&2di0YFyha-a3_<@WK~z& zbh3&;dU(Krx7-Dw+5h{mWB!MKDFtg{DmAy9E&pPR&3AsN_W9TEcW2}Me*gLREq?!Y z-NcU%c`gNB!}Dv+@Ab`fKJDHS>U_uPTu)yHYWsa-e1D_A1Nr(s;JyCwpx~Yd*mq#l z-+_XEpB$gx$FnS(TPyOu6`gPrWP3g_smnY}^`Q&fc{r<@9 zugsZ`^qsTnIr~{%kC`RscTpcpxj%8=P_*u+GGB%NldTH2z8YVZmY6(iQDlR!>6-JT z@wn)g>+ZOHU#FW)G5YNbuij4|+%#OQB%}Fx(;fBYjxVHqg-Ws~~?4b(m#^>Rb1gFI&fp+^+~cT>m7g)F@wZpTp$BByO3OVws>!fa|E)I zpw85Nh<=b3my%yh(#JrH6;BuNY(7)mz11iGTm}e9L<-r2LT+eEk`-g3eoCy=P){Mn zlu}M5)znhYA*;i3E?J1$ODM6Vl1nMIw9-utHP%#fEw$EGd-E-TxT(>Pt+v*B=b@dE zJD={{(EIQsj5yNBql`M*=+m1SW}Io}S!SJW_T^Vt^zq88th(Cj+igl|$DMZGW!K$y zKa|=DC!TcjDW{%hPXElBd)xN+um2!x?#-INnbM8rGizKe&C?ahGs&dnET@c-!ML4I$9?ARSLTul`M;AlLn8ctBXdTn`v;l( zGjBg-ZS_lZ;bur}sG!B|WP=nHigh8uC6z1lezR6l6#d^o(=FVCoS!fxsb$9*wV<~p{)NS;t2fymJIq1=ei1Z3U4%a3nMyh#aIis#L zV&g%{L!Dz3JKEfYq7~|J$Gn(f$*iKx6nP>no562G`S-a-TagwxahKNfTzR*!*P0Yp zSX9g@rHxs4A1R((#u+nZo@TYIyHr!p6M^TdQpxpuQF-hwrCO=0IX-GMzG7*Ox;x7(dNEVKQ&|lwxAs&Yw|>+gx1SLK^u4CIJgqTZIF*w3 zD`g0GF1mlsURQ`WKD)A(w(bHKGjK}_TrR0o(_Xuio3m$EzxcABxy?#(o8&iBqqm!n zyh%TttVNI6PP;R+eUv^?wG%ReV8%GCJD;}v+cszHY5=Xl=Z7n`0gI`pNgx&dTaMqx z>|ryYu9p^02xp^^$}^z(7;(8>;>}H1L~9>VPs*+YM>i6-I^euzM+G!5gidglD}e_) z-=J*RBp2||fnakdkSuIIOX62=u`&fL0YF9IsjpcQcsywF1n^Gs<8nhQ8ycM!Sp!5K zqebuHakGF(abz_HAzU=(%xEC!8G1Nn`HFlkiQH9?4y38ufO92`F#BmCFr$SUN^P}5 zV&dAYwv4jEaKLP3GU})Zf#gzqtlaEp6&q05RBGvauQR9OJe+<9n!*e&g_dBQlNbl& z2kl{mUM4E6WIvIMu*y~?m`u_6dWKbx?8s;rSW^5m`0+{5TdKU?94R601l7?by-!|0 zv#L_AbCNgit+P^$RB}ou^z;dMDg!j-AaXNdYFs6K@s=&6lKh~yXYYC2okyb&Tul52 zMRy-lALN0sWw!`bIlx0WqfEnsXr*~608pcA21VO4n6@_zRCb%NBnSWsgwdI4V)(S& z1lHSFkXwT{&7!UW)huKlof5uK0t2xaEtcnb7OQ4d2i|uXk6HpV0$2e$Q%nV315}gL z-OS1NMuYB>h?aD-kBuRyiV!400YFN7Kyqn>)%yvqZzRWodQ2l5r+S}920~WxyUr*r z03_NFC&ak#w8$v;-u^DR$F<Sv0f zJfb|2UWqa~u*gq&h45p|3Gga;W)nNNs7byiw^BEe^O7!?EdF(Y|1#Lv%%=0ppTJNnQNw%Q`2yeSO|1r;dV`wn|jgS4q?pw}((xGfT*I---g zjIyBp(&S;x74rf{pv}DnYmwt57gY?=Ilr{Gf*8pO|Fg}O#G{KD3n`dL2i&Coi5OOI zbF8WubXtmXse4nOIYo6c_)e5qFpRa0Z!4kNjykkOi}+N)3dB3}n$|ISP=UU1BCFWc~B~dI-3?UKhXG!ky>Ay;>H<=s+H zBEUUH#0eL1)}@{Whz}_atf}FFG|~nU5sA0Uh6@N4`UZK0B!f{wDDeR{6y$V>iAC*F ze-7k7)gnxyGob=yAZa875O(jg6=v3F2bvtP$9=RTgLDa?ZL z*9OF)Esqs@wV_KWOO?Bhr6E5607NkGa8&eYuV{};JW0-}cfYOK6XI9_>j~3LZ3j+< zpm^uDov_<3t}LChtb_Ipg*sl7*)5D+7c2=Zim@OZ`Y^&+Qz5Dd7u42x>xk@DT}C7q z3}Z(=0TCY6R>33KXfBqJT{cadJ(!g$Fl7v+Jh8L4?CFPa*NE$mkab7-ctop(2RmwI zQVW|ZI4NvXbDjYM5xkR#pe@xBt1X$Ld`f{wGNXW!aD2|935o(Tr2`t4N!+|FU>84eJ8B$vOMArAN!+Rp7GGOpT#o^qI0-^0)s7q3p1)z@Tu_%FuNCuQ1b(|?_Y%q2k zRs=)*s1*zd(2({#Ome6~I1fx7mewesQ-iB^$N=`XD}kd>MR#CD@)T|XS0Ww^t1R=4 zU>?+ufsN4?^bs6f33m?#3?}6i1dd}17m7q+A{z8VmdV--%w5f=W#1NpvhU1wj`6+% z6p-6QQ^FOXp|^;k$O3KEo)YU?nKut2gj=Xx)amjD5u(j&^aQX(m5DG9Geov5({cu??*sW(h8kP;|S& z#<&mgA!eV&`SF?~;89_F8C1kQ6|xb#s6_y24w!0601U(9)t%XcBPl@oNJQ$PLf2Q4 z0!j$JzUe2*b5OD{LbhAR5ThNumw4IJQ~@4l%~Dj-Ow7}kS&=WY(vSAFCBnf60|qVN zX^{6s2AphsFiSW3WyE7BIwwU+Z(8TUX@%ih(g@S{FtJKqz(>FdG}!h+P1a6hsSbr> zDB;vPmI(K9O(qCVw)f*~p{EWqfkis(xQIvhX)lLzcU5HPXe@3u5-r?`{F)BTLk4Ue zt~|v-Z9Ek4>owo)o}>MreL&5=X!7o;>{PKssaG$SW_EFSRziP9&?{r?BsuWa7-JrQ zctlyDbP;f)Z9xLlI9XP7gShG=d@~XQ29MW1N?=Dk@YKc_eLN_7m@5pZTIp=aipUCN zq&r#5PYub?b)+OQU?lF|M>V@qIFU-A?8#08wE=eQ-I1`vD_Hs)KSml2*8!jYF?A+3+{koutB5CfLXXz#XoRI~US z%Y@BBBjCcAc(am8mO(tNq5WJGHWE=}fokws$_d4Bm6Nt{B-xvY3(sq!CnhLJ?x2hb zHSWfvx9~RY?mnX->KC2|3<}NYV1{k)HbmF_y!O~sN@OiSD-C(*MP&*l#hsAvDhA7b zFoAZo(bu$@BD-^?1j5e6ex}R0HhiBPmWbHF{o&&8(1rz{{elcHF#NP>n9sXayyYPg zsX*=Bo1IYK;eVb=z3VXzJl=~caof5cpMAr3YyN20Q0HqB5|h{fzy^l~QPYU71W9Zf z0}mAoLSjfzue)nI<#UI&4*6W8_Z+TZ$vp#3R?TL3IyHoBfV)sX3^~wFzzwX^3lH$5 zA4RrBo*1T~y+^9DJ~jaX-`Zp(%y9sRF?N7jMv|ks0BV3QsP$Wv(MW~f%VKCy8;YmK z-3WoIJi%@Oa_R;_p6Z4?h)0lc9mfId%qQH~e|-_4$zjFi<(bKx?BB7ccd0DVC^RhEYCt{>{5lp9E6SuSHsE+X9~= zaDk(=J#u%RLEt94`R;|`w7&`h^Ggxr9}iIA26&3znmUdOI#Pn6(jP~6rfWkZzT3E{ zD->O%MaSLHxTi^9kDA_-ChgQ}&rbV%Lo%cc%yBzEoz0Y{U9@v|#VyX~np4yhEs4I? zF$z`Z6W&-SAUa;HbuePVV!~AFE^R`slG@#bD%Su|(KIJBMDEi6C;;Gt+~9!uVAgIh z1xbsd6i{@zYA<3*(jo^7DU=|O+IgZm86;ZG6;E3cJjf{RGpC97+pQWFKjXrg3<^-f zc!K6s!YW%152YTpr4F)s+D7UK?S#I-=I}`!@il_5gMn=k&B)kAb|Ms9>E`OR_d-c! zzo~~KssqH9SX3$s*V#|;P>;?5mHlM^P$Z4`0mU|Oal5Hn!#YQcTvVd%*5lKvY(;SQ ztjqV`PgBiRf;!=@Xv1fR`Y)e`HF|c1kl&tfztEg1o&xxG*XGd~g1i;*Zb?5K+Xp^{~c_8o~~gb{=m#Hkoh)jEUU_!kU1UK|8&R_kjI}u@Zdl@sC(^z z12rgyf=kp6snh<*(itrR0aAo{hfYnZ_OA5D1SVV#W)WzJFK13s=K?yE$-pVT8c9f1 z6Xp`gx+lgutdJ!um=fH*nPuHQvy-+?IAaBo5fs(>aAgTry`#60JaBbB9z=v6^U68~ zqy(3CN%M-Pz=$qw@Se`02!Q1x7RKxdBHi80+e?2Y;bl@Of(mG%Pl2H#9g6;MsjB;- z{GAHI<2%QFB`NCprz5fFDLqXi9f#)$sV49}l2&`C^o_O99-N9@H)664GRxKyz-wy4WVW};~Ok-BKjXk)~&2uaYWzjI;w zt>0tPcar+E&Y!0_x2H;+4*rM11J>t!>XRKWH|kG3V)=nG|IFDvxOch=Dc=5P;S63#O9LnAp|z1iOg{)Au-lEkQ}ZA-(Afkn(-J1Ut}$y$DPYa&pWrkm^VAC)(mAvEHRZAfMw*F$ft0D zd { + if (number === 0) { + return 'green'; + } + + const evenRedRanges = [ + [1, 10], + [19, 28], + ]; + let oddRed = true; + + for (let i = 0; i < evenRedRanges.length; i++) { + let range = evenRedRanges[i]; + if (number >= range[0] && number <= range[1]) { + oddRed = false; + break; + } + } + + const isOdd = (number % 2 === 0); + + return (oddRed ? isOdd : !isOdd) ? 'red' : 'black'; +}; + +export const RouletteNumberButton = props => { + const { number } = props; + const { act } = useBackend(props); + + return ( +