/** * Override for the main driftAddSmoke to allow for 0 direction changes * @param x * @param y * @param windDir * @param windStr * @return */ public Coords driftAddSmoke(Coords coords, int windDir, int windStr) { return driftAddSmoke(coords, windDir, windStr, 0); }
resolveSmoke(); debugTime("resolve fire 1", true); && game.getOptions().booleanOption( OptionsConstants.ADVANCED_WOODS_BURN_DOWN)) { burnReports = burnDownWoods(currentCoords); vPhaseReport.addAll(burnReports); spreadFire(currentXCoord, currentYCoord, windDirection, windStrength);
for ( Coords currentCoords : cloud.getCoordsList() ){ Coords smokeCoords = driftAddSmoke(currentCoords, windDir, windStr); boolean dissipated = driftSmokeDissipate(cloud, roll, windStr); driftSmokeReport(cloud,dissipated); if (dissipated) { cloud.reduceSmokeLevel();
@Override void doEndPhaseChanges(Vector<Report> vPhaseReport) { game = server.getGame(); if (game.getOptions().booleanOption(OptionsConstants.ADVCOMBAT_TACOPS_START_FIRE)) { this.vPhaseReport = vPhaseReport; resolveFire(); this.vPhaseReport = null; } }
spreadFire(nextCoords, directroll, curHeight); spreadFire(nextCoords.translated(windDir), directroll, curHeight); spreadFire(src.translated((windDir + 1) % 6), obliqueroll, curHeight); spreadFire(src.translated((windDir + 5) % 6), obliqueroll, curHeight);
return driftAddSmoke(src, (windDir + 1) % 6, windStr, ++directionChanges); return driftAddSmoke(src, (windDir - 2 ) % 6, windStr, ++directionChanges); return driftAddSmoke(nextCoords, windDir, --windStr);