package Ġcom . qu ill r aven . mas am une . ecs . system Ċ Ċ import Ġcom . badlogic . ash ley . core . Entity Ċ import Ġcom . badlogic . ash ley . core . Entity System Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . qu ill r aven . mas am une . Main Game Ċ import Ġcom . qu ill r aven . mas am une . event . Item Listener Ċ import Ġcom . qu ill r aven . mas am une . model . E AttributeType Ċ Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" He al System " Ċ Ċ class ĠHe al System Ġconstructor ( game : ĠMain Game ) Ġ: ĠEntity System (), ĠItem Listener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhe al Cmp Mapper Ġ= Ġgame . cmp Mapper . he al ĊĠĠĠ Ġprivate Ġval Ġattr Cmp Mapper Ġ= Ġgame . cmp Mapper . attribute ĊĠĠĠ Ġprivate Ġval Ġgame Event Mgr Ġ= Ġgame . game Event Manager ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġgame . game Event Manager . addItem Listener ( this ) ĊĠĠĠĠĠĠĠ Ġset Processing ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġuse Item ( entity : ĠEntity , Ġitem : ĠEntity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem He al Cmp Ġ= Ġhe al Cmp Mapper . get ( item ) ĊĠĠĠĠĠĠĠ Ġval Ġentity Attr Cmp Ġ= Ġattr Cmp Mapper . get ( entity ) ĊĠĠĠĠĠĠĠ Ġif Ġ( entity Attr Cmp Ġ!= Ġnull Ġ&& Ġitem He al Cmp Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . debug ( TAG , Ġ" Using Ġhe aling Ġitem Ġfor Ġ${ item He al Cmp . life } Ġlife Ġand Ġ${ item He al Cmp . mana } Ġman a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Attr Cmp . attributes . set ( E AttributeType . LI FE . ordinal , ĠMath . min ( entity Attr Cmp . attributes [ E AttributeType . MAX _ LI FE . ordinal ], Ġentity Attr Cmp . attributes [ E AttributeType . LI FE . ordinal ] Ġ+ Ġitem He al Cmp . life )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Attr Cmp . attributes . set ( E AttributeType . MAN A . ordinal , ĠMath . min ( entity Attr Cmp . attributes [ E AttributeType . MAX _ MAN A . ordinal ], Ġentity Attr Cmp . attributes [ E AttributeType . MAN A . ordinal ] Ġ+ Ġitem He al Cmp . mana )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Event Mgr . dispatch Attribute Updated ( entity , ĠE AttributeType . LI FE , Ġentity Attr Cmp . attributes [ E AttributeType . LI FE . ordinal ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Event Mgr . dispatch Attribute Updated ( entity , ĠE AttributeType . MAX _ LI FE , Ġentity Attr Cmp . attributes [ E AttributeType . MAX _ LI FE . ordinal ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Event Mgr . dispatch Attribute Updated ( entity , ĠE AttributeType . MAN A , Ġentity Attr Cmp . attributes [ E AttributeType . MAN A . ordinal ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Event Mgr . dispatch Attribute Updated ( entity , ĠE AttributeType . MAX _ MAN A , Ġentity Attr Cmp . attributes [ E AttributeType . MAX _ MAN A . ordinal ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }