Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/maps/random/volcanic_lands.js
Show All 14 Lines | |||||
var oTree = "gaia/flora_tree_dead"; | var oTree = "gaia/flora_tree_dead"; | ||||
var oStoneLarge = "gaia/geology_stonemine_alpine_quarry"; | var oStoneLarge = "gaia/geology_stonemine_alpine_quarry"; | ||||
var oStoneSmall = "gaia/geology_stone_alpine_a"; | var oStoneSmall = "gaia/geology_stone_alpine_a"; | ||||
var oMetalLarge = "gaia/geology_metal_alpine_slabs"; | var oMetalLarge = "gaia/geology_metal_alpine_slabs"; | ||||
// decorative props | // decorative props | ||||
var aRockLarge = "actor|geology/stone_granite_med.xml"; | var aRockLarge = "actor|geology/stone_granite_med.xml"; | ||||
var aRockMedium = "actor|geology/stone_granite_med.xml"; | var aRockMedium = "actor|geology/stone_granite_med.xml"; | ||||
var aSmoke = "actor|particle/smoke.xml"; | |||||
var pForestD = [tGrassC + TERRAIN_SEPARATOR + oTree, tGrassC]; | var pForestD = [tGrassC + TERRAIN_SEPARATOR + oTree, tGrassC]; | ||||
var pForestP = [tGrassB + TERRAIN_SEPARATOR + oTree, tGrassB]; | var pForestP = [tGrassB + TERRAIN_SEPARATOR + oTree, tGrassB]; | ||||
log("Initializing map..."); | log("Initializing map..."); | ||||
InitMap(); | InitMap(); | ||||
var numPlayers = getNumPlayers(); | var numPlayers = getNumPlayers(); | ||||
var mapSize = getMapSize(); | var mapSize = getMapSize(); | ||||
var mapArea = mapSize*mapSize; | var mapArea = mapSize*mapSize; | ||||
// create tile classes | // create tile classes | ||||
var clPlayer = createTileClass(); | var clPlayer = createTileClass(); | ||||
var clHill = createTileClass(); | var clHill = createTileClass(); | ||||
var clHill2 = createTileClass(); | |||||
var clHill3 = createTileClass(); | |||||
var clHill4 = createTileClass(); | |||||
var clForest = createTileClass(); | var clForest = createTileClass(); | ||||
var clDirt = createTileClass(); | var clDirt = createTileClass(); | ||||
var clRock = createTileClass(); | var clRock = createTileClass(); | ||||
var clMetal = createTileClass(); | var clMetal = createTileClass(); | ||||
var clBaseResource = createTileClass(); | var clBaseResource = createTileClass(); | ||||
// randomize player order | // randomize player order | ||||
var playerIDs = []; | var playerIDs = []; | ||||
▲ Show 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | for (var x = 0; x < tries; ++x) | ||||
group = new SimpleGroup( | group = new SimpleGroup( | ||||
[new SimpleObject(oTree, num, num, 0, 3)], | [new SimpleObject(oTree, num, num, 0, 3)], | ||||
false, clBaseResource, tX, tZ | false, clBaseResource, tX, tZ | ||||
); | ); | ||||
if (createObjectGroup(group, 0, avoidClasses(clBaseResource, 2))) | if (createObjectGroup(group, 0, avoidClasses(clBaseResource, 2))) | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
RMS.SetProgress(15); | RMS.SetProgress(15); | ||||
log("Creating volcano"); | createVolcano(); | ||||
var fx = fractionToTiles(0.5); | |||||
var fz = fractionToTiles(0.5); | |||||
var ix = round(fx); | |||||
var iz = round(fz); | |||||
elexis: Making fx, ..., iz, local variables of the new helper function was what broke the volcano smoke. | |||||
var div = scaleByMapSize(1,8); | |||||
var placer = new ClumpPlacer(mapArea * 0.067 / div, 0.7, 0.05, 100, ix, iz); | |||||
var terrainPainter = new LayeredPainter( | |||||
[tCliff, tCliff], // terrains | |||||
[3] // widths | |||||
); | |||||
var elevationPainter = new SmoothElevationPainter( | |||||
ELEVATION_SET, // type | |||||
15, // elevation | |||||
3 // blend radius | |||||
); | |||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clHill)], null); | |||||
var placer = new ClumpPlacer(mapArea * 0.05 / div, 0.7, 0.05, 100, ix, iz); | |||||
var terrainPainter = new LayeredPainter( | |||||
[tCliff, tCliff], // terrains | |||||
[3] // widths | |||||
); | |||||
var elevationPainter = new SmoothElevationPainter( | |||||
ELEVATION_SET, // type | |||||
25, // elevation | |||||
3 // blend radius | |||||
); | |||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clHill2)], stayClasses(clHill, 1)); | |||||
var placer = new ClumpPlacer(mapArea * 0.02 / div, 0.7, 0.05, 100, ix, iz); | |||||
var terrainPainter = new LayeredPainter( | |||||
[tCliff, tCliff], // terrains | |||||
[3] // widths | |||||
); | |||||
var elevationPainter = new SmoothElevationPainter( | |||||
ELEVATION_SET, // type | |||||
45, // elevation | |||||
3 // blend radius | |||||
); | |||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clHill3)], stayClasses(clHill2, 1)); | |||||
var placer = new ClumpPlacer(mapArea * 0.011 / div, 0.7, 0.05, 100, ix, iz); | |||||
var terrainPainter = new LayeredPainter( | |||||
[tCliff, tCliff], // terrains | |||||
[3] // widths | |||||
); | |||||
var elevationPainter = new SmoothElevationPainter( | |||||
ELEVATION_SET, // type | |||||
62, // elevation | |||||
3 // blend radius | |||||
); | |||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clHill4)], stayClasses(clHill3, 1)); | |||||
var placer = new ClumpPlacer(mapArea * 0.003 / div, 0.7, 0.05, 100, ix, iz); | |||||
var terrainPainter = new LayeredPainter( | |||||
[tCliff, tLava1, tLava2, tLava3], // terrains | |||||
[1, 1, 1] // widths | |||||
); | |||||
var elevationPainter = new SmoothElevationPainter( | |||||
ELEVATION_SET, // type | |||||
42, // elevation | |||||
1 // blend radius | |||||
); | |||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clHill4)], stayClasses(clHill4, 1)); | |||||
var num = floor(mapArea * 0.03 / 15 / div); | |||||
var tX = round(fx); | |||||
var tZ = round(fz); | |||||
var group = new SimpleGroup( | |||||
[new SimpleObject(aSmoke, num, num, 0,7)], | |||||
false, clBaseResource, tX, tZ | |||||
); | |||||
createObjectGroup(group, 0, stayClasses(clHill4,1)); | |||||
RMS.SetProgress(45); | RMS.SetProgress(45); | ||||
log("Creating hills..."); | log("Creating hills..."); | ||||
placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1); | |||||
terrainPainter = new LayeredPainter( | |||||
[tCliff, tGrass], // terrains | |||||
[2] // widths | |||||
); | |||||
elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 18, 2); | |||||
createAreas( | createAreas( | ||||
placer, | new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1), | ||||
[terrainPainter, elevationPainter, paintClass(clHill)], | [ | ||||
new LayeredPainter([tCliff, tGrass], [2]), | |||||
new SmoothElevationPainter(ELEVATION_SET, 18, 2), | |||||
paintClass(clHill) | |||||
], | |||||
avoidClasses(clPlayer, 12, clHill, 15, clBaseResource, 2), | avoidClasses(clPlayer, 12, clHill, 15, clBaseResource, 2), | ||||
scaleByMapSize(2, 8) * numPlayers | scaleByMapSize(2, 8) * numPlayers | ||||
); | ); | ||||
// calculate desired number of trees for map (based on size) | // calculate desired number of trees for map (based on size) | ||||
var MIN_TREES = 200; | var MIN_TREES = 200; | ||||
var MAX_TREES = 1250; | var MAX_TREES = 1250; | ||||
▲ Show 20 Lines • Show All 143 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
Making fx, ..., iz, local variables of the new helper function was what broke the volcano smoke. Took me 4 hours one night and 5 minutes today.