package Ġcom . github . serv b . pp h . ph ero es . common . common . skill Ċ Ċ /** ĠTODO : ĠRemove Ġthe Ġclass . Ġ*/ Ċ interface ĠFurther Skills C Ġ{ ĊĠĠĠ Ġval Ġvalues : ĠList < Int > ĊĊĠĠĠ Ġfun ĠValue ( type : ĠFurther Skill ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck ( type . v Ġin ĠFurther Skill . INVALID . v Ġuntil ĠFurther Skill . COUNT . v ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġvalues [ type . v ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( xx Ġin Ġ 0 Ġuntil ĠFurther Skill . COUNT . v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( values [ xx ] Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġplus ( other : ĠFurther Skills C ): ĠFurther Skills C Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFurther Skills ( this ) ĊĊĠĠĠĠĠĠĠ Ġresult Ġ+= Ġother ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġminus ( other : ĠFurther Skills C ): ĠFurther Skills C Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFurther Skills ( this ) ĊĊĠĠĠĠĠĠĠ Ġresult Ġ-= Ġother ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFurther Skills Ġ: ĠFurther Skills C Ġ{ ĊĠĠĠ Ġoverride Ġval Ġvalues : ĠMutable List < Int > ĊĊĠĠĠ Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues Ġ= ĠMutable List ( Further Skill . COUNT . v ) Ġ{ Ġ 0 Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( other : ĠFurther Skills C ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues Ġ= Ġother . values . to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠReset () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġvalues . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues [ i ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠSetValue ( type : ĠFurther Skill , ĠnewValue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck ( type . v Ġin ĠFurther Skill . INVALID . v Ġuntil ĠFurther Skill . COUNT . v ) ĊĊĠĠĠĠĠĠĠ Ġvalues [ type . v ] Ġ= ĠnewValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġplus Assign ( other : ĠFurther Skills C ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( xx Ġin Ġ 0 Ġuntil ĠFurther Skill . COUNT . v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues [ xx ] Ġ+= Ġother . values [ xx ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġminus Assign ( other : ĠFurther Skills C ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( xx Ġin Ġ 0 Ġuntil ĠFurther Skill . COUNT . v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues [ xx ] Ġ-= Ġother . values [ xx ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġplus Assign ( other : ĠPrimary Skills C ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( xx Ġin Ġ 0 Ġuntil ĠPrimary Skill Type . COUNT . v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues [ xx Ġ+ ĠFurther Skill . ATT ACK . v ] Ġ+= Ġother . values [ xx ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġminus Assign ( other : ĠPrimary Skills C ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( xx Ġin Ġ 0 Ġuntil ĠPrimary Skill Type . COUNT . v ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues [ xx Ġ+ ĠFurther Skill . ATT ACK . v ] Ġ-= Ġother . values [ xx ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset To ( other : ĠFurther Skills C ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues . clear () ĊĠĠĠĠĠĠĠ Ġother . values . map To ( values ) Ġ{ Ġit Ġ} ĊĠĠĠ Ġ} Ċ } Ċ