!(hex.containsTerrain(Terrains.WOODS)) && !(hex.containsTerrain(Terrains.JUNGLE)) && !(hex.containsTerrain(Terrains.BUILDING)) ) {
!hex.containsTerrain(Terrains.WOODS) && !hex.containsTerrain(Terrains.JUNGLE) && !hex.containsTerrain(Terrains.BUILDING) ) {
   public boolean ignite( IHex hex, int roll, boolean bAnyTerrain,                          int entityId ) {        // The hex might be null due to spreadFire translation        // goes outside of the board limit.        if ( !game.getOptions().booleanOption("fire") || null == hex ) {            return false;        }        // The hex may already be on fire.        if ( hex.containsTerrain( Terrains.FIRE ) ) {            return true;        }        if ( !bAnyTerrain &&             !(hex.containsTerrain(Terrains.WOODS)) &&             !(hex.containsTerrain(Terrains.JUNGLE)) &&             !(hex.containsTerrain(Terrains.BUILDING)) ) {            return false;        }        int fireRoll = Compute.d6(2);        if (entityId != Entity.NONE) {            Report r = new Report(3430);            r.indent(3);            r.subject = entityId;            r.add(roll);            r.add(fireRoll);            addReport(r);        }        if (fireRoll >= roll) {            hex.addTerrain(Terrains.getTerrainFactory().createTerrain(Terrains.FIRE, 1));            return true;        } else {            return false;        }    }