package Ġcom . gather ing hall stud ios . m hw or l dd atabase . data . models Ċ Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . data . types . Armor Type Ċ import Ġcom . gather ing hall stud ios . m hw or l dd atabase . data . types . DataType Ċ import Ġjava . io . Serializable Ċ Ċ class ĠUser Equipment Set Ids ( ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġequipment Ids : ĠMutable List < User Equipment Ids > Ċ ) Ġ: ĠSerializable Ċ Ċ class ĠUser Equipment Ids ( ĊĠĠĠĠĠĠĠ Ġval Ġdata Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġequipment SetId : ĠInt , ĊĠĠĠĠĠĠĠ Ġval ĠdataType : ĠDataType , ĊĠĠĠĠĠĠĠ Ġval Ġdecoration Ids : ĠMutable List < User Decoration Ids >, ĊĠĠĠĠĠĠĠ Ġval ĠorderId : ĠInt Ċ ) Ċ Ċ class ĠUser Decoration Ids ( ĊĠĠĠĠĠĠĠ Ġval Ġdecoration Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġslot Number : ĠInt Ċ ) Ċ Ċ class ĠUser Equipment Set ( ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġequipment : ĠMutable List < User Equipment > Ċ ) Ġ: ĠSerializable Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Empty Set (): ĠUser Equipment Set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUser Equipment Set ( 0 , Ġ"", Ġmutable ListOf ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġmax R arity : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġdef ense _ base : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġdef ense _ max : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġdef ense _ augment _ max : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġfire Def ense : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġwater Def ense : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġth under Def ense : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġice Def ense : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġdrag on Def ense : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġskills Ġ= ĠlistOf < Skill Level >() ĊĠĠĠ Ġvar Ġset Bon uses Ġ= Ġmutable Map Of < String , ĠList < Armor Set Bonus >>() ĊĊĠĠĠ Ġfun Ġget Weapon (): ĠUser Weapon ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . find Ġ{ Ġit . type () Ġ== ĠDataType . WE AP ON Ġ} Ġas ? ĠUser Weapon ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Head Armor (): ĠUser Armor Piece ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . ARM OR Ġ}. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ? ĠUser Armor Piece )?. armor ?. armor ?. armor _ type Ġ== ĠArm or Type . HEAD ĊĠĠĠĠĠĠĠ Ġ} Ġas ? ĠUser Armor Piece ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Arm Armor (): ĠUser Armor Piece ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . ARM OR Ġ}. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠUser Armor Piece ). armor . armor . armor _ type Ġ== ĠArm or Type . AR MS ĊĠĠĠĠĠĠĠ Ġ} Ġas ? ĠUser Armor Piece ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Chest Armor (): ĠUser Armor Piece ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . ARM OR Ġ}. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠUser Armor Piece ). armor . armor . armor _ type Ġ== ĠArm or Type . CH EST ĊĠĠĠĠĠĠĠ Ġ} Ġas ? ĠUser Armor Piece ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Wa ist Armor (): ĠUser Armor Piece ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . ARM OR Ġ}. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠUser Armor Piece ). armor . armor . armor _ type Ġ== ĠArm or Type . WA IST ĊĠĠĠĠĠĠĠ Ġ} Ġas ? ĠUser Armor Piece ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Leg Armor (): ĠUser Armor Piece ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . ARM OR Ġ}. find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠUser Armor Piece ). armor . armor . armor _ type Ġ== ĠArm or Type . LE GS ĊĠĠĠĠĠĠĠ Ġ} Ġas ? ĠUser Armor Piece ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Char m (): ĠUser Char m ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment . find Ġ{ Ġit . type () Ġ== ĠDataType . CHAR M Ġ} Ġas ? ĠUser Char m ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Tool 1 (): ĠUser Tool ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( equipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . TOOL Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġ( it Ġas ? ĠUser Tool )?. orderId Ġ== Ġ 1 Ġ}) Ġas ? ĠUser Tool ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Tool 2 (): ĠUser Tool ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( equipment . filter Ġ{ Ġit . type () Ġ== ĠDataType . TOOL Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġ( it Ġas ? ĠUser Tool )?. orderId Ġ== Ġ 2 Ġ}) Ġas ? ĠUser Tool ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠUser Equipment Ġ: ĠSerializable Ġ{ ĊĠĠĠ Ġfun ĠsetId (): ĠInt ĊĠĠĠ Ġfun Ġentity Id (): ĠInt ĊĠĠĠ Ġfun Ġtype (): ĠDataType Ċ } Ċ Ċ class ĠUser Armor Piece ( ĊĠĠĠĠĠĠĠ Ġval Ġequipment SetId : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġarm or : ĠArm or Full , ĊĠĠĠĠĠĠĠ Ġval Ġdecor ations : ĠList < User Decoration > Ċ ) Ġ: ĠUser Equipment Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetId (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment SetId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġentity Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarm or . armor . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtype (): ĠDataType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDataType . ARM OR ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUser Weapon ( ĊĠĠĠĠĠĠĠ Ġval Ġequipment SetId : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġweapon : ĠWeapon Full , ĊĠĠĠĠĠĠĠ Ġval Ġdecor ations : ĠList < User Decoration > Ċ ) Ġ: ĠUser Equipment Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetId (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment SetId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġentity Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġweapon . weapon . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtype (): ĠDataType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDataType . WE AP ON ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUser Char m ( ĊĠĠĠĠĠĠĠ Ġval Ġequipment SetId : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġchar m : ĠCh arm Full Ċ ) Ġ: ĠUser Equipment Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetId (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment SetId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġentity Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġchar m . charm . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtype (): ĠDataType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDataType . CHAR M ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUser Decoration ( ĊĠĠĠĠĠĠĠ Ġval Ġequipment SetId : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġdecoration : ĠDecor ation , ĊĠĠĠĠĠĠĠ Ġval Ġslot Number : ĠInt Ċ ) Ġ: ĠUser Equipment Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetId (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment SetId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġentity Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdecoration . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtype (): ĠDataType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDataType . DE COR ATION ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠUser Tool ( ĊĠĠĠĠĠĠĠ Ġval Ġequipment SetId : ĠInt , ĊĠĠĠĠĠĠĠ Ġval Ġtool : ĠTool , ĊĠĠĠĠĠĠĠ Ġval Ġdecor ations : ĠList < User Decoration >, ĊĠĠĠĠĠĠĠ Ġval ĠorderId : ĠInt Ċ ) Ġ: ĠUser Equipment Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetId (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġequipment SetId ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġentity Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtool . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtype (): ĠDataType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDataType . TOOL ĊĠĠĠ Ġ} Ċ }