package Ġcom . game . qu illy jump er . screen Ċ Ċ import Ġbox 2 d Light . Ray Handler Ċ import Ġcom . badlogic . ash ley . core . Engine Ċ import Ġcom . badlogic . ash ley . core . Entity Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . badlogic . gdx . Input Ċ import Ġcom . badlogic . gdx . assets . Asset Manager Ċ import Ġcom . badlogic . gdx . graphics . Or tho graphic Camera Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Sprite Batch Ċ import Ġcom . badlogic . gdx . maps . t iled . render ers . Or thogonal T iled Map Renderer Ċ import Ġcom . badlogic . gdx . physics . box 2 d . Box 2 D Debug Renderer Ċ import Ġcom . badlogic . gdx . physics . box 2 d . World Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Stage Ċ import Ġcom . badlogic . gdx . utils . viewport . Fit Viewport Ċ import Ġcom . game . qu illy jump er . Shader Programs Ċ import Ġcom . game . qu illy jump er . audio . Audio Service Ċ import Ġcom . game . qu illy jump er . character Configurations Ċ import Ġcom . game . qu illy jump er . configuration . Character Ċ import Ġcom . game . qu illy jump er . configuration . Item Ċ import Ġcom . game . qu illy jump er . configuration . Item Configurations Ċ import Ġcom . game . qu illy jump er . configuration . item Configurations Ċ import Ġcom . game . qu illy jump er . ecs . character Ċ import Ġcom . game . qu illy jump er . ecs . component . Camera Lock Component Ċ import Ġcom . game . qu illy jump er . ecs . component . Player Component Ċ import Ġcom . game . qu illy jump er . ecs . system .* Ċ import Ġcom . game . qu illy jump er . event . Game EventListener Ċ import Ġcom . game . qu illy jump er . event . Game Event Manager Ċ import Ġcom . game . qu illy jump er . event . Key Ċ import Ġcom . game . qu illy jump er . input . Input Listener Ċ import Ġcom . game . qu illy jump er . map . Map Manager Ċ import Ġcom . game . qu illy jump er . map . Map Type Ċ import Ġk tx . app . K tx Game Ċ import Ġk tx . app . K tx Screen Ċ import Ġk tx . ash ley . all Of Ċ import Ġk tx . ash ley . get Ċ Ċ class ĠGame Screen ( ĊĠĠĠ Ġprivate Ġval Ġgame : ĠK tx Game < K tx Screen >, ĊĠĠĠ Ġprivate Ġval Ġassets : ĠAsset Manager , ĊĠĠĠ Ġprivate Ġval Ġgame Event Manager : ĠGame Event Manager , ĊĠĠĠ Ġprivate Ġval Ġaudio Service : ĠAudio Service , ĊĠĠĠ Ġprivate Ġval Ġworld : ĠWorld , ĊĠĠĠ Ġprivate Ġval Ġengine : ĠEngine , ĊĠĠĠ Ġprivate Ġval Ġray Handler : ĠRay Handler , ĊĠĠĠ Ġprivate Ġval Ġshader Programs : ĠShader Programs , ĊĠĠĠ Ġprivate Ġval Ġbatch : ĠSprite Batch , ĊĠĠĠ Ġprivate Ġval Ġmap Renderer : ĠOr thogonal T iled Map Renderer , ĊĠĠĠ Ġprivate Ġval Ġbox 2 D Debug Renderer : ĠBox 2 D Debug Renderer , ĊĠĠĠ Ġprivate Ġval Ġstage : ĠStage Ċ ) Ġ: ĠK tx Screen , ĠInput Listener , ĠGame EventListener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcharacter Cfg Cache Ġ= ĠG dx . app . character Configurations ĊĠĠĠ Ġprivate Ġval Ġitem Cfg Cache Ġ= Ġinit Item Configurations ( assets ) ĊĠĠĠ Ġprivate Ġval Ġviewport Ġ= ĠFit Viewport ( 1 6 f , Ġ 9 f ) ĊĠĠĠ Ġprivate Ġval Ġplayer Entities Ġ= Ġengine . get Entities For ( all Of ( Player Component :: class ). get ()) ĊĠĠĠ Ġprivate Ġval Ġmap Manager Ġ= ĊĠĠĠĠĠĠĠ ĠMap Manager ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworld , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġray Handler , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Cfg Cache , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Cfg Cache , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer Entities , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Event Manager ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( engine . systems . size () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġinitialize Ġengine ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Trigger System ( game Event Manager )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Phys ic Move System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Phys ic Jump System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Ability System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Attack System ( world )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Deal Damage System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Take Damage System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Death System ( audio Service , Ġgame Event Manager )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġout Ġof Ġbounds Ġsystem Ġmust Ġbe Ġbefore ĠPh ys ic System Ġbecause Ġit Ġdeals Ġdamage Ġto Ġthe Ġplayer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġand Ġin Ġorder Ġfor Ġthe ĠTake Damage System Ġto Ġshow Ġthe Ġdamage Ġindicator Ġat Ġthe Ġcorrect Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe Ġneed Ġto Ġrun Ġthrough Ġthe ĠPh ys ic System Ġonce Ġto Ġupdate Ġthe ĠTransform Component Ġaccordingly ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( OutOfBounds System ( game Event Manager )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġplayer Ġcollision Ġsystem Ġmust Ġbe Ġbefore ĠPh ys ic System Ġbecause Ġwhenever Ġthe Ġplayer Ġcol lide s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwith Ġa Ġportal Ġthen Ġits Ġbody Ġlocation Ġgets Ġtransformed Ġand Ġwe Ġneed Ġthe Ġphys ic Ġsystem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġto Ġcorrectly Ġupdate Ġthe ĠTransform Component Ġwhich Ġis Ġe . g . Ġused Ġin Ġthe ĠOut Of Bounds System ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Player Collision System ( map Manager , Ġaudio Service , Ġgame Event Manager )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Phys ic System ( world , Ġthis )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Player Input System ( game Event Manager , Ġthis )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( State System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Animation System ( assets , Ġaudio Service )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Camera System ( this , Ġviewport . camera Ġas ĠOr tho graphic Camera )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Particle System ( assets , Ġaudio Service )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Fade System ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Render System ( this , Ġbatch , Ġviewport , Ġmap Renderer , Ġshader Programs )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Render Phys ic Debug System ( world , Ġviewport , Ġbox 2 D Debug Renderer )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Light System ( ray Handler , Ġviewport . camera Ġas ĠOr tho graphic Camera )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Floating Text System ( batch , Ġviewport , Ġstage . viewport )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd System ( Remove System ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcreate Ġplayer Ġentity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcharacter Cfg Cache [ Character . PLAYER ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworld , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith < Player Component >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith < Camera Lock Component >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġgame Ġscreen Ġas Ġinput Ġlistener Ġto Ġreact Ġwhen Ġthe Ġplayer Ġwants Ġto Ġquit Ġthe Ġgame Ġ(= exit Ġkey Ġpressed ) ĊĠĠĠĠĠĠĠ Ġgame Event Manager . add Input Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd ĠRender System Ġas ĠMap ChangeListener Ġto Ġupdate Ġthe Ġmap Renderer Ġwhenever Ġthe Ġmap Ġchanges ĊĠĠĠĠĠĠĠ Ġgame Event Manager . add Map ChangeListener ( engine . getSystem ( Render System :: class . java )) ĊĠĠĠĠĠĠĠ Ġ// Ġadd ĠCamera System Ġas ĠMap ChangeListener Ġto Ġupdate Ġthe Ġcamera Ġboundaries Ġwhenever Ġthe Ġmap Ġchanges ĊĠĠĠĠĠĠĠ Ġgame Event Manager . add Map ChangeListener ( engine . getSystem ( Camera System :: class . java )) ĊĠĠĠĠĠĠĠ Ġ// Ġadd ĠAudio Service Ġas ĠMap ChangeListener Ġto Ġplay Ġthe Ġmusic Ġof Ġthe Ġmap Ġwhenever Ġit Ġgets Ġchanged ĊĠĠĠĠĠĠĠ Ġgame Event Manager . add Map ChangeListener ( audio Service ) ĊĠĠĠĠĠĠĠ Ġ// Ġadd ĠOut Of Bounds System Ġas ĠMap ChangeListener Ġto Ġupdate Ġthe Ġboundaries Ġof Ġthe Ġworld Ġwhen ver Ġthe Ġmap Ġchanges ĊĠĠĠĠĠĠĠ Ġgame Event Manager . add Map ChangeListener ( engine . getSystem ( OutOfBounds System :: class . java )) ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġinitial Ġmap ĊĠĠĠĠĠĠĠ Ġmap Manager . set Map ( Map Type . MAP 1 ) ĊĠĠĠĠĠĠĠ Ġ// Ġscreen Ġneeds Ġto Ġbe Ġan Ġevent Ġlistener Ġto Ġswitch Ġto Ġgame Ġover Ġscreen Ġwhen Ġplayer Ġdies ĊĠĠĠĠĠĠĠ Ġgame Event Manager . add Game EventListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġgame Event Manager . remove Input Listener ( this ) ĊĠĠĠĠĠĠĠ Ġgame Event Manager . remove Map ChangeListener ( engine . getSystem ( Render System :: class . java )) ĊĠĠĠĠĠĠĠ Ġgame Event Manager . remove Map ChangeListener ( engine . getSystem ( Camera System :: class . java )) ĊĠĠĠĠĠĠĠ Ġgame Event Manager . remove Map ChangeListener ( audio Service ) ĊĠĠĠĠĠĠĠ Ġgame Event Manager . remove Map ChangeListener ( engine . getSystem ( OutOfBounds System :: class . java )) ĊĠĠĠĠĠĠĠ Ġgame Event Manager . remove Game EventListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġresize ( width : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstage . viewport . update ( width , Ġheight , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( width Ġ!= Ġstage . viewport . screen Width Ġ|| Ġheight Ġ!= Ġstage . viewport . screen Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġray Handler . resize F BO ( width Ġ/ Ġ 4 , Ġheight Ġ/ Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġviewport . update ( width , Ġheight , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġray Handler . use Custom Viewport ( viewport . screen X , Ġviewport . screen Y , Ġviewport . screen Width , Ġviewport . screen Height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( delta : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġremove Ġdebug Ġstuff ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . input . is Key Just Pressed ( Input . Keys . NUM _ 1 ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġengine . getSystem ( Render System :: class . java ). set Normal Color () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . input . is Key Just Pressed ( Input . Keys . NUM _ 2 ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġengine . getSystem ( Render System :: class . java ). set Gray Scale () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . input . is Key Just Pressed ( Input . Keys . NUM _ 3 ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġengine . getSystem ( Render System :: class . java ). set Sep ia () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġupdate Ġall Ġe cs Ġengine Ġsystems Ġincluding Ġthe Ġrender Ġsystem Ġwhich Ġdraw s Ġstuff Ġon Ġthe Ġscreen ĊĠĠĠĠĠĠĠ Ġengine . update ( delta ) ĊĠĠĠĠĠĠĠ Ġ// Ġupdate Ġaudio Ġmanager Ġto Ġplay Ġany Ġqueued Ġsound Ġeffects ĊĠĠĠĠĠĠĠ Ġaudio Service . update () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġkey Pressed ( key : ĠKey ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( key Ġ== ĠKey . EXIT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġplayer Ġpressed Ġexit Ġkey Ġ-> Ġgo Ġback Ġto Ġmenu ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . set Screen < Menu Screen >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Item Configurations ( assets : ĠAsset Manager ): ĠItem Configurations Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Configurations ( assets ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcfg ( Item . P OT ION _ GAIN _ LI FE , Ġ" p otion _ green _ plus ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlife Bonus Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcfg ( Item . P OT ION _ GAIN _ MAN A , Ġ" p otion _ blue _ plus ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġman a Bonus Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcharacter Death ( character : ĠEntity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( character [ Player Component . mapper ] Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . set Screen < End Screen >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ