package Ġactor Ċ Ċ import Ġcom . so y wiz . k orge . dragon bones . K orge Db Arm ature Display Ċ import Ġcom . so y wiz . k orge . view . Container Ċ import Ġevent Controller .* Ċ import Ġf sm . StateManager Ċ import Ġf sm . State User Ċ import Ġf sm . declare State Ċ import Ġf sm . use States Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġphys ic . internal . Physics Ċ Ċ /** Ċ Ġ* ĠA ĠMoving Actor Ġis Ġan Ġ[ Actor ] Ġwhich Ġcan Ġmove Ġon Ġscreen Ġand Ġhave Ġstates Ċ Ġ* Ġ@ param Ġscope ĠThe Ġcurrent Ġscope Ġwhere Ġthe Ġactor Ġis Ġinitialized ; Ġused Ġfor Ġthe Ġ[ EventBus ] Ċ Ġ* Ġ@ param Ġactor Xml Data ĠThe Ġdata Ġread Ġby Ġ[ read Character Xml Data ] Ċ Ġ*/ Ċ abstract Ġclass ĠMoving Actor ( parent : ĠContainer , Ġval Ġscope : ĠCor outine Scope , Ġval Ġactor Xml Data : ĠActor Xml Data ): ĠActor ( parent ), ĠState User Ġ{ ĊĊĠĠĠ Ġval Ġmax Speed : ĠDouble Ġ= Ġactor Xml Data . movement Speed ĊĠĠĠ Ġval Ġx Speed Step : ĠDouble Ġ= Ġ 0 . 2 ĊĠĠĠ Ġval Ġgravity : ĠDouble Ġ= Ġ 0 . 1 5 ĊĊĠĠĠ Ġval Ġactor Name : ĠString Ġ= Ġactor Xml Data . name ĊĠĠĠ Ġval Ġdb Name : ĠString Ġ= Ġactor Xml Data . dbName ĊĠĠĠ Ġval Ġskeleton Json File : ĠString Ġ= Ġactor Xml Data . skeleton Json File ĊĠĠĠ Ġval Ġtexture Json File : ĠString Ġ= Ġactor Xml Data . texture Json File ĊĠĠĠ Ġval Ġimage File : ĠString Ġ= Ġactor Xml Data . image File ĊĠĠĠ Ġvar Ġhealth points : ĠDouble Ġ= Ġactor Xml Data . health points ĊĠĠĠ Ġvar Ġdirection : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġval Ġnormal Attack : ĠAttack Ġ= Ġactor Xml Data . normal Attack ĊĠĠĠ Ġval Ġrange d Attack : ĠAttack Ġ= Ġactor Xml Data . range d Attack ĊĠĠĠ Ġval Ġspecial Attack : ĠAttack Ġ= Ġactor Xml Data . special Attack ĊĊĠĠĠ Ġvar Ġget Damage Cooldown : ĠInt Ġ= Ġ 1 2 0 ĊĊĠĠĠ Ġvar Ġbase Line : ĠDouble Ġ= Ġthis . y Ġ+ Ġthis . height ĊĊĠĠĠ Ġabstract Ġval Ġmodel : ĠK orge Db Arm ature Display ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialize Ġall Ġevents Ġwhich Ġare Ġused Ġin Ġthis Ġ[ Moving Actor ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġinit Events () ĊĊĠĠĠ Ġ/** ĠEnables Ġphys ic . get Physics Ġand Ġapply Ġgravity ĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġenable Physics () ĊĠĠĠ Ġ/** ĠDisable Ġphys ic . get Physics Ġand Ġdisable Ġgravity ĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġdisable Physics () ĊĊĠĠĠ Ġfun Ġreset Y Physics () Ġ{ ĊĠĠĠĠĠĠĠ Ġvelocity . y Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġlast Velocity . y Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġlast Position . y Ġ= Ġposition . y ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset X Physics () Ġ{ ĊĠĠĠĠĠĠĠ Ġvelocity . x Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġlast Velocity . x Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġlast Position . x Ġ= Ġposition . x ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Animation ( name : ĠString , Ġtimes : ĠInt , Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel . animation . play ( name , Ġtimes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Collision Ġcallbacks , Ġtriggered Ġby Ġevents ĊĠĠĠ Ġabstract Ġfun Ġon Player Collision ( physics Other : ĠPhysics ) ĊĠĠĠ Ġabstract Ġfun Ġon Enemy Collision ( physics Other : ĠPhysics ) ĊĠĠĠ Ġabstract Ġfun Ġon Ground Collision () ĊĠĠĠ Ġabstract Ġfun Ġon Platform Collision ( platform : ĠPhysics ) ĊĠĠĠ Ġabstract Ġfun Ġon Normal Attack Collision ( damage : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġon Range d Attack Collision ( damage : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġon Special Attack Collision ( damage : ĠDouble ) ĊĊĠĠĠ Ġ/** ĠInit il ize Ġthe Ġ[ StateManager ] ĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġmanager : ĠState Manager Ġ= Ġuse States () ĊĊĠĠĠ Ġ// init Ġstates Ġand Ġpass Ġin Ġthe Ġfunctions Ġfor Ġon Begin , Ġon Execute Ġand Ġon End ĊĠĠĠ Ġval Ġidle State Ġ= Ġdeclare State ({ Ġbegin State _ idle () Ġ}, Ġ{ Ġexecute State _ idle ( it ) Ġ}, Ġ{ Ġend State _ idle () Ġ}) ĊĠĠĠ Ġval Ġwalk State Ġ= Ġdeclare State ({ Ġbegin State _ walk () Ġ}, Ġ{ Ġexecute State _ walk ( it ) Ġ}, Ġ{ Ġend State _ walk () Ġ}) ĊĠĠĠ Ġval Ġturn State Ġ= Ġdeclare State ({ Ġbegin State _ turn () Ġ}, Ġ{ Ġexecute State _ turn ( it ) Ġ}, Ġ{ Ġend State _ turn () Ġ}) ĊĠĠĠ Ġval Ġjump State Ġ= Ġdeclare State ({ Ġbegin State _ jump () Ġ}, Ġ{ Ġexecute State _ jump ( it ) Ġ}, Ġ{ Ġend State _ jump () Ġ}) ĊĠĠĠ Ġval Ġdie State Ġ= Ġdeclare State ({ Ġbegin State _ die () Ġ}, Ġ{ Ġexecute State _ die ( it ) Ġ}, Ġ{ Ġend State _ die () Ġ}) ĊĠĠĠ Ġval Ġnormal Attack State Ġ= Ġdeclare State ({ Ġbegin State _ normal Attack () Ġ}, Ġ{ Ġexecute State _ normal Attack ( it ) Ġ}, Ġ{ Ġend State _ normal Attack () Ġ}) ĊĠĠĠ Ġval Ġrange d Attack State Ġ= Ġdeclare State ({ Ġbegin State _ range d Attack () Ġ}, Ġ{ Ġexecute State _ range d Attack ( it ) Ġ}, Ġ{ Ġend State _ range d Attack () Ġ}) ĊĠĠĠ Ġval Ġspecial Attack State Ġ= Ġdeclare State ({ Ġbegin State _ special Attack () Ġ}, Ġ{ Ġexecute State _ special Attack ( it ) Ġ}, Ġ{ Ġend State _ special Attack () Ġ}) ĊĠĠĠ Ġval Ġget Damage State Ġ= Ġdeclare State ({ Ġbegin State _ get Damage () Ġ}, Ġ{ Ġexecute State _ get Damage ( it ) Ġ}, Ġ{ Ġend State _ get Damage () Ġ}) ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAll Ġstate - functions Ġare Ġlisted Ġhere . ĠThey Ġhave Ġto Ġbe Ġoverridden Ġin Ġsubclasses ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ idle () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ idle ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ idle () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ walk () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ walk ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ walk () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ turn () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ turn ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ turn () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ jump () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ jump ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ jump () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ die () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ die ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ die () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ normal Attack () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ normal Attack ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ normal Attack () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ range d Attack () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ range d Attack ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ range d Attack () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ special Attack () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ special Attack ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ special Attack () ĊĠĠĠ Ġabstract Ġfun Ġbegin State _ get Damage () ĊĠĠĠ Ġabstract Ġfun Ġexecute State _ get Damage ( dt : ĠDouble ) ĊĠĠĠ Ġabstract Ġfun Ġend State _ get Damage () Ċ } Ċ