function explodePhoenix(uint256 _phoenixId) whenNotPaused public {
      Phoenix phoenix = phoenixes[_phoenixId];
      require(msg.sender == phoenix.currentOwner);
      require(PHOENIX_POOL > 0);
      require(now >= phoenix.nextExplosionTime);
      
      uint256 payout = phoenix.explosivePower.mul(PHOENIX_POOL).div(EXPLOSION_DENOMINATOR);

      
      PHOENIX_POOL = PHOENIX_POOL.sub(payout);
      
      
      if (phoenix.price >= PRICE_CUTOFF) {
        phoenix.price = phoenix.price.mul(HIGHER_PRICE_RESET_PERCENTAGE).div(100);
      } else {
        phoenix.price = phoenix.price.mul(LOWER_PRICE_RESET_PERCENTAGE).div(100);
        if (phoenix.price < BASE_PRICE) {
          phoenix.price = BASE_PRICE;
          }
      }

      
      phoenix.previousOwner = msg.sender;
      
      phoenix.nextExplosionTime = now + (phoenix.cooldown * 1 minutes);
      
      
      sendFunds(msg.sender,payout);
      
      
      PhoenixExploded(_phoenixId, msg.sender, payout, phoenix.price, phoenix.nextExplosionTime);
  }