package Ġcom . ly ee ed ar . Game Ċ Ċ import Ġcom . badlogic . ash ley . core . Entity Ċ import Ġcom . ly ee ed ar . Components . is Al lies Ċ import Ġcom . ly ee ed ar . Components . oc clude s Ċ import Ġcom . ly ee ed ar . Components . pos Ċ import Ġcom . ly ee ed ar . Components . trailing Entity Ċ import Ġcom . ly ee ed ar . Direction Ċ import Ġcom . ly ee ed ar . Path finding . I Path finding Tile Ċ import Ġcom . ly ee ed ar . Render ables . Sprite . Sprite Wrapper Ċ import Ġcom . ly ee ed ar . Space Slot Ċ import Ġcom . ly ee ed ar . Util . Asset Manager Ċ import Ġcom . ly ee ed ar . Util . Colour Ċ import Ġcom . ly ee ed ar . Util . Fast Enum Map Ċ import Ġcom . ly ee ed ar . Util . Point Ċ Ċ class ĠTile ( x : ĠInt Ġ= Ġ 0 , Ġy : ĠInt Ġ= Ġ 0 ) Ġ: ĠPoint ( x , Ġy ), ĠI Path finding Tile Ċ { Ċ ĉ late init Ġvar Ġlevel : ĠLevel ĊĊ ĉ val Ġcontents : ĠFast Enum Map < Space Slot , ĠEntity > Ġ= ĠFast Enum Map ( ĠSpace Slot :: class . java Ġ) ĊĊ ĉ val Ġne ighbours : ĠFast Enum Map < Direction , ĠTile > Ġ= ĠFast Enum Map ( Direction :: class . java ) ĊĊ ĉ var Ġsprite : ĠSprite Wrapper ? Ġ= Ġnull ĊĊ ĉ var ĠisValid Target Ġ= Ġfalse Ċ ĉ var ĠisValid Hit Point Ġ= Ġfalse Ċ ĉ var Ġis Selected Point Ġ= Ġfalse ĊĊ ĉ init Ċ ĉ { Ċĉ ĉ sprite Ġ= ĠSprite Wrapper () Ċĉ ĉ sprite !!. sprite Ġ= ĠAsset Manager . load Sprite (" white ", Ġcolour Ġ= ĠColour . LIGHT _ GRAY ) Ċ ĉ } ĊĊ ĉ fun Ġfirst Entity (): ĠEntity ? Ċ ĉ { Ċĉ ĉ for Ġ( slot Ġin ĠSpace Slot . Entity Values ) Ċĉ ĉ { Ċĉĉ ĉ val Ġentity Ġ= Ġcontents [ slot ] Ġ?: Ġcontinue Ċĉĉ ĉ return Ġentity Ċĉ ĉ } ĊĊĉ ĉ return Ġnull Ċ ĉ } ĊĊ ĉ override Ġfun Ġget In fluence ( travel Type : ĠSpace Slot , Ġself : ĠAny ?) Ġ= Ġ 0 ĊĊ ĉ override Ġfun Ġget Pass able ( travel Type : ĠSpace Slot , Ġself : ĠAny ?): ĠBoolean Ċ ĉ { Ċĉ ĉ if Ġ( travel Type Ġ== ĠSpace Slot . LIGHT ) Ċĉ ĉ { Ċĉĉ ĉ for Ġ( slot Ġin ĠSpace Slot . Values ) Ċĉĉ ĉ { Ċĉĉĉ ĉ val Ġobj Ġ= Ġcontents . get ( slot ) Ċĉĉĉ ĉ if Ġ( obj Ġ!= Ġnull Ġ&& Ġobj Ġ!= Ġself ) Ċĉĉĉ ĉ { Ċĉĉĉĉ ĉ val Ġoc clude s Ġ= Ġobj . oc clude s () Ċĉĉĉĉ ĉ if Ġ( oc clude s Ġ!= Ġnull ) Ċĉĉĉĉ ĉ { Ċĉĉĉĉĉ ĉ if Ġ( oc clude s . oc clude s ) Ġreturn Ġfalse Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ else Ġif Ġ( slot Ġ== ĠSpace Slot . WALL ) Ċĉĉĉĉ ĉ { Ċĉĉĉĉĉ ĉ return Ġfalse Ċĉĉĉĉ ĉ } Ċĉĉĉ ĉ } Ċĉĉ ĉ } ĊĊĉĉ ĉ return Ġtrue Ċĉ ĉ } Ċĉ ĉ else Ċĉ ĉ { Ċĉĉ ĉ if Ġ( contents . get ( Space Slot . WALL ) Ġ!= Ġnull ) Ġ{ Ġreturn Ġfalse ; Ġ} ĊĊĉĉ ĉ val Ġobj Ġ= Ġcontents . get ( travel Type ) Ċĉĉ ĉ if Ġ( obj Ġ!= Ġnull Ġ&& Ġobj Ġ!= Ġself ) Ċĉĉ ĉ { Ċĉĉĉ ĉ if Ġ( self Ġis ĠEntity ) Ċĉĉĉ ĉ { Ċĉĉĉĉ ĉ if Ġ( self . is Al lies ( obj ) Ġ&& Ġobj . pos (). turn s On Tile Ġ< Ġ 1 ) Ċĉĉĉĉ ĉ { Ċĉĉĉĉĉ ĉ return Ġtrue Ċĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ else Ġif Ġ( self . trailing Entity ()?. entities ?. contains ( obj ) Ġ== Ġtrue ) Ċĉĉĉĉ ĉ { Ċĉĉĉĉĉ ĉ return Ġtrue Ċĉĉĉĉ ĉ } Ċĉĉĉ ĉ } ĊĊĉĉĉ ĉ return Ġfalse Ċĉĉ ĉ } ĊĊĉĉ ĉ return Ġtrue Ċĉ ĉ } Ċ ĉ } Ċ }