package Ġcom . github . qu ill r aven . qu illy crawler . ash ley . component Ċ Ċ import Ġcom . badlogic . ash ley . core . Component Ċ import Ġcom . badlogic . ash ley . core . Entity Ċ import Ġcom . badlogic . gdx . utils . G dx RuntimeException Ċ import Ġcom . badlogic . gdx . utils . Object Map Ċ import Ġcom . badlogic . gdx . utils . Pool Ċ import Ġcom . github . qu ill r aven . qu illy crawler . com bat . buff . Buff Ċ import Ġk tx . ash ley . get Ċ import Ġk tx . ash ley . mapper For Ċ import Ġk tx . collections . G dx Set Ċ import Ġkotlin . reflect . K Class Ċ Ċ class ĠBu ff Component Ġ: ĠComponent , ĠPool . Pool able Ġ{ ĊĠ Ġval Ġbuff sTo Add Ġ= ĠG dx Set < K Class < out ĠBu ff >>() ĊĠ Ġval Ġbuff s Ġ= ĠObject Map < K Class < out ĠBu ff >, ĠBu ff >() ĊĊĠ Ġoverride Ġfun Ġreset () Ġ{ ĊĠĠĠ Ġbuff sTo Add . clear () ĊĠĠĠ Ġbuff s . clear () ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval ĠMAP PER Ġ= Ġmapper For < Buff Component >() ĊĠ Ġ} Ċ } Ċ Ċ val ĠEntity . buff Cmp : ĠBu ff Component ĊĠ Ġget () Ġ= Ġthis [ Buff Component . MAP PER ] ĊĠĠĠ Ġ?: Ġthrow ĠG dx RuntimeException (" Buff Component Ġfor Ġentity Ġ'$ this ' Ġis Ġnull ") Ċ Ċ fun ĠEntity . add Buff ( buff Type : ĠK Class < out ĠBu ff >) Ġ{ ĊĠ Ġthis [ Buff Component . MAP PER ]?. buff sTo Add ?. add ( buff Type ) Ċ } Ċ