package Ġgame . pixel _ sh ooter Ċ Ċ import Ġkotlin . math . round ToInt Ċ Ċ open Ġclass ĠPos < T >( val Ġp : ĠPair < T , ĠT >) Ġ{ ĊĠĠĠ Ġval Ġx Ġ= Ġp . first ĊĠĠĠ Ġval Ġy Ġ= Ġp . second ĊĊĠĠĠ Ġconstructor ( x : ĠT , Ġy : ĠT ) Ġ: Ġthis ( Pair ( x , Ġy )) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Pos ( p =$ p )" ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ operator Ġfun ĠPos < Float >. times ( i : ĠInt ): ĠPos < Float > Ġ= ĠPos ( this . x Ġ* Ġi , Ġthis . y Ġ* Ġi ) Ċ operator Ġfun ĠPos < Float >. times ( f : ĠFloat ): ĠPos < Float > Ġ= ĠPos ( this . x Ġ* Ġf , Ġthis . y Ġ* Ġf ) Ċ Ċ operator Ġfun ĠPos < Int >. div ( i : ĠInt ): ĠPos < Float > Ġ= ĠPos ( this . x Ġ/ Ġi . toFloat (), Ġthis . y Ġ/ Ġi . toFloat ()) Ċ operator Ġfun ĠPos < Float >. div ( i : ĠInt ): ĠPos < Float > Ġ= ĠPos ( this . x Ġ/ Ġi , Ġthis . y Ġ/ Ġi ) Ċ operator Ġfun ĠPos < Float >. div ( f : ĠFloat ): ĠPos < Float > Ġ= ĠPos ( this . x Ġ/ Ġf , Ġthis . y Ġ/ Ġf ) Ċ Ċ operator Ġfun ĠPos < Float >. minus ( f : ĠFloat ): ĠPos < Float > Ġ= ĠPos ( this . x Ġ- Ġf , Ġthis . y Ġ- Ġf ) Ċ operator Ġfun ĠPos < Float >. minus ( pos : ĠPos < Float >): ĠPos < Float > Ġ= ĠPos ( this . x Ġ- Ġpos . x , Ġthis . y Ġ- Ġpos . y ) Ċ operator Ġfun ĠPos < Int >. minus ( pos : ĠPos < Float >): ĠPos < Float > Ġ= ĠPos ( this . x . toFloat () Ġ- Ġpos . x , Ġthis . y . toFloat () Ġ- Ġpos . y ) Ċ Ċ operator Ġfun ĠPos < Float >. plus ( pos : ĠPos < Float >): ĠPos < Float > Ġ= ĠPos ( this . x Ġ+ Ġpos . x , Ġthis . y Ġ+ Ġpos . y ) Ċ Ċ fun ĠPos < Float >. round ToInt (): ĠPos < Int > Ġ= ĠPos ( this . x . round ToInt (), Ġthis . y . round ToInt ()) Ċ Ċ fun ĠPos < Int >. toFloat (): ĠPos < Float > Ġ= ĠPos ( this . x . toFloat (), Ġthis . y . toFloat ()) Ċ