package Ġcom . ma je ur . p sc lient . model . common Ċ Ċ import Ġcom . ma je ur . p sc lient . model . pokemon . Team Pokemon Ċ import Ġcom . ma je ur . p sc lient . util . to Id Ċ import Ġjava . io . Serializable Ċ import Ġjava . util .* ĊĊ Ċ class ĠTeam Ġprivate Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġunique Id : ĠInt , ĊĠĠĠĠĠĠ Ġvar Ġlabel : ĠString , ĊĠĠĠĠĠĠ Ġvar Ġpok em ons : ĠList < Team Pokemon >, ĊĠĠĠĠĠĠ Ġvar Ġformat : ĠString ?) ĊĠĠĠ Ġ: ĠSerializable , ĠComparable < Team > Ġ{ ĊĊĠĠĠ Ġclass ĠGroup ( val Ġformat : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġteams Ġ= Ġmutable ListOf < Team >() ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( label : ĠString , Ġpok em ons : ĠList < Team Pokemon >, Ġformat : ĠString ?) Ġ: Ġthis ( s UniqueId Inc ++, Ġlabel , Ġpok em ons , Ġformat ) Ġ{} ĊĊĠĠĠ Ġconstructor ( source : ĠTeam ) Ġ: Ġthis ( copied Team Label ( source . label ), Ġsource . pok em ons , Ġsource . format ) Ġ{} ĊĊĠĠĠ Ġval ĠisEmpty : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpok em ons . isEmpty () ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠTeam ) Ġ= Ġlabel . compareTo ( other . label , Ġignore Case Ġ= Ġtrue ) ĊĊĠĠĠ Ġfun Ġpack (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( set Ġin Ġpok em ons ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( buf . isNotEmpty ()) Ġbuf . append (" ]") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ( if Ġ( set . name Ġ!= Ġnull ) Ġset . name Ġelse Ġset . species ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġspecies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblank Ġ= Ġset . name Ġ== Ġnull Ġ|| Ġset . name ?. to Id () Ġ== Ġset . species . to Id () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( if Ġ( blank ) Ġ"" Ġelse Ġset . species ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . item ?. to Id () Ġ?: Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġability ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . ability ?. to Id () Ġ?: Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmoves ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . moves . join ToString ("," )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnature ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . nature ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġe vs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . e vs . hp Ġ!= Ġ 0 ) Ġbuf . append ( set . e vs . hp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . e vs . atk Ġ!= Ġ 0 ) Ġbuf . append ( set . e vs . atk ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . e vs . def Ġ!= Ġ 0 ) Ġbuf . append ( set . e vs . def ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . e vs . spa Ġ!= Ġ 0 ) Ġbuf . append ( set . e vs . spa ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . e vs . spd Ġ!= Ġ 0 ) Ġbuf . append ( set . e vs . spd ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . e vs . spe Ġ!= Ġ 0 ) Ġbuf . append ( set . e vs . spe ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgender ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . gender Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . gender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġiv s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . iv s . hp Ġ!= Ġ 3 1 ) Ġbuf . append ( set . iv s . hp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . iv s . atk Ġ!= Ġ 3 1 ) Ġbuf . append ( set . iv s . atk ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . iv s . def Ġ!= Ġ 3 1 ) Ġbuf . append ( set . iv s . def ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . iv s . spa Ġ!= Ġ 3 1 ) Ġbuf . append ( set . iv s . spa ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . iv s . spd Ġ!= Ġ 3 1 ) Ġbuf . append ( set . iv s . spd ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . iv s . spe Ġ!= Ġ 3 1 ) Ġbuf . append ( set . iv s . spe ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsh iny ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . sh iny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| S ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . level Ġ!= Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . level ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhapp iness ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . happ iness Ġ!= Ġ 2 5 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| "). append ( set . happ iness ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("| ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . hp Type Ġ!= Ġnull ) Ġbuf . append ("," ). append ( set . hp Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set . poke ball Ġ!= Ġnull Ġ&& Ġset . poke ball Ġ!= Ġ" poke ball ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ("," ). append ( set . poke ball ?. to Id () Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuf . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġs UniqueId Inc Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcopied Team Label ( label : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"$ label Ġ( Copy )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠTODO : ĠTake Ġin Ġaccount Ġother Ġlabels Ġof Ġthe Ġsame Ġgroup Ġthat Ġcould Ġmatch Ċ // ĠĠĠĠĠĠĠ ĠString Ġnew Label Ġ= Ġlabel ; Ċ // ĠĠĠĠĠĠĠ ĠPattern Ġpattern Ġ= ĠPattern . compile ("\\ (( Copy )( \\ d *) \\ )$ "); Ċ // ĠĠĠĠĠĠĠ ĠMatcher Ġmatcher Ġ= Ġpattern . matcher ( new Label ); Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( matcher . find ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠString Ġgroup 2 Ġ= Ġmatcher . group ( 2 ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( group 2 )) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Label Ġ= Ġnew Label . substring ( 0 , Ġnew Label . length () Ġ- Ġ 1 ) Ġ+ Ġ" 2 )"; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint Ġn Ġ= ĠInteger . parseInt ( group 2 ); Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Label Ġ= Ġnew Label . substring ( 0 , Ġnew Label . lastIndexOf ( str ( n ))) Ġ+ Ġ++ n Ġ+ Ġ")"; Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġnew Label Ġ= Ġnew Label Ġ+ Ġ" Ġ( Copy )"; Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġnew Label ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdummy Team ( label : ĠString , Ġdummy P okes : ĠBoolean Ġ= Ġtrue ): ĠTeam Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpok em ons Ġ= Ġif Ġ( dummy P okes ) Ġ( 1 .. 6 ). map Ġ{ ĠTeam Pokemon . dummy Pokemon () Ġ} Ġelse Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTeam ( label , Ġpok em ons , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġunpack ( label : ĠString , Ġformat : ĠString ?, Ġbuf : ĠString ?): ĠTeam ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( buf Ġ== Ġnull Ġ|| Ġbuf . isBlank ()) Ġreturn ĠTeam ( label , Ġempty List (), Ġformat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( buf [ 0 ] Ġ== Ġ'[' Ġ&& Ġbuf [ buf . length Ġ- Ġ 1 ] Ġ== Ġ' ]') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġbuf Ġ= Ġthis . pack Team ( JSON . parse ( buf )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġteam : ĠMutable List < Team Pokemon > Ġ= ĠLinkedList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġj Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlimit Ġto Ġ 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( count Ġin Ġ 0 Ġuntil Ġ 2 4 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġbuf . substring ( i , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġspecies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġspecies Ġ= Ġbuf . substring ( i , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( species Ġ== Ġ"") Ġspecies Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpokemon Ġ= ĠTeam Pokemon ( species ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġspecies ) Ġpokemon . name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġteam . add ( pokemon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . item Ġ= Ġbuf . substring ( i , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġability ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . ability Ġ= Ġbuf . substring ( i , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmoves ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . moves Ġ= Ġbuf . substring ( i , Ġj ). split ("," ). take ( 2 4 ). to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnature ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . nature Ġ= Ġbuf . substring ( i , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġe vs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ!= Ġi ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe vs Ġ= Ġbuf . substring ( i , Ġj ). split ("," ). take ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . e vs . hp Ġ= Ġ Ġe vs [ 0 ]. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . e vs . atk Ġ= Ġe vs [ 1 ]. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . e vs . def Ġ= Ġe vs [ 2 ]. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . e vs . spa Ġ= Ġe vs [ 3 ]. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . e vs . spd Ġ= Ġe vs [ 4 ]. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . e vs . spe Ġ= Ġe vs [ 5 ]. toInt OrNull () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgender ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ!= Ġj ) Ġpokemon . gender Ġ= Ġbuf . substring ( i , Ġj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġiv s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ!= Ġi ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiv s Ġ= Ġbuf . substring ( i , Ġj ). split ("," ). take ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . iv s . hp Ġ= Ġ Ġiv s [ 0 ]. toInt OrNull () Ġ?: Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . iv s . atk Ġ= Ġiv s [ 1 ]. toInt OrNull () Ġ?: Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . iv s . def Ġ= Ġiv s [ 2 ]. toInt OrNull () Ġ?: Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . iv s . spa Ġ= Ġiv s [ 3 ]. toInt OrNull () Ġ?: Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . iv s . spd Ġ= Ġiv s [ 4 ]. toInt OrNull () Ġ?: Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . iv s . spe Ġ= Ġiv s [ 5 ]. toInt OrNull () Ġ?: Ġ 3 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsh iny ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ!= Ġj ) Ġpokemon . sh iny Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' |', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ!= Ġj ) Ġpokemon . level Ġ= Ġbuf . substring ( i , Ġj ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhapp iness ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Ġ= Ġbuf . indexOf (' ]', Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmisc : ĠList < String > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġbuf . length ) Ġmisc Ġ= Ġbuf . substring ( i ). split ("," ). take ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ!= Ġj ) Ġmisc Ġ= Ġbuf . substring ( i , Ġj ). split ("," ). take ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( misc . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpokemon . happ iness Ġ= Ġmisc [ 0 ]. toInt OrNull () Ġ?: Ġ 2 5 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpoke . hp Type Ġ= Ġmisc [ 1 ]; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpoke . poke ball Ġ= Ġmisc [ 2 ]; TODO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ< Ġ 0 ) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ= Ġj Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTeam ( label , Ġteam , Ġformat ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ