package Ġcc . fish 9 1 . g table . engine Ċ Ċ import Ġcc . fish 9 1 . g table .* Ċ import Ġcc . fish 9 1 . g table . plugin .* Ċ import Ġcc . fish 9 1 . g table . resource . Static Data Ċ Ċ object ĠE quip Engine Ġ{ ĊĠĠĠ Ġconst Ġval ĠCHANGE _ LEVEL _ COUNT Ġ= Ġ 5 ĊĠĠĠ Ġconst Ġval ĠCHANGE _ R ARE _ COUNT Ġ= Ġ 2 ĊĠĠĠ Ġconst Ġval ĠE QU IP _ LEVEL _ LIMIT Ġ= Ġ 5 0 ĊĊĠĠĠ Ġfun Ġcreate ( id : ĠInt , Ġrare : ĠInt , Ġfloor : ĠInt , Ġfrom : ĠInt Ġ= Ġ 0 , Ġlimit : ĠInt Ġ= ĠStatic Data . EQ _ R ARE _ EP IC ) Ġ= ĠMath . rand ( from , Ġ( r are Ġ+ Ġ( floor Ġ% ĠCHANGE _ LEVEL _ COUNT ) Ġ/ ĠCHANGE _ R ARE _ COUNT ). limit At Most ( limit )). let Ġ{ ĊĠĠĠĠĠĠĠ ĠStatic Data . getBase Equip Info ( id ). let Ġ{ Ġinfo Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath . min ( floor Ġ/ ĠCHANGE _ LEVEL _ COUNT , Ġif Ġ( id Ġin Ġ 0 x 3 0 0 0 .. 0 x 4 0 0 0 ) Ġ 1 5 0 Ġelse Ġif Ġ( id Ġ> Ġ 0 x 4 0 0 0 ) Ġ 2 0 0 Ġelse ĠE QU IP _ LEVEL _ LIMIT Ġ+ Ġinfo . base Level ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo , Ġit ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . values (). get Rand (). let Ġ{ Ġex Property . add ( it , Ġget Ex Value ( it , Ġinfo , Ġ( floor Ġ/ ĠCHANGE _ LEVEL _ COUNT ). limit At Most ( EQ U IP _ LEVEL _ LIMIT Ġ+ Ġinfo . base Level Ġ+ Ġ 1 ))) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate By R are ( id : ĠInt , Ġlevel : ĠInt , Ġrare : ĠInt ) Ġ= Ġcreate ( id , Ġrare , Ġlevel Ġ* Ġ 5 Ġ+ Ġ 4 , Ġrare , Ġrare ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Ex Value ( ep : ĠE quip Property , Ġinfo : ĠE quip Info , Ġlevel : ĠInt ) Ġ= Ġinfo . run Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ep ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . AT K Ġ-> Ġthis . base Property Ġ* Ġ( level Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . AT K _ PC Ġ-> Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . DEF Ġ-> Ġthis . base Property Ġ* Ġ( level Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . DEF _ PC Ġ-> Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . HP Ġ-> Ġthis . base Property Ġ* Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . HP _ PC Ġ-> Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . MIS S Ġ-> Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . CRITICAL Ġ-> Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . CRITICAL _ DM G Ġ-> Ġ( level Ġ+ Ġ 1 ) Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . HP _ REST ORE Ġ-> Ġ(( level Ġ+ Ġ 1 ) Ġ/ Ġ 2 ). coerce At Least ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Main Value Nullable ( ep : ĠE quip Property , Ġinfo : ĠE quip Info ?, Ġlevel : ĠInt ) Ġ= Ġinfo ?. let Ġ{ Ġget Ex Value ( ep , Ġinfo , Ġlevel ) Ġ} ĊĊĠĠĠ Ġfun Ġget Main Value ( equip : ĠE quip ) Ġ= Ġwhen Ġ( equip . info . position ) Ġ{ ĊĠĠĠĠĠĠĠ ĠE quip Position . WE AP ON Ġ-> ĠE quip Property . AT K ĊĠĠĠĠĠĠĠ ĠE quip Position . ARM OR Ġ-> ĠE quip Property . DEF ĊĠĠĠĠĠĠĠ ĠE quip Position . RING Ġ-> ĠE quip Property . HP ĊĠĠĠ Ġ}. run Ġ{ ĠPair ( this , Ġget Ex Value ( this , Ġequip . info , Ġequip . level )) Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġcalc Equip EX ( var arg Ġm Equip s : ĠE quip ?) Ġ= ĠAdd able Mutable Map < Equip Property >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġm Equip s . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Main Value ( it ). let Ġ{ Ġadd ( it . first , Ġit . second ) Ġ} ĠĠĠĠĠĠĠĠĠĠ Ġ// main Ġproperty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . ex Property . forEach Ġ{ Ġadd ( it . key , Ġit . value . value ) Ġ} ĠĠĠĠĠĠ Ġ// ex Ġproperties ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġcalc Equip s Append ( person : ĠPerson Data , Ġvar arg Ġm Equip s : ĠE quip ?) Ġ= ĠPerson Data ("", Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEx Person ( 0 , Ġ 0 , Ġ 0 , Ġ 0 )). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġcalc Equip EX (* m Equip s ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . AT K Ġ-> Ġthis . atk Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . AT K _ PC Ġ-> Ġthis . atk Ġ+= Ġ( person . atk Ġ* Ġit . value . value Ġ/ Ġ 1 0 0 0 f ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . DEF Ġ-> Ġthis . def Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . DEF _ PC Ġ-> Ġthis . def Ġ+= Ġ( person . def Ġ* Ġit . value . value Ġ/ Ġ 1 0 0 0 f ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . HP Ġ-> Ġthis . HP Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . HP _ PC Ġ-> Ġthis . HP Ġ+= Ġ( person . HP Ġ* Ġit . value . value Ġ/ Ġ 1 0 0 0 f ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . MIS S Ġ-> Ġthis . ex . miss Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . CRITICAL Ġ-> Ġthis . ex . critical Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . CRITICAL _ DM G Ġ-> Ġthis . ex . critical _ dmg Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE quip Property . HP _ REST ORE Ġ-> Ġthis . ex . restore Ġ+= Ġit . value . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadd Suit ( this , Ġcheck Suit (* m Equip s )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Suit ( var arg Ġes : ĠE quip ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( es . size Ġ== Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġes . filter Ġ{ Ġit ?. r are Ġ== ĠStatic Data . EQ _ R ARE _ SU IT Ġ}. size Ġ== Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ(( es [ 0 ] !!. info . id Ġand Ġ 0 xff ) Ġ== Ġ( es [ 1 ] !!. info . id Ġand Ġ 0 xff )) Ġ&& Ġ(( es [ 0 ] !!. info . id Ġand Ġ 0 xff ) Ġ== Ġ( es [ 2 ] !!. info . id Ġand Ġ 0 xff ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġes [ 0 ] !!. info . id Ġand Ġ 0 xff ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Suit ( var arg Ġes : ĠE quip ?) Ġ= Ġcheck Suit (* es ) Ġ!= Ġ- 1 ĊĊĊĠĠĠ Ġprivate Ġfun Ġadd Suit ( p : ĠPerson Data , Ġsuit Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( suit Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġp . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . atk Ġ+= Ġ( p . atk Ġ* Ġ 0 . 5 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . critical Ġ+= Ġ 3 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . critical _ dmg Ġ+= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . miss Ġ+= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġp . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . def Ġ+= Ġ( p . def Ġ* Ġ 0 . 5 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . atk Ġ-= Ġ( p . atk Ġ* Ġ 0 . 5 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . miss Ġ+= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . HP Ġ+= Ġ( p . HP Ġ* Ġ 1 . 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġp . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . atk Ġ+= Ġ( p . atk Ġ* Ġ 0 . 7 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . def Ġ+= Ġ( p . def Ġ* Ġ 0 . 7 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . restore Ġ+= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . critical Ġ+= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġp . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . HP Ġ+= Ġ( p . HP Ġ* Ġ 0 . 5 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . restore Ġ-= Ġ 3 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . miss Ġ+= Ġ 3 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . critical Ġ+= Ġ 2 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . ex . critical _ dmg Ġ+= Ġ 1 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget R are Color ( r are : ĠInt ) Ġ= ĠFramework ._ C . resources . getColor ( when Ġ( r are ) Ġ{ ĊĠĠĠĠĠĠĠĠ 0 Ġ-> ĠR . color . text _ eq _ r are 0 ĊĠĠĠĠĠĠĠĠ 1 Ġ-> ĠR . color . text _ eq _ r are 1 ĊĠĠĠĠĠĠĠĠ 2 Ġ-> ĠR . color . text _ eq _ r are 2 ĊĠĠĠĠĠĠĠĠ 3 Ġ-> ĠR . color . text _ eq _ r are 3 ĊĠĠĠĠĠĠĠĠ 4 Ġ-> ĠR . color . text _ eq _ r are 4 ĊĠĠĠĠĠĠĠĠ 5 Ġ-> ĠR . color . text _ eq _ r are 5 ĊĠĠĠĠĠĠĠĠ 6 Ġ-> ĠR . color . text _ eq _ r are 6 ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . color . text _ eq _ r are 4 ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġfun ĠgetS uit ById ( id : ĠInt ) Ġ= ĠE quip Suit . values (). filter Ġ{ Ġit . id Ġ== Ġid Ġ}. run Ġ{ Ġif Ġ( size Ġ> Ġ 0 ) Ġthis [ 0 ] Ġelse Ġnull Ġ} ĊĊĠĠĠ Ġfun Ġget Equip Effect Info ( effect : ĠPair < Ex Effect , ĠInt >) Ġ= Ġwhen Ġ( effect . first ) Ġ{ ĊĠĠĠĠĠĠĠ ĠEx Effect . CRITICAL _ UP , ĠEx Effect . MIS S _ UP Ġ-> ĠString . format ( effect . first . info , Ġeffect . second . to M il lic ent Keep 1 ()) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠString . format ( effect . first . info , Ġeffect . second ) ĊĠĠĠ Ġ} Ċ Ċ }