package Ġcom . b applications . map le mobile . game play . model _ pools Ċ Ċ import Ġcom . b applications . map le mobile . utils . Static Utils Ċ import Ġcom . b applications . map le mobile . const at ns . Loaded Ċ import Ġcom . b applications . map le mobile . game play . audio . Sound Ċ import Ġcom . b applications . map le mobile . game play . map . map _ objects . mo bs . Mob Ċ import Ġcom . b applications . map le mobile . pk gn x . NX Node Ċ import Ġjava . util .* Ċ Ċ class ĠMob Model ( val Ġid : ĠInt ){ ĊĠĠĠ Ġvar Ġanimations Ġ= ĠEnum Map < Mob . St ance , ĠAnimation Model >( Mob . St ance :: class . java ) ĊĊĠĠĠ Ġvar Ġname : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġhit sound : ĠSound ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdies ound : ĠSound ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġlevel : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġspeed Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġfly speed Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġw atk : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġmat k : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġw def : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġm def : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġaccuracy : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġavoid : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġkn ock back : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġun dead Ġ= Ġfalse ĊĠĠĠ Ġvar Ġtouch damage Ġ= Ġfalse ĊĠĠĠ Ġvar Ġn of lip Ġ= Ġfalse ĊĠĠĠ Ġvar Ġnot attack Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcan move Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcan jump Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcan fly Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr id Ġ= ĠStatic Utils . extend Id ( id , Ġ 7 ) ĊĠĠĠĠĠĠĠ Ġval Ġsrc Ġ= ĠLoaded . getFile ( Loaded . Wz FileName . MOB ). root . getChild < NX Node >(" $ str id . img ") ĊĠĠĠĠĠĠĠ Ġval Ġlinked Nodes : ĠNX Node ĊĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġsrc . getChild < NX Node >(" info ") ĊĊĠĠĠĠĠĠĠ Ġlevel Ġ= Ġinfo . getChild < NX Node >(" level "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġw atk Ġ= Ġinfo . getChild < NX Node >(" PAD amage "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġmat k Ġ= Ġinfo . getChild < NX Node >(" M AD amage "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġw def Ġ= Ġinfo . getChild < NX Node >(" P DD amage "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġm def Ġ= Ġinfo . getChild < NX Node >(" M DD amage "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġaccuracy Ġ= Ġinfo . getChild < NX Node >(" acc "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġavoid Ġ= Ġinfo . getChild < NX Node >(" ev a "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġkn ock back Ġ= Ġinfo . getChild < NX Node >(" pus hed "). get ( 0 L ). to Short () ĊĠĠĠĠĠĠĠ Ġspeed Ġ= Ġinfo . getChild < NX Node >(" speed "). get ( 0 L ). toFloat () ĊĠĠĠĠĠĠĠ Ġfly speed Ġ= Ġinfo . getChild < NX Node >(" fly Speed "). get ( 0 L ). toFloat () ĊĠĠĠĠĠĠĠ Ġtouch damage Ġ= Ġinfo . getChild < NX Node >(" body Attack "). get ( 0 L ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġun dead Ġ= Ġinfo . getChild < NX Node >(" un dead "). get ( 0 L ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġn of lip Ġ= Ġinfo . getChild < NX Node >(" no Flip "). get ( 0 L ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġnot attack Ġ= Ġinfo . getChild < NX Node >(" not Attack "). get ( 0 L ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġcan jump Ġ= Ġsrc . is Child Exist (" jump ") ĊĊĠĠĠĠĠĠĠ Ġlinked Nodes Ġ= Ġif Ġ( info . is Child Exist (" link ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoaded . getFile ( Loaded . Wz FileName . MOB ). root . getChild ( info . getChild < NX Node >(" link "). get (" "). toString () Ġ+ Ġ". img ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcan fly Ġ= Ġlinked Nodes . is Child Exist (" fly ") ĊĠĠĠĠĠĠĠ Ġcan move Ġ= Ġlinked Nodes . is Child Exist (" move ") Ġ|| Ġcan fly ĊĊĠĠĠĠĠĠĠ Ġif Ġ( can fly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . STAND , Ġlinked Nodes . getChild < NX Node >(" fly ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . MOVE , Ġlinked Nodes . getChild < NX Node >(" fly ")) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . STAND , Ġlinked Nodes . getChild < NX Node >(" stand ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . MOVE , Ġlinked Nodes . getChild < NX Node >(" move ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . JUMP , Ġlinked Nodes . getChild < NX Node >(" jump ")) ĊĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . HIT , Ġlinked Nodes . getChild < NX Node >(" hit 1 ")) ĊĠĠĠĠĠĠĠ Ġput Animation ( Mob . St ance . DIE , Ġlinked Nodes . getChild < NX Node >(" die 1 ")) ĊĊĠĠĠĠĠĠĠ Ġname Ġ= ĠLoaded . getFile ( Loaded . Wz FileName . STRING ). root . getChild < NX Node >(" Mob . img "). getChild < NX Node >( id ). getChild < NX Node >(" name "). get < String >(" ") ĊĊĠĠĠĠĠĠĠ Ġval Ġsnd src Ġ= ĠLoaded . getFile ( Loaded . Wz FileName . SOUND ). root . getChild < NX Node >(" Mob . img "). getChild < NX Node >( str id ) ĊĊĠĠĠĠĠĠĠ Ġhit sound Ġ= ĠSound ( snd src . getChild < NX Node >(" Damage ")) ĊĠĠĠĠĠĠĠ Ġdies ound Ġ= ĠSound ( snd src . getChild < NX Node >(" Die ")) ĊĊĠĠĠĠĠĠĠ Ġspeed Ġ+= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġspeed Ġ*= Ġ 0 . 0 0 1 f ĊĊĠĠĠĠĠĠĠ Ġfly speed Ġ+= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġfly speed Ġ*= Ġ 0 . 0 0 0 5 f ĊĊĠĠĠĠĠĠĠ Ġfix Anim at ins () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput Animation ( stance : ĠMob . St ance , Ġsrc : ĠNX Node ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( src Ġ== Ġnull Ġ|| Ġsrc . is NotExist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanimations [ stance ] Ġ= ĠAnimation Model ( src ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġfix Anim at ins () Ġ{ ĊĠĠĠĠĠĠĠ Ġanimations . values . forEach ( Animation Model :: shift By Head ) ĊĠĠĠ Ġ} Ċ Ċ }