public void OnTileLanded(GamePlayer player){ switch (tileType){ case TileType.property: if(isOwned == false){ player.StartCoroutine(player.ProcessUnownedPropertyTile(this)); } else{ if(tileGroup == TileGroup.utility){ // calculate rent cost currentRentCost = player.moveDiceScore.number * utilityMultiplier; SetTileDetails(); player.StartCoroutine(player.ProcessOwnedPropertyTile(this)); } else{ player.StartCoroutine(player.ProcessOwnedPropertyTile(this)); } } break; case TileType.chance: player.StartCoroutine(player.ProcessChanceCard()); break; case TileType.chest: player.StartCoroutine(player.ProcessCommunityChestCard()); break; case TileType.goJail: player.GoToJail(); break; case TileType.inJail: player.DoneMoveAction(); break; case TileType.start: player.DoneMoveAction(); break; case TileType.tax: player.StartCoroutine(player.PayTax(currentRentCost)); break; case TileType.free: // do nothing player.DoneMoveAction(); break; } }