package Ġcom . gmail . luc asm ve ig ab r . comp anion lol . features . active game Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . gmail . luc asm ve ig ab r . comp anion lol . data . model .* Ċ import Ġcom . gmail . luc asm ve ig ab r . comp anion lol . data . model . schema . Spell Sum m Schema Ċ import Ġcom . gmail . luc asm ve ig ab r . comp anion lol . data . repository . Champ ion Repo Ċ import Ġcom . gmail . luc asm ve ig ab r . comp anion lol . data . repository . Spell s Repo Ċ import Ġcom . gmail . luc asm ve ig ab r . comp anion lol . util . Endpoints Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠActive Game ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġchamp ion Repo : ĠCh amp ion Repo , ĊĠĠĠ Ġprivate Ġval Ġspell s Repo : ĠSpell s Repo Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdis pos ables Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġprivate Ġval Ġ_ en emies Ġ= ĠMutable LiveData < List < Enemy Sum mon er >>() ĊĠĠĠ Ġval Ġenemies : ĠLive Data < List < Enemy Sum mon er >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ en emies ĊĊĠĠĠ Ġprivate Ġvar Ġis Game Set Ġ= Ġfalse ĊĊĠĠĠ Ġfun ĠsetCurrent Game ( game : ĠSum mon er In Game ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Game Set ) Ġreturn ĊĠĠĠĠĠĠĠ Ġis Game Set Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame . game ?. participants ?. first OrNull Ġ{ Ġit . sum mon er Id Ġ== Ġgame . sum mon er . encrypted Id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException (" ERROR ") ĊĠĠĠĠĠĠĠ Ġval Ġenemies Ġ= Ġgame . game . participants . filter Ġ{ Ġit . team Id Ġ!= Ġuser . team Id Ġ} ĊĠĠĠĠĠĠĠ Ġdis pos ables . add ( Observable . create < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenemy List Ġ= ĠArrayList < Enemy Sum mon er >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( enemy Ġin Ġenemies ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenemy List . add ( get Enemy Sum mon er ( enemy )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ en emies . post Value ( enemy List ) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Schedulers . io ()). subscribe ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Enemy Sum mon er ( participant : ĠPart icipant ): ĠEnemy Sum mon er Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġchamp ion Name Ġ= Ġchamp ion Repo . get Champ ion ( participant . champ ion Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspell 1 Ġ= Ġget Enemy Spell OrNull ( participant . spell 1 Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspell 2 Ġ= Ġget Enemy Spell OrNull ( participant . spell 2 Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Cd Reduc ed Ġ= Ġparticipant . per ks . per k Ids . contains ( 8 3 4 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnemy Sum mon er ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticipant . sum mon er Name , Ġchamp ion Name . data . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnd points . champ ion Icon ( champ ion Name . data . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnd points . champ ion Card ( champ ion Name . data . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSum mon er Spell . map ( spell 1 , Ġis Cd Reduc ed ), ĠSum mon er Spell . map ( spell 2 , Ġis Cd Reduc ed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Failure Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnemy Sum mon er . un ident ified ( participant . sum mon er Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Enemy Spell OrNull ( id : ĠInt ): ĠSpell Sum m Schema ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġresult Ġ= Ġspell s Repo . get Spell ( id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult . Failure Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġdis pos ables . clear () ĊĠĠĠ Ġ} Ċ Ċ }