package Ġcom . ly ee ed ar . Interaction Ċ Ċ import Ġcom . badlogic . ash ley . core . Entity Ċ import Ġcom . badlogic . gdx . utils . Object Map Ċ import Ġcom . badlogic . gdx . utils . Xml Reader Ċ import Ġcom . exp 4 j . Helpers . evaluate Ċ import Ġcom . exp 4 j . Helpers . un escape Characters Ċ import Ġcom . ly ee ed ar . Components . inventory Ċ import Ġcom . ly ee ed ar . Util . round Ċ Ċ class ĠInteraction Action Remove Item Ġ: ĠAbstract Interaction Action () Ċ { Ċ ĉ late init Ġvar Ġname : ĠString Ċ ĉ late init Ġvar Ġcount : ĠString ĊĊ ĉ override Ġfun Ġinteract ( activ ating : ĠEntity , Ġparent : ĠEntity , Ġinteraction : ĠInteraction ): ĠBoolean Ċ ĉ { Ċĉ ĉ val Ġinventory Ġ= Ġactiv ating . inventory () ĊĊĉ ĉ if Ġ( inventory Ġ!= Ġnull ) Ċĉ ĉ { Ċĉĉ ĉ val Ġexisting Ġ= Ġinventory . items [ name ] ĊĊĉĉ ĉ if Ġ( existing Ġ!= Ġnull ) Ċĉĉ ĉ { Ċĉĉĉ ĉ if Ġ( count Ġ== Ġ" all ") Ċĉĉĉ ĉ { Ċĉĉĉĉ ĉ inventory . items . remove ( name ) Ċĉĉĉ ĉ } Ċĉĉĉ ĉ else Ċĉĉĉ ĉ { Ċĉĉĉĉ ĉ val Ġvariables Ġ= Ġinteraction . get Variables () Ċĉĉĉĉ ĉ variables . put (" count ", Ġexisting . count . toFloat ()) ĊĊĉĉĉĉ ĉ val Ġcount Ġ= Ġcount . evaluate ( variables ). round () ĊĊĉĉĉĉ ĉ existing . count Ġ-= Ġcount ĊĊĉĉĉĉ ĉ if Ġ( existing . count Ġ<= Ġ 0 ) Ġinventory . items . remove ( name ) Ċĉĉĉ ĉ } Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĉ ĉ return Ġtrue Ċ ĉ } ĊĊ ĉ override Ġfun Ġparse ( xml : ĠXml Reader . Element ) Ċ ĉ { Ċĉ ĉ name Ġ= Ġxml . get (" Name "). toLowerCase () Ċĉ ĉ count Ġ= Ġxml . get (" Count ", Ġ" All "). toLowerCase (). un escape Characters () Ċĉ ĉ count Ġ= Ġcount . replace ("% ", Ġ"# count ") Ċ ĉ } ĊĊ ĉ override Ġfun Ġresolve ( nodes : ĠObject Map < String , ĠInteraction Node >) Ċ ĉ { ĊĊ ĉ } Ċ } Ċ