fertig-classic-games/data/totalannihilation-artwork.json

108 lines
4.6 KiB
JSON

{
"_readme": [
"Drop-in painted art for Total Annihilation (spec: src/games/totalannihilation/sprites.md).",
"Paint a sheet, drop the PNG under assets/images/totalannihilation/, set its `path` below and",
"reload — no code changes needed. Any sheet left path:null is rendered procedurally.",
"",
"`kind` selects which procedural painter stands in for an unpainted sheet, and it is the reason",
"adding a sheet here is a JSON-only change: painters are keyed by kind, never by sheet name.",
" unit — frameWidth == frameHeight, art drawn FACING RIGHT (+x) and CENTRED in the cell,",
" in neutral grey so the runtime army tint multiplies correctly. The engine rotates",
" the sprite, so keep the silhouette inside a circle of diameter frameWidth*0.7 or",
" the corners will clip as it turns.",
" structure — frameWidth == frameHeight, buildings are NOT rotated and NOT drawn facing right.",
" Two frames per building: the finished one and a translucent wireframe used while",
" it is still being nanolathed.",
" terrain — one sheet per theme. Frame order is fixed (see `terrainFrames` below) so any new",
" theme sheet drops straight in.",
" icon — build-menu glyphs, full colour, never tinted.",
"",
"`cols` only sizes the procedural stand-in canvas; a painted sheet is measured from the PNG.",
"Adding a THIRD ARMY = add two sheets here (kind unit + kind structure) and one `armies` entry",
"in data/totalannihilation-rules.json. Adding a THEME = one sheet here, one `themes` entry, and",
"the theme id in rules.skirmish.themes."
],
"terrainFrames": {
"_comment": "Fixed frame order every kind:terrain sheet must follow.",
"ground": 0, "groundAlt1": 1, "groundAlt2": 2, "rough": 3,
"cliff": 4, "water": 5, "waterDeep": 6, "metal": 7, "road": 8
},
"sheets": {
"arm-units": {
"key": "ta-arm-units", "path": "assets/images/ta/arm-units.png", "kind": "unit",
"frameWidth": 128, "frameHeight": 128, "cols": 8,
"rows": 8
},
"arm-structures": {
"key": "ta-arm-structures", "path": "assets/images/ta/arm-structures.png", "kind": "structure",
"frameWidth": 192, "frameHeight": 192, "cols": 6,
"rows": 4
},
"core-units": {
"key": "ta-core-units", "path": "assets/images/ta/core-units.png", "kind": "unit",
"frameWidth": 128, "frameHeight": 128, "cols": 8,
"rows": 8
},
"core-structures": {
"key": "ta-core-structures", "path": "assets/images/ta/core-structures.png", "kind": "structure",
"frameWidth": 192, "frameHeight": 192, "cols": 6,
"rows": 4
},
"terrain-grasslands": {
"key": "ta-terrain-grasslands", "path": "assets/images/ta/terrain-grasslands.png", "kind": "terrain",
"frameWidth": 128, "frameHeight": 128, "cols": 9,
"rows": 1
},
"terrain-snowfields": {
"key": "ta-terrain-snowfields", "path": "assets/images/ta/terrain-snowfields.png", "kind": "terrain",
"frameWidth": 128, "frameHeight": 128, "cols": 9,
"rows": 1
},
"terrain-tropics": {
"key": "ta-terrain-tropics", "path": "assets/images/ta/terrain-tropics.png", "kind": "terrain",
"frameWidth": 128, "frameHeight": 128, "cols": 9,
"rows": 1
},
"icons": {
"key": "ta-icons", "path": null, "kind": "icon",
"frameWidth": 64, "frameHeight": 64, "cols": 10,
"rows": 4
}
},
"themes": {
"grasslands": {
"name": "Grasslands",
"sheet": "terrain-grasslands",
"palette": {
"ground": "#5f7f3d", "groundAlt1": "#6b8c45", "groundAlt2": "#55743a",
"rough": "#7d7048", "cliff": "#4c4838", "cliffTop": "#6b6552",
"water": "#2f5f9e", "waterDeep": "#1d3f70",
"metal": "#9aa3ab", "road": "#8b8578", "speck": "#3f5a28"
}
},
"snowfields": {
"name": "Snowfields",
"sheet": "terrain-snowfields",
"palette": {
"ground": "#d6dee6", "groundAlt1": "#e4ebf1", "groundAlt2": "#c4cfda",
"rough": "#a9b4bf", "cliff": "#6a737e", "cliffTop": "#8e99a4",
"water": "#3d6d95", "waterDeep": "#27506f",
"metal": "#9aa3ab", "road": "#9fa6ad", "speck": "#aebccb"
}
},
"tropics": {
"name": "Tropics",
"sheet": "terrain-tropics",
"palette": {
"ground": "#2f6b3c", "groundAlt1": "#3a7f46", "groundAlt2": "#265c33",
"rough": "#7a6b3a", "cliff": "#4a3f2e", "cliffTop": "#6d5f45",
"water": "#1f8fa8", "waterDeep": "#12667a",
"metal": "#9aa3ab", "road": "#9c8f6e", "speck": "#1d4a26"
}
}
}
}