package Ġcom . m uff ls . tap . main . business . entities Ċ Ċ import Ġkotlin . math . exp Ċ import Ġkotlin . math . floor Ċ import Ġkotlin . math . ln Ċ Ċ object ĠDefault Level Calculator Ġ: ĠLevel Calculator Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcalculate Level ( tap Count : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( tap Count Ġ== Ġ 0 L ) Ġ 0 Ġelse Ġfloor ( ln ( tap Count . toDouble ())). toInt () ĊĊĠĠĠ Ġ@ Suppress (" Magic Number ") ĊĠĠĠ Ġoverride Ġfun Ġcalculate Level Progress ( tap Count : ĠLong ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġt aps Previous Level Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( calculate Level ( tap Count ) Ġ== Ġ 0 ) Ġ 0 Ġelse Ġt aps For Level ( calculate Level ( tap Count )) ĊĊĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( tap Count . toDouble () Ġ- Ġt aps Previous Level ) Ġ/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( t aps For Next Level ( tap Count ) Ġ- Ġt aps Previous Level ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( progress Ġ* Ġ 1 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġt aps For Next Level ( tap Count : ĠLong ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnext Level Ġ= Ġcalculate Level ( tap Count ) Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġt aps For Level ( next Level ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġt aps For Level ( level : ĠInt ) Ġ= Ġexp ( level . toDouble ()). toInt () Ċ } Ċ