SOURCE / PINNED RELEASE
Made of little things.
Sickman Survival
- Release
- 7335c9fdf0a8…
- Author-recorded commit
- cbd2eeafa70d…
- License
- LICENSE
- Author’s source reference
- nostr://npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr/wss%3A%2F%2Fgit.napplet.soy%2F/n-8804151df7f
Archive hash verified: 591bab4addcbe5fc…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
import {
BEDROCK,
BG_BEAM,
BG_GLOW,
BG_SHELF,
BG_STEM,
BG_TRUNK,
BG_WALL,
BG_WALL_ALT,
BG_WINDOW,
BG_WINDOW_DARK,
BRICK,
CAP,
CRATE,
DIRT,
GRASS,
LEAF,
PLANK,
ROOF,
STONE,
} from './terrain.ts';
/**
* "Dusk before impact": a warm, saturated sunset world with an ink-black hero.
* Scene colors are app-owned and never follow the host theme.
*/
export const FG_COLORS: Record<number, number> = {
[DIRT]: 0x7a4a2e,
[GRASS]: 0x8fae3c,
[STONE]: 0x6a5e78,
[BEDROCK]: 0x2b2234,
[BRICK]: 0xa8513e,
[PLANK]: 0xc28a4f,
[LEAF]: 0x3f7a46,
[CAP]: 0xd8433a,
[ROOF]: 0x4f3a68,
[CRATE]: 0xb07a3c,
};
export const BG_COLORS: Record<number, number> = {
[BG_WALL]: 0x4a3236,
[BG_TRUNK]: 0x5a3a26,
[BG_STEM]: 0xd9cbb0,
[BG_WINDOW]: 0xffc865,
[BG_WINDOW_DARK]: 0x2e2840,
[BG_GLOW]: 0x9af5d6,
[BG_BEAM]: 0x2e1c1c,
[BG_WALL_ALT]: 0x3f3044,
[BG_SHELF]: 0x6b3d3a,
};
/** Book spines on shelves, picked per cell from texture noise. */
export const BOOK_COLORS = [0x8a3b3b, 0x3f5a6e, 0x7a6a3a, 0x5e3f6e];
/** Earth back wall behind open cave cells, and the dark that closes in underground. */
export const CAVE_WALL = 0x3a2531;
export const CAVE_DARK = '12, 6, 16';
/** Cave fungus light: the one cool color in the world, so it reads as "underground". */
export const FUNGUS_GLOW = '120, 240, 205';
export const MOLE_FUR = '#5e4256';
export const MOLE_BELLY = '#9a7480';
export const MOLE_NOSE = '#ff8fa8';
export const MOLE_CLAW = '#f3dcc2';
export const MOLE_FLASH = '#fff1d6';
export const MOLE_EYE = '255, 92, 60';
export const CAP_SPOT = 0xf6ead2;
export const SCORCH = 0x1c1216;
export const INK = '#140e1a';
export const INK_RIM = 'rgba(255, 236, 210, 0.9)';
export const METEOR_CORE = '#fff4cf';
export const METEOR_GLOW = '255, 122, 47';
export const WARNING = '#ff4a3d';
export const SPARK_COLORS = [0xffe08a, 0xffa24a, 0xff6a2f, 0xfff4cf];
export const SMOKE_COLOR = 0x3a2a33;
export const DUST_COLOR = 0xd9b98a;
/** Sky gradient stops at calm (0) and at full storm (1). */
export const SKY_CALM = [0x2c1b45, 0x8a3b5c, 0xf08a4b, 0xffd28a];
export const SKY_STORM = [0x1a0d22, 0x6e1d2e, 0xd2482a, 0xff9a4a];
export const HILLS_FAR = 0x6e3a5e;
export const HILLS_NEAR = 0x4a2748;
export function mixColor(a: number, b: number, t: number): number {
const r = ((a >> 16) & 255) + (((b >> 16) & 255) - ((a >> 16) & 255)) * t;
const g = ((a >> 8) & 255) + (((b >> 8) & 255) - ((a >> 8) & 255)) * t;
const bl = (a & 255) + ((b & 255) - (a & 255)) * t;
return (Math.round(r) << 16) | (Math.round(g) << 8) | Math.round(bl);
}
export function css(color: number, alpha = 1): string {
return `rgba(${(color >> 16) & 255}, ${(color >> 8) & 255}, ${color & 255}, ${alpha})`;
}
/** Split-screen player colours, by slot: bright against the dusk sky and the cave dark alike. */
export const PLAYER_COLORS = ['#ffd23f', '#4cc9f0', '#ff6b9a', '#7ae582'] as const;
