rebalance mountains

This commit is contained in:
Tangent 2024-01-13 14:02:40 -05:00
parent 780458f88f
commit 1ea595fbda
3 changed files with 23 additions and 6 deletions

View file

@ -5,4 +5,4 @@ export const BEACH = 1;
export const LIGHT_FOREST = 2; export const LIGHT_FOREST = 2;
export const DENSE_FOREST = 3; export const DENSE_FOREST = 3;
export const MOUNTAIN = 4; export const MOUNTAIN = 4;
export const ICECAP = 9; export const ICECAP = 6;

View file

@ -8,6 +8,25 @@ export type LobeGeneratorConstructor = (
basePos: number basePos: number
) => LobeGenerator; ) => LobeGenerator;
/** form mountain */
export const SMALL_MOUNTAIN: LobeGeneratorConstructor =
(islands: IslandGrid, basePos: number) => () => {
const islandTiles = islands.floodSearch(basePos, (tile) => tile > WATER);
const edgeTiles = islandTiles.filter(
(pos) => islands.data[pos] == WATER || islands.data[pos] == BEACH
);
islands.dropWithin(edgeTiles);
const mountainTiles = islands.floodSearch(
basePos,
(tile) => tile > MOUNTAIN
);
islands.dropWithin(mountainTiles);
return true;
};
/** form mountain with icecap */ /** form mountain with icecap */
export const BIG_MOUNTAIN: LobeGeneratorConstructor = export const BIG_MOUNTAIN: LobeGeneratorConstructor =
(islands: IslandGrid, basePos: number) => () => { (islands: IslandGrid, basePos: number) => () => {
@ -150,7 +169,7 @@ export const NO_ISLAND: LobeGeneratorConstructor =
}; };
export const BIG_ISLANDS = [BIG_MOUNTAIN, BIG_BEACH, HILLY_FOREST]; export const BIG_ISLANDS = [BIG_MOUNTAIN, BIG_BEACH, HILLY_FOREST];
export const ROCKY_ISLANDS = [BIG_MOUNTAIN, HILLY_FOREST]; export const ROCKY_ISLANDS = [SMALL_MOUNTAIN, BIG_MOUNTAIN, HILLY_FOREST];
export const GREEN_ISLANDS = [ export const GREEN_ISLANDS = [
SCATTERED_FOREST, SCATTERED_FOREST,
CONTIGUOUS_FOREST, CONTIGUOUS_FOREST,
@ -158,6 +177,7 @@ export const GREEN_ISLANDS = [
]; ];
export const SMALL_ISLANDS = [SMALL_BEACH, SCATTERED_FOREST, ERODED_BEACH]; export const SMALL_ISLANDS = [SMALL_BEACH, SCATTERED_FOREST, ERODED_BEACH];
export const ALL_ISLANDS = [ export const ALL_ISLANDS = [
SMALL_MOUNTAIN,
BIG_MOUNTAIN, BIG_MOUNTAIN,
SMALL_BEACH, SMALL_BEACH,
BIG_BEACH, BIG_BEACH,

View file

@ -22,10 +22,7 @@ export function renderIslands(
cx.fillStyle = "#008800"; cx.fillStyle = "#008800";
break; break;
case MOUNTAIN: case MOUNTAIN:
case 5: case MOUNTAIN + 1:
case 6:
case 7:
case 8:
cx.fillStyle = "#666666"; cx.fillStyle = "#666666";
break; break;
default: default: