if (CoinResult = true)
is not the same as
if (CoinResult == true)
Classic pitfall; some compilers warn you about this kind of things.
Two ways to avoid this altogether:
1) Reverse all your comparisons, so that the constant appears first. For instance,
if (true = CoinResult)
would produce a compile time error.
2) At least for Boolean expressions, use implied conversion to bool:
if (CoinResult)
HTH