package Ġorg . mon sim . impl . play Ċ Ċ import Ġmu . Kotlin Logging Ċ import Ġorg . mon sim . api . play . Tax er Ċ import Ġorg . mon sim . bean . Bill Ċ import Ġorg . mon sim . bean . domain . Game Ċ import Ġorg . mon sim . bean . domain . Tax Ċ import Ġorg . mon sim . impl . util . Game Util Impl Ċ import Ġorg . mon sim . impl . accounting . Cash Ac counter Impl Ċ Ċ class ĠTax er Impl Ġ: ĠTax er Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠKotlin Logging . logger Ġ{} ĊĠĠĠ Ġprivate Ġval Ġcash Transfer er Ġ= ĠCash Ac counter Impl () ĊĠĠĠ Ġprivate Ġval Ġgame Util Ġ= ĠGame Util Impl () ĊĊĠĠĠ Ġoverride Ġfun Ġtax ( tax : ĠTax , Ġgame : ĠGame ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= Ġgame Util . current Player ( game ) ĊĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġtax . amount ĊĠĠĠĠĠĠĠ Ġlog . debug {" tax ing Ġplayer # ${ player . id } Ġamount Ġof Ġ${ amount } "} ĊĠĠĠĠĠĠĠ Ġcash Transfer er . apply Bill ( Bill ( de bt or = player , Ġamount Ġ= Ġamount ), Ġgame ) ĊĠĠĠ Ġ} ĊĊ Ċ }