import Ġkotlinx . coroutines . Non C ancellable Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġworld . greg s . void ps . engine . action . ActionType Ċ import Ġworld . greg s . void ps . engine . action . action Ċ import Ġworld . greg s . void ps . engine . client . ui .* Ċ import Ġworld . greg s . void ps . engine . client . ui . dialog ue . dialog ue Ċ import Ġworld . greg s . void ps . engine . client . ui . dialog ue . talk With Ċ import Ġworld . greg s . void ps . engine . client . ui . event . Interface Closed Ċ import Ġworld . greg s . void ps . engine . client . ui . event . Interface Opened Ċ import Ġworld . greg s . void ps . engine . client . variable . getVar Ċ import Ġworld . greg s . void ps . engine . client . variable . set Var Ċ import Ġworld . greg s . void ps . engine . entity . character . npc . NPC Ċ import Ġworld . greg s . void ps . engine . entity . character . npc . NP CO ption Ċ import Ġworld . greg s . void ps . engine . entity . character . player . Player Ċ import Ġworld . greg s . void ps . engine . entity . character . player . flag Appearance Ċ import Ġworld . greg s . void ps . engine . entity . character . player . sex Ċ import Ġworld . greg s . void ps . engine . entity . character . set Graphic Ċ import Ġworld . greg s . void ps . engine . entity . definition . Enum Definitions Ċ import Ġworld . greg s . void ps . engine . entity . item . equ ipped Ċ import Ġworld . greg s . void ps . engine . event . on Ċ import Ġworld . greg s . void ps . engine . utility . inject Ċ import Ġworld . greg s . void ps . network . visual . update . player . Body Colour Ċ import Ġworld . greg s . void ps . network . visual . update . player . Body Part Ċ import Ġworld . greg s . void ps . network . visual . update . player . Equip Slot Ċ import Ġworld . greg s . void ps . world . interact . dialog ue . type . choice Ċ import Ġworld . greg s . void ps . world . interact . dialog ue . type . npc Ċ import Ġworld . greg s . void ps . world . interact . dialog ue . type . player Ċ import Ġworld . greg s . void ps . world . interact . entity . npc . shop . Open Shop Ċ Ċ val Ġenums : ĠEnum Definitions Ġby Ġinject () Ċ Ċ on < NP CO ption >({ Ġnpc . id Ġ== Ġ" yr sa " Ġ&& Ġoption Ġ== Ġ" Talk - to " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġplayer . talk With ( npc ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnpc (" happy ", Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHi . ĠYou Ġwanted Ġto Ġbuy Ġsome Ġclo thes ? ĠOr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdid Ġyou Ġwant Ġto Ġmake over Ġyour Ġsh oes ? ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠĠĠĠĠ Ġval Ġchoice Ġ= Ġchoice (""" ĊĠĠĠĠĠĠĠĠĠĠĠ ĠI 'd Ġlike Ġto Ġbuy Ġsome Ġclo thes . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠI 'd Ġlike Ġto Ġchange Ġmy Ġsh oes . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNeither , Ġthanks . ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( choice ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer (" happy ", Ġ" I 'd Ġlike Ġto Ġbuy Ġsome Ġclo thes .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . events . emit ( Open Shop (" y rs as _ sh oe _ store ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer (" happy ", Ġ" I 'd Ġlike Ġto Ġchange Ġmy Ġsh oes .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Sh oe Shopping ( player , Ġnpc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer (" talk ", Ġ" Ne ither , Ġthanks .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnpc (" talk ", Ġ" As Ġyou Ġwish .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ on < NP CO ption >({ Ġnpc . id Ġ== Ġ" yr sa " Ġ&& Ġoption Ġ== Ġ" Change - sh oes " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġstart Sh oe Shopping ( player , Ġnpc ) Ċ } Ċ Ċ fun Ġstart Sh oe Shopping ( player : ĠPlayer , Ġnpc : ĠN PC ) Ġ{ ĊĠĠĠ Ġplayer . dialog ues . clear () ĊĠĠĠ Ġif Ġ( player . equ ipped ( Equip Slot . Weapon ). isNotEmpty () Ġ|| Ġplayer . equ ipped ( Equip Slot . Shield ). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . talk With ( npc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnpc (" af raid ", Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠI Ġdon 't Ġfeel Ġcomfort able Ġshowing Ġyou Ġsh oes Ġwhen Ġyou Ġare ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw ield ing Ġsomething . ĠPlease Ġremove Ġwhat Ġyou Ġare Ġholding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( player . equ ipped ( Equip Slot . Fe et ). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġplayer . talk With ( npc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnpc (" un sure ", Ġ" You Ġcan 't Ġtry Ġon Ġsh oes Ġwith Ġthose Ġon Ġyour Ġfeet .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġplayer . action ( ActionType . Make over ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . set Graphic (" d ress ing _ room _ start ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . open (" y rs as _ sh oe _ store ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( isActive ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . set Graphic (" d ress ing _ room ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . close (" y rs as _ sh oe _ store ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . set Graphic (" d ress ing _ room _ finish ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . flag Appearance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Non C ancellable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ on < Interface Closed >({ Ġid Ġ== Ġ" y rs as _ sh oe _ store " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġplayer . action . cancel ( ActionType . Make over ) Ċ } Ċ Ċ on < Interface Opened >({ Ġid Ġ== Ġ" y rs as _ sh oe _ store " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġplayer . interfaces . send Text ( id , Ġ" confirm _ text ", Ġ" Change ") ĊĠĠĠ Ġplayer . interface Options . unlock All ( id , Ġ" styles ", Ġ 0 Ġuntil Ġ 4 0 ) ĊĠĠĠ Ġval Ġcolo urs Ġ= Ġenums . get (" colour _ sh oes ") ĊĠĠĠ Ġplayer . interface Options . unlock All ( id , Ġ" colo urs ", Ġ 0 Ġuntil Ġcolo urs . length Ġ* Ġ 2 ) ĊĠĠĠ Ġplayer . set Var (" make over _ sh oes ", Ġplayer . body . get Look ( Body Part . Fe et )) ĊĠĠĠ Ġplayer . set Var (" make over _ colour _ sh oes ", Ġplayer . body . get Colour ( Body Colour . Fe et )) Ċ } Ċ Ċ on < Interface Option >({ Ġid Ġ== Ġ" y rs as _ sh oe _ store " Ġ&& Ġcomponent Ġ== Ġ" styles " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġval Ġvalue Ġ= Ġenums . get (" look _ sh oes _${ player . sex } "). getInt ( item Slot Ġ/ Ġ 2 ) ĊĠĠĠ Ġplayer . set Var (" make over _ sh oes ", Ġvalue ) Ċ } Ċ Ċ on < Interface Option >({ Ġid Ġ== Ġ" y rs as _ sh oe _ store " Ġ&& Ġcomponent Ġ== Ġ" colo urs " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġplayer . set Var (" make over _ colour _ sh oes ", Ġenums . get (" colour _ sh oes "). getInt ( item Slot Ġ/ Ġ 2 )) Ċ } Ċ Ċ on < Interface Option >({ Ġid Ġ== Ġ" y rs as _ sh oe _ store " Ġ&& Ġcomponent Ġ== Ġ" confirm " Ġ}) Ġ{ Ġplayer : ĠPlayer Ġ-> ĊĠĠĠ Ġplayer . body . set Look ( Body Part . Fe et , Ġplayer . getVar (" make over _ sh oes ")) ĊĠĠĠ Ġplayer . body . set Colour ( Body Colour . Fe et , Ġplayer . getVar (" make over _ colour _ sh oes ")) ĊĠĠĠ Ġplayer . flag Appearance () ĊĠĠĠ Ġplayer . close Interface () ĊĠĠĠ Ġplayer . dialog ue Ġ{ ĊĠĠĠĠĠĠĠ Ġnpc (" yr sa ", Ġ" che er ful ", Ġ" H ey , ĠThey Ġlook Ġgreat !") ĊĠĠĠ Ġ} Ċ } Ċ