package Ġde . gle ex . plt cmd . game . ui . views Ċ Ċ import Ġde . gle ex . plt cmd . game . engine . Game Ċ import Ġde . gle ex . plt cmd . game . engine . entities . types . Element Entity Ċ import Ġde . gle ex . plt cmd . game . engine . entities . types . FO B Entity Ċ import Ġde . gle ex . plt cmd . game . engine . entities . types . on Received Trans mission Ċ import Ġde . gle ex . plt cmd . game . engine . entities . types . on Send Trans mission Ċ import Ġde . gle ex . plt cmd . game . options . Game Options Ċ import Ġde . gle ex . plt cmd . game . options . Ui Options Ċ import Ġde . gle ex . plt cmd . game . options . Ui Options . MAP _ VIEW _ HEIGHT Ċ import Ġde . gle ex . plt cmd . game . options . Ui Options . WINDOW _ HEIGHT Ċ import Ġde . gle ex . plt cmd . game . options . Ui Options . WINDOW _ WIDTH Ċ import Ġde . gle ex . plt cmd . game . ticks . Ticker Ċ import Ġde . gle ex . plt cmd . game . ui . components . Custom Component Ċ import Ġde . gle ex . plt cmd . game . ui . components . Info Sidebar Ċ import Ġde . gle ex . plt cmd . game . ui . components . Input Sidebar Ċ import Ġde . gle ex . plt cmd . game . ui . components . Map Fragment Ċ import Ġde . gle ex . plt cmd . game . ui . entities . Game World Ċ import Ġde . gle ex . plt cmd . model . radio . communication . trans missions . Trans mission Ċ import Ġde . gle ex . plt cmd . model . radio . communication . trans missions . de coding . isOpen ing Ċ import Ġde . gle ex . plt cmd . model . world . Sector Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . hex works . z ir con . api . Component Decor ations Ċ import Ġorg . hex works . z ir con . api . Components Ċ import Ġorg . hex works . z ir con . api . component . Log Area Ċ import Ġorg . hex works . z ir con . api . data . Position Ċ import Ġorg . hex works . z ir con . api . graphics . Box Type Ċ import Ġorg . hex works . z ir con . api . grid . Tile Grid Ċ import Ġorg . hex works . z ir con . api . u ie vent .* Ċ import Ġorg . hex works . z ir con . api . view . base . Base View Ċ Ċ private Ġval Ġlog Ġ= ĠKotlin Logging . logger Ġ{} Ċ Ċ /** Ċ Ġ* ĠThe Ġview Ġto Ġdisplay Ġthe Ġmap , Ġradio Ġlog Ġand Ġinteraction Ġpanel Ċ Ġ*/ Ċ class ĠGame View ( ĊĠĠĠ Ġprivate Ġval Ġgame World : ĠGame World , ĊĠĠĠ Ġtile Grid : ĠTile Grid , ĊĠĠĠ Ġprivate Ġval Ġgame : ĠGame , ĊĠĠĠ Ġval Ġh q : ĠF OB Entity , ĊĠĠĠ Ġval Ġelements To Command : ĠList < Element Entity > Ċ ) Ġ: ĊĠĠĠ ĠBase View ( theme Ġ= ĠUi Options . THEME , Ġtile Grid Ġ= Ġtile Grid ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOG _ AREA _ HEIGHT Ġ= ĠWINDO W _ HEIGHT Ġ- ĠMAP _ VIEW _ HEIGHT ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLOG _ AREA _ WIDTH Ġ= ĠWINDO W _ WIDTH ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS IDE BAR _ HEIGHT Ġ= ĠWINDO W _ HEIGHT Ġ- ĠLOG _ AREA _ HEIGHT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dock () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlog Area Ġ= ĠComponents . log Area () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Size ( LOG _ AREA _ WIDTH , ĠLOG _ AREA _ HEIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Position ( Position . create ( 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Decor ations ( Component Decor ations . box ( Box Type . SINGLE , Ġ" Radio Ġlog ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . log Radio Calls () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġleft Sidebar Ġ= ĠInput Sidebar ( SIDE BAR _ HEIGHT , Ġgame , Ġh q , Ġelements To Command , Ġgame World ) ĊĊĠĠĠĠĠĠĠ Ġval Ġleft Sidebar Component Ġ= ĠCustom Component ( left Sidebar , ĠPosition . bottom Left Of ( log Area )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠMap Fragment ( game World ) ĊĠĠĠĠĠĠĠ Ġval Ġmap Component Ġ= ĠCustom Component ( map , ĠPosition . top Right Of ( left Sidebar Component )) ĊĊĠĠĠĠĠĠĠ Ġval Ġright Sidebar Ġ= ĠInfo Sidebar ( SIDE BAR _ HEIGHT , Ġgame World , Ġgame ) ĊĊĠĠĠĠĠĠĠ Ġscreen . add Components ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Sidebar Component , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Component , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Component ( right Sidebar , ĠPosition . top Right Of ( map Component )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġconnect Ġparts Ġthat Ġdepend Ġon Ġeach Ġother ĊĠĠĠĠĠĠĠ Ġleft Sidebar . connect To ( map . map Panel ) ĊĠĠĠĠĠĠĠ Ġright Sidebar . connect To ( map . map Panel ) ĊĊĠĠĠĠĠĠĠ Ġlog . debug Ġ{ Ġ" Created Ġmap Ġview Ġwith Ġsize Ġ${ map Component . size }, Ġcontent Ġsize Ġ${ map Component . content Size } Ġand Ġposition Ġ${ map Component . position }" Ġ} ĊĠĠĠĠĠĠĠ Ġlog . debug Ġ{ Ġ" It Ġcurrently Ġshows Ġ${ game World . visible Size } Ġoffset Ġby Ġ${ game World . visible Offset }" Ġ} ĊĊĠĠĠĠĠĠĠ Ġlog . debug Ġ{ Ġ" Adding Ġkeyboard Ġlistener Ġto Ġscreen " Ġ} ĊĠĠĠĠĠĠĠ Ġscreen . handle Keyboard Events ( Keyboard EventType . KEY _ PRES SED ) Ġ{ Ġevent , Ġphase Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( phase Ġ== ĠUI Event Phase . TARGET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeyCode . KEY _ A Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame World . scroll Left By ( Sector . TILE _ COUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro cessed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeyCode . KEY _ D Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame World . scroll Right By ( Sector . TILE _ COUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro cessed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeyCode . KEY _ S Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame World . scroll Forward By ( Sector . TILE _ COUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro cessed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeyCode . KEY _ W Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame World . scroll Backward By ( Sector . TILE _ COUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro cessed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeyCode . KEY _ Q Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGame Options . display Radio Signals . value Ġ= ĠGame Options . display Radio Signals . value . not () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . debug Ġ{ Ġ" Toggle d Ġradio Ġsignal Ġdisplay Ġto Ġ${ if Ġ( Game Options . display Radio Signals . value ) Ġ" ON " Ġelse Ġ" OFF "} " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro cessed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKeyCode . KEY _ P Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT icker . toggle Pause () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro cessed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠ Ġ-> ĠPass ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPass ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠLog Area . log Radio Calls () Ġ{ ĊĠĠĠĠĠĠĠ Ġh q . on Received Trans mission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Trans mission ( it ) ĊĠĠĠĠĠĠĠ Ġ}. dispose When ( hidden Property ) ĊĠĠĠĠĠĠĠ Ġh q . on Send Trans mission Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Trans mission ( it ) ĊĠĠĠĠĠĠĠ Ġ}. dispose When ( hidden Property ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠLog Area . log Trans mission ( transmission : ĠTrans mission ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ"${ Ticker . currentTime String . value }: Ġ${ transmission . message }" ĊĠĠĠĠĠĠĠ Ġif Ġ( transmission . isOpen ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Header ( message , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Paragraph ( message , Ġfalse , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ