package Ġhex . engine Ċ Ċ import Ġcom . badlogic . gdx .* Ċ import Ġcom . badlogic . gdx . Input . Buttons Ċ import Ġcom . badlogic . gdx . graphics . GL 2 0 Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Batch Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Texture Region Ċ import Ġcom . badlogic . gdx . math . Vector 3 Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Actor Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Stage Ċ Ċ open Ġclass ĠBase Screen Ġ: ĠScreen , ĠInput Processor Ġ{ ĊĠĠĠ Ġval Ġmain Stage Ġ= ĠStage () ĊĠĠĠ Ġval Ġui Stage Ġ= ĠStage () ĊĊĠĠĠ Ġinit Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġcamera Ġ= ĠOr tho graphic Camera ( G dx . graphics . getWidth (). toFloat (), ĠG dx . graphics . getHeight (). toFloat ()) Ċ // ĠĠĠĠĠĠĠ Ġcamera . set To Or tho ( true , ĠG dx . graphics . getWidth (). toFloat (), ĠG dx . graphics . getHeight (). toFloat ()) Ċ // ĠĠĠĠĠĠĠ Ġmain Stage . viewport . camera Ġ= Ġcamera ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġim Ġ= ĠG dx . input . input Processor Ġas ĠInput Multip lexer ĊĠĠĠĠĠĠĠ Ġim . remove Processor ( this ) ĊĠĠĠĠĠĠĠ Ġim . remove Processor ( ui Stage ) ĊĠĠĠĠĠĠĠ Ġim . remove Processor ( main Stage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġim Ġ= ĠG dx . input . input Processor Ġas ĠInput Multip lexer ĊĠĠĠĠĠĠĠ Ġim . add Processor ( this ) ĊĠĠĠĠĠĠĠ Ġim . add Processor ( ui Stage ) ĊĠĠĠĠĠĠĠ Ġim . add Processor ( main Stage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( dt : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Stage . act ( dt ); ĊĠĠĠĠĠĠĠ Ġui Stage . act ( dt ); ĊĊĠĠĠĠĠĠĠ Ġ// Ġclear Ġthe Ġscreen ĊĠĠĠĠĠĠĠ ĠG dx . gl . gl Clear Color ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 1 f ); ĊĠĠĠĠĠĠĠ ĠG dx . gl . gl Clear ( GL 2 0 . GL _ COLOR _ BUFFER _ BIT ); ĊĊĠĠĠĠĠĠĠ Ġ// Ġdraw Ġthe Ġgraphics ĊĠĠĠĠĠĠĠ Ġmain Stage . draw (); ĊĠĠĠĠĠĠĠ Ġui Stage . draw () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpause () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresume () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresize ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Up ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Moved ( screen X : ĠInt , Ġscreen Y : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Typed ( character : ĠChar ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsc rolled ( amount : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Up ( key code : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Drag ged ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Down ( key code : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Down ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠWorld Screen ( world Map Asset : ĠString ) Ġ: ĠBase Screen () Ġ{ ĊĊĠĠĠ Ġval Ġcontroller : ĠController ĊĊĠĠĠ Ġvar Ġl mb Pressed : ĠP ix I ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġr mb Pressed : ĠP ix I ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . controller Ġ= ĠController ( this , Ġworld Map Asset ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Down ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== ĠButtons . LEFT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl mb Pressed Ġ= ĠP ix I ( screen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== ĠButtons . RIGHT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr mb Pressed Ġ= ĠP ix I ( screen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . touch Down ( screen X , Ġscreen Y , Ġpointer , Ġbutton ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Up ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt , Ġbutton : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġl mb Pressed Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġr mb Pressed Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġworld Px Ġ= Ġscreen To World ( screen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠ Ġcontroller . mouse Click ( world Px , Ġbutton Ġ== ĠButtons . LEFT ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . touch Up ( screen X , Ġscreen Y , Ġpointer , Ġbutton ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtouch Drag ged ( screen X : ĠInt , Ġscreen Y : ĠInt , Ġpointer : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( l mb Pressed Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmove Vector Ġ= ĠP ix I (( screen X Ġ- Ġl mb Pressed !!. x ), Ġ( screen Y Ġ- Ġl mb Pressed !!. y )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl mb Pressed Ġ= ĠP ix I ( screen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . mouse Drag ged ( move Vector , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( r mb Pressed Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmove Vector Ġ= ĠP ix I (( screen X Ġ- Ġr mb Pressed !!. x ), Ġ( screen Y Ġ- Ġr mb Pressed !!. y )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr mb Pressed Ġ= ĠP ix I ( screen X , Ġscreen Y ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . mouse Drag ged ( move Vector , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . touch Drag ged ( screen X , Ġscreen Y , Ġpointer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Moved ( screen X : ĠInt , Ġscreen Y : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġcontroller . mouse Over ( screen To World ( screen X , Ġscreen Y )) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . mouse Moved ( screen X , Ġscreen Y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Down ( key code : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġcontroller . key Pressed ( key code ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . key Down ( key code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġscreen To World ( screen X : ĠInt , Ġscreen Y : ĠInt ): ĠP ix I Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvec Ġ= Ġmain Stage . camera . un project ( Vector 3 ( screen X . toFloat (), Ġscreen Y . toFloat (), Ġ 0 f )) ĊĠĠĠĠĠĠĠ Ġreturn ĠP ix I ( vec . x . toInt (), Ġvec . y . toInt ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ abstract Ġclass ĠBase Actor ( val Ġtexture : ĠTexture Region , Ġs : ĠStage ) Ġ: ĠActor () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġs . add Actor ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( batch : ĠBatch , Ġparent Alpha : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbatch . draw ( texture , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx , Ġy , Ġorigin X , Ġorigin Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , Ġheight , Ġscale X , Ġscale Y , Ġrotation ); ĊĠĠĠĠĠĠĠ Ġsuper . draw ( batch , Ġparent Alpha ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTile Actor ( texture : ĠTexture Region , Ġx : ĠFloat , Ġy : ĠFloat , Ġwidth : ĠFloat , Ġheight : ĠFloat , Ġs : ĠStage ) Ġ: ĠBase Actor ( texture , Ġs ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġheight ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠHighlight ( s : ĠStage ) Ġ: ĠBase Actor ( Texture Helper . load Texture (" highlight . png "), Ġs ) Ġ{ ĊĠĠĠ Ġvar Ġhex : ĠHex ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġ 3 2 f ĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġ 3 0 f ĊĠĠĠĠĠĠĠ Ġthis . isVisible Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠPath Highlight ( s : ĠStage ) Ġ: ĠBase Actor ( Texture Helper . load Texture (" highlight . png "), Ġs ) Ġ{ ĊĠĠĠ Ġvar Ġpath : ĠList < Pix F > Ġ= ĠArrayList () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġ 3 2 f ĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġ 3 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( batch : ĠBatch , Ġparent Alpha : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpath . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbatch . draw ( texture , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . x , Ġit . y , Ġorigin X , Ġorigin Y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , Ġheight , Ġscale X , Ġscale Y , Ġrotation ); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUnit Highlight ( s : ĠStage ) Ġ: ĠBase Actor ( Texture Helper . load Texture (" unit - highlight . png "), Ġs ) Ġ{ ĊĠĠĠ Ġvar Ġunit : ĠUnit ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġ 3 2 f ĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġ 3 0 f ĊĠĠĠĠĠĠĠ Ġthis . isVisible Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUnit ( val Ġmap : ĠLevel Map , Ġposition : ĠO dd Q , Ġs : ĠStage ) Ġ: ĠBase Actor ( Texture Helper . load Texture (" unit . png "), Ġs ) Ġ{ ĊĠĠĠ Ġvar Ġodd Q : ĠO dd Q Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġset ( new Position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġnew Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ= Ġmap . odd Q To Pix F [ new Position ] !!. x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy Ġ= Ġmap . odd Q To Pix F [ new Position ] !!. y ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġ 3 2 f ĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġ 3 0 f ĊĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġmap . odd Q To Pix F [ position ] !!. x ĊĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġmap . odd Q To Pix F [ position ] !!. y ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠController ( val Ġbase Screen : ĠBase Screen , Ġworld Map Asset : ĠString ) Ġ{ ĊĊĠĠĠ Ġval Ġlevel Map : ĠLevel Map ĊĠĠĠ Ġval Ġhighlight : ĠHighlight ĊĠĠĠ Ġval Ġpath Highlight : ĠPath Highlight ĊĠĠĠ Ġval Ġunit Highlight : ĠUnit Highlight ĊĠĠĠ Ġval Ġunits Ġ= ĠArrayList < Unit >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . level Map Ġ= ĠMap Reader . read Map ( world Map Asset ) ĊĠĠĠĠĠĠĠ Ġthis . level Map . terrain . forEach Ġ{ Ġ( odd Q , Ġhex ) Ġ-> ĠTile Actor ( hex . tile . texture , Ġhex . pix F . x , Ġhex . pix F . y , Ġhex . tile . texture Width . toFloat (), Ġhex . tile . texture Height . toFloat (), Ġbase Screen . main Stage ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . highlight Ġ= ĠHighlight ( base Screen . main Stage ) ĊĠĠĠĠĠĠĠ Ġthis . path Highlight Ġ= ĠPath Highlight ( base Screen . main Stage ) ĊĠĠĠĠĠĠĠ Ġthis . unit Highlight Ġ= ĠUnit Highlight ( base Screen . main Stage ) ĊĠĠĠĠĠĠĠ Ġthis . units . add ( Unit ( this . level Map , ĠO dd Q ( 1 , Ġ 1 ), Ġbase Screen . main Stage )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkey Pressed ( key code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( key code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput . Keys . ESCAPE Ġ-> ĠG dx . app . exit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmouse Over ( world Px : ĠP ix I ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . highlight . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġhighlight . hex Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġlevel Map . world To Hex [ world Px ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight . hex Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight . x Ġ= Ġit . pix F . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight . y Ġ= Ġit . pix F . y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight . isVisible Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġshow Ġpath Ġif Ġunit Ġis Ġselected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( unit Highlight . unit Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġunit Highlight . unit !!. odd Q . path ( level Map . terrain , Ġhighlight . hex !!. odd Q ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Highlight . path Ġ= Ġto Pix F ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto Pix F ( path : ĠList < Odd Q >): ĠList < Pix F > Ġ= Ġpath . map Ġ{ Ġthis . level Map . odd Q To Pix F [ it ] !! Ġ} ĊĊĠĠĠ Ġfun Ġmouse Click ( world Px : ĠP ix I , Ġl mb : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlevel Map . world To Hex [ world Px ]?. let Ġ{ Ġhex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġunit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunit Ġ= Ġunits . first OrNull Ġ{ Ġit . odd Q Ġ== Ġhex . odd Q Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( l mb Ġ&& Ġunit Ġ!= Ġnull Ġ&& Ġunit Highlight . unit Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . unit Ġ= Ġunit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . x Ġ= Ġlevel Map . odd Q To Pix F [ unit . odd Q ] !!. x ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . y Ġ= Ġlevel Map . odd Q To Pix F [ unit . odd Q ] !!. y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( l mb Ġ&& Ġunit Highlight . unit Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmove Ġunit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . unit !!. odd Q Ġ= Ġhex . odd Q ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . unit Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Highlight . path Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Highlight . unit Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Highlight . path Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmouse Drag ged ( move Vector : ĠP ix I , Ġl mb : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! l mb ) Ġ{ Ġ// Ġr mb ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Screen . main Stage . camera . position . x Ġ= Ġbase Screen . main Stage . camera . position . x Ġ- Ġmove Vector . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Screen . main Stage . camera . position . y Ġ= Ġbase Screen . main Stage . camera . position . y Ġ+ Ġmove Vector . y ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Screen . main Stage . camera . update () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }