package Ġcom . le ha ine . game Ċ Ċ import Ġcom . le ha ine . ki wi . k orge . getBy Prefix Ċ import Ġcom . le ha ine . ki wi . k orge . getRandom By Prefix Ċ import Ġcom . le ha ine . ki wi . k orge . particle . Particle Ċ import Ġcom . le ha ine . ki wi . k orge . particle . Particle Simulator Ċ import Ġcom . le ha ine . ki wi . random Ċ import Ġcom . le ha ine . ki wi . random d Ċ import Ġcom . so y wiz . k lock . TimeSpan Ċ import Ġcom . so y wiz . k lock . seconds Ċ import Ġcom . so y wiz . k mem . um od Ċ import Ġcom . so y wiz . k orge . view . fast .* Ċ import Ġcom . so y wiz . kor im . bitmap . B mp Slice Ċ import Ġcom . so y wiz . kor im . color . Colors Ċ import Ġcom . so y wiz . kor im . color . RGBA Ċ import Ġkotlin . math . PI Ċ Ċ class ĠF x ( val Ġgame : ĠGame , Ġprivate Ġval Ġparticle Container : ĠFast Sprite Container ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġparticle Simulator Ġ= ĠParticle Simulator ( 2 0 4 8 ) ĊĠĠĠ Ġprivate Ġvar Ġframe Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġfun Ġalloc ( slice : ĠB mp Slice , Ġx : ĠDouble , Ġy : ĠDouble ) Ġ= Ġparticle Simulator . alloc ( particle Container , Ġslice , Ġx , Ġy ) ĊĊĠĠĠ Ġfun Ġupdate ( dt : ĠTimeSpan ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparticle Simulator . simulate ( dt , Ġgame . t mod ) ĊĠĠĠĠĠĠĠ Ġframe ++ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsleep y Zs ( x : ĠDouble , Ġy : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Z "), Ġ( x Ġ- Ġ 2 .. x Ġ+ Ġ 2 ). random (), Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 2 .. 0 . 4 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ- 0 . 2 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ 0 . 5 . seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠColors [" # ffe 3 5 8 "] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale Delta Ġ= Ġ( 0 . 0 0 4 .. 0 . 0 0 7 ). random () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġb room D ust ( x : ĠDouble , Ġy : ĠDouble , Ġdir : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 1 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġx , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 1 .. 0 . 3 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA (( 2 2 7 .. 2 4 7 ). random (), Ġ( 2 2 4 .. 2 4 4 ). random (), Ġ( 4 0 .. 6 0 ). random (), Ġ( 0 .. 2 5 5 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 0 . 1 5 .. 0 . 2 5 ). random () Ġ* Ġif Ġ( it Ġum od Ġ 2 Ġ== Ġ 0 ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ(- 1 .. 1 ). random d () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 0 . 2 5 .. 0 . 3 5 ). random (). seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . gravity Y Ġ= Ġ( 0 . 0 2 5 .. 0 . 0 4 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . on Update Ġ= Ġ:: hard Physics ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġp oof D ust ( x : ĠDouble , Ġy : ĠDouble , Ġcolor : ĠRGBA Ġ= ĠColors . RED ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 5 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġ(( x Ġ- Ġ 4 ) .. ( x Ġ+ Ġ 4 )). random (), Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 3 .. 0 . 5 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . r Ġ- Ġ 1 0 .. color . r Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . g Ġ- Ġ 1 0 .. color . g Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . b Ġ- Ġ 1 0 .. color . b Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 .. 2 5 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ(- 0 . 2 5 .. 0 . 0 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 0 . 2 5 .. 1 . 2 5 ). random () Ġ* Ġif Ġ( it Ġum od Ġ 2 Ġ== Ġ 0 ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . f riction X Ġ= Ġ 0 . 9 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . rotation Delta Ġ= Ġ( 0 . 0 .. ( PI Ġ* Ġ 2 )). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale Delta Ġ= Ġ-( 0 . 0 0 2 5 .. 0 . 0 0 4 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 1 . 0 .. 1 . 2 5 ). random (). seconds ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun D ust ( x : ĠDouble , Ġy : ĠDouble , Ġdir : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġx , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 0 5 .. 0 . 1 5 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠColors [" # ef ddc 0 "] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 0 . 2 5 .. 0 . 7 5 ). random () Ġ* Ġdir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ-( 0 . 0 5 .. 0 . 1 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 0 . 0 5 .. 0 . 1 5 ). random (). seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale Delta Ġ= Ġ( 0 . 0 0 5 .. 0 . 0 1 5 ). random () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġboss Death ( x : ĠDouble , Ġy : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠColors [" # 3 d 3 a 4 5 "] ĊĠĠĠĠĠĠĠ Ġcreate ( 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġ(( x Ġ- Ġ 4 ) .. ( x Ġ+ Ġ 4 )). random (), Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 5 .. 0 . 7 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . r Ġ- Ġ 1 0 .. color . r Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . g Ġ- Ġ 1 0 .. color . g Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . b Ġ- Ġ 1 0 .. color . b Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 2 0 0 .. 2 5 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ(- 0 . 8 5 .. 0 . 0 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 0 . 4 5 .. 1 . 4 5 ). random () Ġ* Ġif Ġ( it Ġum od Ġ 2 Ġ== Ġ 0 ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . f riction X Ġ= Ġ 0 . 9 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . rotation Delta Ġ= Ġ( 0 . 0 .. ( PI Ġ* Ġ 2 )). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale Delta Ġ= Ġ-( 0 . 0 0 2 5 .. 0 . 0 0 4 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 1 . 5 .. 2 . 0 ). random (). seconds ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġboss D ust ( x : ĠDouble , Ġy : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠColors [" # 3 d 3 a 4 5 "] ĊĠĠĠĠĠĠĠ Ġcreate ( 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġ(( x Ġ- Ġ 4 ) .. ( x Ġ+ Ġ 4 )). random (), Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 5 .. 0 . 7 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . r Ġ- Ġ 1 0 .. color . r Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . g Ġ- Ġ 1 0 .. color . g Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( color . b Ġ- Ġ 1 0 .. color . b Ġ+ Ġ 1 0 ). random (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( 2 0 0 .. 2 5 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ(- 0 . 8 5 .. 0 . 0 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 0 . 4 5 .. 1 . 4 5 ). random () Ġ* Ġif Ġ( it Ġum od Ġ 2 Ġ== Ġ 0 ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . f riction X Ġ= Ġ 0 . 9 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . rotation Delta Ġ= Ġ( 0 . 0 .. ( PI Ġ* Ġ 2 )). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale Delta Ġ= Ġ-( 0 . 0 0 2 5 .. 0 . 0 0 4 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 1 . 5 .. 2 . 0 ). random (). seconds ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdust ( x : ĠDouble , Ġy : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġ(( x Ġ- Ġ 4 ) .. ( x Ġ+ Ġ 4 )). random (), Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 1 .. 0 . 3 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA (( 1 9 8 .. 2 1 8 ). random (), Ġ( 1 5 7 .. 1 7 7 ). random (), Ġ( 1 3 6 .. 1 5 6 ). random (), Ġ( 2 2 5 .. 2 5 5 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ( 0 . 0 2 5 .. 0 . 0 7 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 0 . 1 2 5 .. 0 . 2 ). random () Ġ* Ġif Ġ( it Ġum od Ġ 2 Ġ== Ġ 0 ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 0 . 5 .. 1 . 5 ). random (). seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . on Update Ġ= Ġ:: hard Physics ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdust Explo sion ( x : ĠDouble , Ġy : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 1 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getBy Prefix (" fx Small Circle "), Ġ(( x Ġ- Ġ 4 ) .. ( x Ġ+ Ġ 4 )). random (), Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale (( 0 . 1 .. 0 . 3 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA (( 1 9 8 .. 2 1 8 ). random (), Ġ( 1 5 7 .. 1 7 7 ). random (), Ġ( 1 3 6 .. 1 5 6 ). random (), Ġ( 2 2 5 .. 2 5 5 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ(- 1 .. 1 ). random d () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġ( 1 . 0 .. 2 . 0 ). random () Ġ* Ġif Ġ( it Ġum od Ġ 2 Ġ== Ġ 0 ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . gravity Y Ġ= Ġ( 0 . 0 7 .. 0 . 1 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . f riction Ġ= Ġ( 0 . 9 2 .. 0 . 9 6 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . rotation Delta Ġ= Ġ( 0 . 0 .. ( PI Ġ* Ġ 2 )). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 2 . 5 .. 4 . 5 ). random (). seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . on Update Ġ= Ġ:: hard Physics ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġg uts Spl atter ( x : ĠDouble , Ġy : ĠDouble , Ġdir : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate ( 5 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġalloc ( Assets . tiles . getRandom By Prefix (" fx Dot "), Ġx , Ġy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . color Ġ= ĠRGBA (( 1 1 1 .. 2 5 5 ). random (), Ġ 0 , Ġ 0 , Ġ( 0 .. 2 5 5 ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . x Delta Ġ= Ġdir Ġ* Ġ( 3 .. 7 ). random d () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . y Delta Ġ= Ġ(- 1 .. 0 ). random d () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . gravity Y Ġ= Ġ( 0 . 0 7 .. 0 . 1 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . rotation Ġ= Ġ( 0 . 0 .. PI Ġ* Ġ 2 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . f riction Ġ= Ġ( 0 . 9 2 .. 0 . 9 6 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . rotation Ġ= Ġ( 0 . 0 .. PI Ġ* Ġ 2 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . scale ( 0 . 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . life Ġ= Ġ( 3 .. 1 0 ). random (). seconds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . on Update Ġ= Ġ:: blood Physics ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhard Physics ( particle : ĠParticle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( particle . is Coll iding () Ġ&& Ġparticle . data 0 Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . data 0 Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . x Delta Ġ*= Ġ 0 . 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . y Delta Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . gravity Y Ġ= Ġ( 0 . 0 .. 0 . 0 0 1 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . rotation Delta Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . f riction Ġ= Ġ 0 . 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . rotation Ġ*= Ġ 0 . 0 3 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġblood Physics ( particle : ĠParticle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( particle . is Coll iding () Ġ&& Ġparticle . data 0 Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . data 0 Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . x Delta Ġ*= Ġ 0 . 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . y Delta Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . gravity Y Ġ= Ġ( 0 . 0 .. 0 . 0 0 1 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . f riction Ġ= Ġ( 0 . 5 .. 0 . 7 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . scale Delta Y Ġ= Ġ( 0 . 0 .. 0 . 0 0 1 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . rotation Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . rotation Delta Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( particle . is Coll iding (- 5 ) Ġ|| Ġparticle . is Coll iding ( 5 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . scale Y Ġ*= Ġ( 1 . 0 .. 1 . 2 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( particle . is Coll iding ( offset Y Ġ= Ġ- 5 ) Ġ|| Ġparticle . is Coll iding ( offset Y Ġ= Ġ 5 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . scale X Ġ*= Ġ( 1 . 0 .. 1 . 2 5 ). random () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate ( num : ĠInt , Ġcreate Particle : Ġ( index : ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Particle ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠParticle . is Coll iding ( offset X : ĠInt Ġ= Ġ 0 , Ġoffset Y : ĠInt Ġ= Ġ 0 ) Ġ= ĊĠĠĠĠĠĠĠ Ġgame . level . has Collision ((( x Ġ+ Ġoffset X ) Ġ/ ĠGR ID _ SIZE ). toInt (), Ġ(( y Ġ+ Ġoffset Y ) Ġ/ ĠGR ID _ SIZE ). toInt ()) Ċ }