function nuke(uint256 _countryId) payable public onlyGameNOTPaused{
		require(_countryId < allCountriesLength);
		require(msg.value >= war_getNextNukePriceForCountry(_countryId)); 
		require(war_getNextNukePriceForCountry(_countryId) > 0); 
		require(isEliminated(_countryId) == false);
		require(canPlayTimestamp()); 
		require(loversSTR[gameVersion][_countryId].bestLover != msg.sender); 
		require(_countryId != mostLovedCountry || allCountriesLength.sub(howManyEliminated) < 5); 
				
		address player = msg.sender;
		uint256 timestampNow = block.timestamp;
		uint256 gameId = gameVersion;
		uint256 thisBalance = address(this).balance;		
		uint256 priceToPay = war_getNextNukePriceForCountry(_countryId);
		
		
		nukerAddress[_countryId] = player;
		
		
		uint256 lastPriceOld = lastKnownCountryPrice[_countryId];
		lastKnownCountryPrice[_countryId] = getPriceOfCountry(_countryId);
		
		
		eliminated[gameId][_countryId] = true;
		howManyEliminated++;
		
		if (howManyEliminated.add(1) == allCountriesLength){
			jackpotTimestamp = block.timestamp;
			emit LastCountryStanding(_countryId, player, thisBalance, gameId, jackpotTimestamp);
		}	
			else {
				
				uint priceRaw = war_getNextNukePriceRaw();			
				nextPrice[gameId] = priceRaw.mul(kNext).div(1000);
				
				
				updateJackpotTimestamp(timestampNow);
			}
							
		lastNukedCountry = _countryId;		
		payCuts(priceToPay, thisBalance, _countryId, timestampNow);
		excessRefund(player, priceToPay, msg.value);
		howManyNuked++;
		
		
		emit Nuked(player, _countryId, priceToPay, priceRaw);
		emit PlayerEvent(1, _countryId, player, timestampNow, howManyEliminated, gameId);

		assert(lastKnownCountryPrice[_countryId] >= lastPriceOld);
	}