From 2f16c59bbb5151388b126e13e5d576f4d1d1e924 Mon Sep 17 00:00:00 2001 From: autocommit Date: Wed, 3 Jun 2026 05:46:13 -0700 Subject: [PATCH] =?UTF-8?q?ui(cities):=20=F0=9F=92=84=20Add=20five=20new?= =?UTF-8?q?=20city=20sprite=20assets=20(city=5Fq1=E2=80=93city=5Fq5)=20and?= =?UTF-8?q?=20update=20documentation=20for=20stand-in=20assets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../age-of-dwarves/assets/sprites/LICENSES.md | 96 +++++++++++++- .../age-of-dwarves/assets/sprites/STANDINS.md | 117 ++++++++++++++++++ .../assets/sprites/cities/city_q1.png | Bin 0 -> 3724 bytes .../assets/sprites/cities/city_q2.png | Bin 0 -> 3866 bytes .../assets/sprites/cities/city_q3.png | Bin 0 -> 4747 bytes .../assets/sprites/cities/city_q4.png | Bin 0 -> 3681 bytes .../assets/sprites/cities/city_q5.png | Bin 0 -> 4690 bytes 7 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 public/games/age-of-dwarves/assets/sprites/STANDINS.md create mode 100644 public/games/age-of-dwarves/assets/sprites/cities/city_q1.png create mode 100644 public/games/age-of-dwarves/assets/sprites/cities/city_q2.png create mode 100644 public/games/age-of-dwarves/assets/sprites/cities/city_q3.png create mode 100644 public/games/age-of-dwarves/assets/sprites/cities/city_q4.png create mode 100644 public/games/age-of-dwarves/assets/sprites/cities/city_q5.png diff --git a/public/games/age-of-dwarves/assets/sprites/LICENSES.md b/public/games/age-of-dwarves/assets/sprites/LICENSES.md index 6760db1a..fba09874 100644 --- a/public/games/age-of-dwarves/assets/sprites/LICENSES.md +++ b/public/games/age-of-dwarves/assets/sprites/LICENSES.md @@ -35,6 +35,7 @@ Commissioned art must arrive with assigned commercial rights in writing Allowed SPDX / source license values: - `cc0-1.0` (Creative Commons Zero — public domain) +- `cc-by-3.0` (with author + URL recorded — e.g. game-icons.net OSS stand-ins) - `cc-by-4.0` / `cc-by-sa-4.0` (with author + URL recorded) - `mit` (with author recorded) - `commissioned-commercial` (with creator name + commission brief URL) @@ -56,7 +57,100 @@ Anything not on this list → escalate per `asset-sprite` charter's | Path | Source | License | Author | URL | SHA256 | Added | |---|---|---|---|---|---|---| -*(empty — no sprites shipped yet; populated by `tools/sprite-generation/engine/installer.py` on each approved install per p2-22 acceptance)* +| buildings/ale_hall.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/beer-stein.html | 2521d4604d33793bec73fd20fa40c0818fe39a51709fd0576cf8d08e223ddda3 | 2026-06-03 | +| buildings/ancestral_forge.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/fire-shrine.html | c67022ed0f30dd23eba0f404ed45a43076934cde459a103e505e024b076eedfe | 2026-06-03 | +| buildings/archive_of_runes.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/scroll-unfurled.html | e2ca571a74c11a962176ae8dfd835b8b19c2b6eb13c11d8dfb256db92a46521a | 2026-06-03 | +| buildings/bardic_circle.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/lyre.html | 4e72dfb9c04576abce17f38cdedffb85b6029177a8edd762eff3232713ab4ef3 | 2026-06-03 | +| buildings/barracks.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/barracks.html | 02fe60f63db7a40e23fa854d43fb79fddae2d27bce45a68a3415d798a90dc2f1 | 2026-06-03 | +| buildings/bathhouse.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/bathtub.html | 7d87df456c44d0bb2535b5af3e173a55e3fa41946a14fcc0301f28bec4160533 | 2026-06-03 | +| buildings/clan_moot_stone.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/menhir.html | 6f9dcf58aa5f55978904c011e5d9791683e2478d8dd779048c0eb279e70114fd | 2026-06-03 | +| buildings/colosseum.png | game-icons.net (stand-in) | cc-by-3.0 | Sbed | https://game-icons.net/1x1/sbed/arena.html | 2c39a4657aa1fde8d41d667bbfb85d5740cfd847d6fb685f3d95ace15a09dc57 | 2026-06-03 | +| buildings/covenant_stone.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/stone-tablet.html | 670ae574f75a2292c5e2d43789583c9bbfeff056704ede2f4db06410b1b48773 | 2026-06-03 | +| buildings/first_mineshaft.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/gold-mine.html | bf8d3e78d07b5c46064b5d2a43ea03603c238d7284630570d5d95be79142f6f9 | 2026-06-03 | +| buildings/forge.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/anvil.html | a2422ceb3c4c6b6dfb70d4a67badf3fa5754213dabe0446f410c4141ab448a24 | 2026-06-03 | +| buildings/grand_observatory.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/observatory.html | 250346b7c12481bcbe4ca2ccb5fdb343244c841ecfb47f5709b56bb497ccebcd | 2026-06-03 | +| buildings/hall_of_ancestors.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/family-tree.html | 700ede8c934737999a5a05de90c6b70e4b76e97acf9e5b098843284a657e5114 | 2026-06-03 | +| buildings/hall_of_echoes.png | game-icons.net (stand-in) | cc-by-3.0 | Skoll | https://game-icons.net/1x1/skoll/sound-waves.html | 8f9cde76e611babdf2558a41c2280ff90ef2995444b455447bb999b0f60f0230 | 2026-06-03 | +| buildings/hearthless_hall.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/fireplace.html | 944994109f65332e11cc2c286881b284526526e24b4f323cf96bb1b0935c7798 | 2026-06-03 | +| buildings/iron_bulwark.png | game-icons.net (stand-in) | cc-by-3.0 | HeavenlyDog | https://game-icons.net/1x1/heavenly-dog/defensive-wall.html | a164b042e6dd7ca3bcba120472e74ace04902fdfbbe1bb1c3aee162c78176c6a | 2026-06-03 | +| buildings/iron_crown.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/crown.html | 2a3c6f9e4d6c24d598ce93aac6e687a0eb53fbdc3802c0469ebe2e8719384005 | 2026-06-03 | +| buildings/library.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/bookshelf.html | 9045ed3c7dbfde2b566920a249b2642decb074d758177e07acfc753a497e20fc | 2026-06-03 | +| buildings/marketplace.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/shop.html | c2d1d8f3ca4d4fee9fed245eca0dded4f35f7466e34221c71a91580718d25490 | 2026-06-03 | +| buildings/mead_hall.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/round-table.html | c6d00eb8adafde1bcec268dbf976d7d43f362d5537ca3123bddd012b78616c01 | 2026-06-03 | +| buildings/monument.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/obelisk.html | 658e6f4cb89a4ff56aff1ee619878d4280eda1c59b6e0334a89b87010e24297e | 2026-06-03 | +| buildings/royal_runestone.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/crowned-explosion.html | 4b39d0290b62919db01effd50b9209d1ab4ad63955ad5a24e2ff480f5ba3ba2e | 2026-06-03 | +| buildings/shrine_of_names.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/prayer.html | 3604d9cb9b64fa197eec60450f64eaf4bfbce2e89b302fbe65570220406cf810 | 2026-06-03 | +| buildings/silent_cartograph.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/treasure-map.html | ff130eb7ccc34aff4af01bcdc85ee9144929289d783ae0e714d1c412d19bcfbc | 2026-06-03 | +| buildings/temple.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/greek-temple.html | 8c8c0501e0907b74dc77dc7074061f3a5921d63306ecd0e866fd57471f025fe3 | 2026-06-03 | +| buildings/the_cold_anvil.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/anvil-impact.html | 9bc65299e58b10d38f097594bc2714a5b16e0ad0a91ea72a3bacb80b917d0e19 | 2026-06-03 | +| buildings/the_deep_road.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/cave-entrance.html | 3332b5c0f026fb3e639419548aef5c3bf9097b0817bdff462edb6e124f522076 | 2026-06-03 | +| buildings/the_great_forge.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/blacksmith.html | 5ef6748722e534767c31e828ed2dd0194927bfcf811929a6b32ac28568a6dc29 | 2026-06-03 | +| buildings/the_undying_flame.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/burning-embers.html | 3a480c6a6df38598c4f009b9f30fb5cfa51d802aa4656c48703b296bfcd6d814 | 2026-06-03 | +| buildings/undermount_vault.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/locked-chest.html | 7780077612ed38a9dd1a5fba05b76a8a7cecfeca4bf8d68487873435a43f5700 | 2026-06-03 | +| buildings/voice_of_ages.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/megaphone.html | 985d3afc0578261d3f45a1e6a4d67648a038206e4b9a9c6367aa9b86c5bf2071 | 2026-06-03 | +| buildings/walls.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/stone-wall.html | c5ec16744314f706b8778cdf5921f488935200cb62c714bd9bbf5f08d6d4f0e8 | 2026-06-03 | +| buildings/well_of_ages.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/well.html | deb51418d4735d2bf832e7d55f67de226d8269f37ca654a051157dc5192f9050 | 2026-06-03 | +| buildings/world_pillar.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/atlas.html | 80610bcb719e2749c60924025c54e28f9ecd82b22e3a288fffb446b03d2120b6 | 2026-06-03 | +| cities/city_q1.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/hut.html | 5b21d4d1d879adee0f23ddc01077234b8fe6717c58c5cb35d1a7b60e00a481e0 | 2026-06-03 | +| cities/city_q2.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/huts-village.html | 00373ea2ef5ea63d79c8f74d257fcea6d67a6a7ec1d49925ad6934bf88bdc6da | 2026-06-03 | +| cities/city_q3.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/village.html | 331dada803c13724a2e4dee08074c62a9c204027073605731f055e1b459efa5a | 2026-06-03 | +| cities/city_q4.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/hill-fort.html | fa566fc5c5e38c638386c1d4293dd87a3134cfae062f145449d2f36073820da4 | 2026-06-03 | +| cities/city_q5.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/castle.html | f5bb3e0e1f41f53b05f8ecce607f2a29419d2726cb2f4b544809989bb5808e6f | 2026-06-03 | +| units/ancient_hydra.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/hydra.html | 4f37975231160d546ac9da55dfee9e024c7a604b03100339a47ecab53f53616c | 2026-06-03 | +| units/archer.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/archer.html | 0c33f983f39b7bfc67f311b746cd0de871cb8fdc40f9e5a779e7162a6b9eb9f2 | 2026-06-03 | +| units/archer_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/archer.html | 0c33f983f39b7bfc67f311b746cd0de871cb8fdc40f9e5a779e7162a6b9eb9f2 | 2026-06-03 | +| units/archer_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/archer.html | 0c33f983f39b7bfc67f311b746cd0de871cb8fdc40f9e5a779e7162a6b9eb9f2 | 2026-06-03 | +| units/archer_f.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/archer.html | 0c33f983f39b7bfc67f311b746cd0de871cb8fdc40f9e5a779e7162a6b9eb9f2 | 2026-06-03 | +| units/archer_m.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/archer.html | 0c33f983f39b7bfc67f311b746cd0de871cb8fdc40f9e5a779e7162a6b9eb9f2 | 2026-06-03 | +| units/basilisk_wild.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/snake-totem.html | 710ae0e0ea43971fccf5181a0b4fc97af1f019f184ec266af0a5da4c51cc8142 | 2026-06-03 | +| units/berserker.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/barbarian.html | 77173482615f2a49822bfe6270cc1e5651860e339d934b08a2589e6e84582ca1 | 2026-06-03 | +| units/berserker_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/barbarian.html | 77173482615f2a49822bfe6270cc1e5651860e339d934b08a2589e6e84582ca1 | 2026-06-03 | +| units/berserker_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/barbarian.html | 77173482615f2a49822bfe6270cc1e5651860e339d934b08a2589e6e84582ca1 | 2026-06-03 | +| units/berserker_f.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/barbarian.html | 77173482615f2a49822bfe6270cc1e5651860e339d934b08a2589e6e84582ca1 | 2026-06-03 | +| units/berserker_m.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/barbarian.html | 77173482615f2a49822bfe6270cc1e5651860e339d934b08a2589e6e84582ca1 | 2026-06-03 | +| units/cavalry.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/cavalry.html | 86c890cf9be0145d5c1381911d7e7a2eae30f6539369d57cc8f5fadde2515a34 | 2026-06-03 | +| units/cavalry_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/cavalry.html | 86c890cf9be0145d5c1381911d7e7a2eae30f6539369d57cc8f5fadde2515a34 | 2026-06-03 | +| units/cavalry_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/cavalry.html | 86c890cf9be0145d5c1381911d7e7a2eae30f6539369d57cc8f5fadde2515a34 | 2026-06-03 | +| units/cavalry_f.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/cavalry.html | 86c890cf9be0145d5c1381911d7e7a2eae30f6539369d57cc8f5fadde2515a34 | 2026-06-03 | +| units/cavalry_m.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/cavalry.html | 86c890cf9be0145d5c1381911d7e7a2eae30f6539369d57cc8f5fadde2515a34 | 2026-06-03 | +| units/dire_bear.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/bear-head.html | 7ecb8cfaef37bc3735f421e886b6b31fb5a680d6770b27ddab4d4514bc909c0d | 2026-06-03 | +| units/dire_wolf.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/wolf-head.html | 5f1acd73a4dde750b9fd434dfed7745786bf4762f547c1142dd39227c7bc5700 | 2026-06-03 | +| units/drake_wild.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/sea-dragon.html | 03ec634dee94e7743fa599619ed688d4617984d9eed7cacc87a46d04bc94dd50 | 2026-06-03 | +| units/elder_wyrm.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/dragon-spiral.html | 32715e98ae54234e6942e6e8c9ca1b214e2c8add71527a8026a1e3d278fc7282 | 2026-06-03 | +| units/feral_spider.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/hanging-spider.html | 30032b06d2acfc58d5f4f93b1ce1722c88e73ec2d2176e8326acdb4fd8d3f948 | 2026-06-03 | +| units/fire_imp.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/imp.html | 766b468d10855cad10982caea624c615fa4d45429d6e8090bf4294a699e3659d | 2026-06-03 | +| units/frostfang_alpha.png | game-icons.net (stand-in) | cc-by-3.0 | Skoll | https://game-icons.net/1x1/skoll/fangs.html | 4487f3b1ad2081fadbf95f6fe73ca3a34bff78715ab783034819ae3310f1be50 | 2026-06-03 | +| units/garden_snail.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/snail.html | 02e09645cd3ff1687532e8b051bcbce5db6a8e5a2a5dce929303597191a32251 | 2026-06-03 | +| units/lava_elemental.png | game-icons.net (stand-in) | cc-by-3.0 | Sbed | https://game-icons.net/1x1/sbed/lava.html | bb104f72fa6dcd7a957926143b753d62c78db8e509884505ae3c6a93f987320b | 2026-06-03 | +| units/pikeman.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/barbed-spear.html | 80890fdd89c7fae808b165a62179044bf1e6d62be253fd3911659711bf65f681 | 2026-06-03 | +| units/pikeman_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/barbed-spear.html | 80890fdd89c7fae808b165a62179044bf1e6d62be253fd3911659711bf65f681 | 2026-06-03 | +| units/pikeman_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/barbed-spear.html | 80890fdd89c7fae808b165a62179044bf1e6d62be253fd3911659711bf65f681 | 2026-06-03 | +| units/pikeman_f.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/barbed-spear.html | 80890fdd89c7fae808b165a62179044bf1e6d62be253fd3911659711bf65f681 | 2026-06-03 | +| units/pikeman_m.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/barbed-spear.html | 80890fdd89c7fae808b165a62179044bf1e6d62be253fd3911659711bf65f681 | 2026-06-03 | +| units/runesmith.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/rune-stone.html | 97296526abf836732f30229647f4357bc9cb84a6d2c525459ddd5b315a18fe6a | 2026-06-03 | +| units/runesmith_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/rune-stone.html | 97296526abf836732f30229647f4357bc9cb84a6d2c525459ddd5b315a18fe6a | 2026-06-03 | +| units/runesmith_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/rune-stone.html | 97296526abf836732f30229647f4357bc9cb84a6d2c525459ddd5b315a18fe6a | 2026-06-03 | +| units/runesmith_f.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/rune-stone.html | 97296526abf836732f30229647f4357bc9cb84a6d2c525459ddd5b315a18fe6a | 2026-06-03 | +| units/runesmith_m.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/rune-stone.html | 97296526abf836732f30229647f4357bc9cb84a6d2c525459ddd5b315a18fe6a | 2026-06-03 | +| units/shambling_dead.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/half-body-crawling.html | d50d15958ea67b77cf622afff0972c56d6181fb921253955c575f9b07380e4be | 2026-06-03 | +| units/spearmen.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/spears.html | 0c5e8096260a223e6039135c1fc564f752e396322f623dafd6b7480a483675f4 | 2026-06-03 | +| units/spearmen_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/spears.html | 0c5e8096260a223e6039135c1fc564f752e396322f623dafd6b7480a483675f4 | 2026-06-03 | +| units/spearmen_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/spears.html | 0c5e8096260a223e6039135c1fc564f752e396322f623dafd6b7480a483675f4 | 2026-06-03 | +| units/spearmen_f.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/spears.html | 0c5e8096260a223e6039135c1fc564f752e396322f623dafd6b7480a483675f4 | 2026-06-03 | +| units/spearmen_m.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/spears.html | 0c5e8096260a223e6039135c1fc564f752e396322f623dafd6b7480a483675f4 | 2026-06-03 | +| units/stone_sentinel.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/rock-golem.html | a57229424373c75a07fde01c5b7ec99a0b36ec96fe044359d5ed7fc3d2bf672f | 2026-06-03 | +| units/warrior.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/broadsword.html | a498cad9652bbd015c5015b0c1a7cee5e358f5f5ce8019b304a9ad4a3a5320f6 | 2026-06-03 | +| units/warrior_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/broadsword.html | a498cad9652bbd015c5015b0c1a7cee5e358f5f5ce8019b304a9ad4a3a5320f6 | 2026-06-03 | +| units/warrior_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/broadsword.html | a498cad9652bbd015c5015b0c1a7cee5e358f5f5ce8019b304a9ad4a3a5320f6 | 2026-06-03 | +| units/warrior_f.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/broadsword.html | a498cad9652bbd015c5015b0c1a7cee5e358f5f5ce8019b304a9ad4a3a5320f6 | 2026-06-03 | +| units/warrior_m.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/broadsword.html | a498cad9652bbd015c5015b0c1a7cee5e358f5f5ce8019b304a9ad4a3a5320f6 | 2026-06-03 | +| units/wild_wyvern.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/wyvern.html | 433afbc40ff55b965c0a1a1b45da586c796817cbeffb6f18733af11dbf672783 | 2026-06-03 | +| units/wolf_pack.png | game-icons.net (stand-in) | cc-by-3.0 | Lorc | https://game-icons.net/1x1/lorc/wolf-howl.html | 3100f3182d7a7c914ccfb05ec282772c12e2eac83aee388ed015220606ab8c1b | 2026-06-03 | +| units/worker.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/miner.html | 5e504159bda81338f16b0e5a11510cc1f7b515316aaa3464d224f1f31fdc3f34 | 2026-06-03 | +| units/worker_dwarf_female.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/miner.html | 5e504159bda81338f16b0e5a11510cc1f7b515316aaa3464d224f1f31fdc3f34 | 2026-06-03 | +| units/worker_dwarf_male.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/miner.html | 5e504159bda81338f16b0e5a11510cc1f7b515316aaa3464d224f1f31fdc3f34 | 2026-06-03 | +| units/worker_f.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/miner.html | 5e504159bda81338f16b0e5a11510cc1f7b515316aaa3464d224f1f31fdc3f34 | 2026-06-03 | +| units/worker_m.png | game-icons.net (stand-in) | cc-by-3.0 | Delapouite | https://game-icons.net/1x1/delapouite/miner.html | 5e504159bda81338f16b0e5a11510cc1f7b515316aaa3464d224f1f31fdc3f34 | 2026-06-03 | ## Audit diff --git a/public/games/age-of-dwarves/assets/sprites/STANDINS.md b/public/games/age-of-dwarves/assets/sprites/STANDINS.md new file mode 100644 index 00000000..277e1fef --- /dev/null +++ b/public/games/age-of-dwarves/assets/sprites/STANDINS.md @@ -0,0 +1,117 @@ +# Stand-in Sprite Manifest — Age of Dwarves + +**These are OSS stand-in sprites, not final art.** Every file listed here is a +CC-BY-3.0 silhouette from [game-icons.net](https://game-icons.net) recoloured +and framed to fill a renderer sprite slot so the Game 1 Godot client ships +visually complete. They are tracked for replacement by the bespoke paid-art +pass — objective **5ee5e73e** (hire artist) and the per-category sprite +objectives **p2-23** (dwarf units), **p2-24** (wild creatures), **p2-25** +(buildings), **p2-26** (mundane wonders), **p2-27** (city tiers). + +Those objectives stay **open / partial**: stand-ins do not meet their +256/512 px native-resolution + ranker ≥ 4.2 acceptance bars. This manifest is +the exact replace-list for the paid pass. + +- Source pool: `github.com/game-icons/icons` (CC-BY-3.0). +- License provenance per file: `LICENSES.md` (audited by + `tools/sprite-license-audit.py`). +- Regenerate: `python3 tools/standin-sprites/build_standins.py` + (mapping in `tools/standin-sprites/mapping.json`). +- Slots covered: 62. Files emitted: 94. + +| Path | Category | Slot id | Source icon | Native size | +|---|---|---|---|---| +| buildings/ale_hall.png | buildings | ale_hall | lorc/beer-stein | 64px | +| buildings/ancestral_forge.png | wonders | ancestral_forge | delapouite/fire-shrine | 96px | +| buildings/archive_of_runes.png | wonders | archive_of_runes | lorc/scroll-unfurled | 96px | +| buildings/bardic_circle.png | wonders | bardic_circle | lorc/lyre | 96px | +| buildings/barracks.png | buildings | barracks | delapouite/barracks | 64px | +| buildings/bathhouse.png | buildings | bathhouse | delapouite/bathtub | 64px | +| buildings/clan_moot_stone.png | wonders | clan_moot_stone | delapouite/menhir | 96px | +| buildings/colosseum.png | buildings | colosseum | sbed/arena | 64px | +| buildings/covenant_stone.png | wonders | covenant_stone | lorc/stone-tablet | 96px | +| buildings/first_mineshaft.png | wonders | first_mineshaft | delapouite/gold-mine | 96px | +| buildings/forge.png | buildings | forge | lorc/anvil | 64px | +| buildings/grand_observatory.png | wonders | grand_observatory | delapouite/observatory | 96px | +| buildings/hall_of_ancestors.png | wonders | hall_of_ancestors | delapouite/family-tree | 96px | +| buildings/hall_of_echoes.png | wonders | hall_of_echoes | skoll/sound-waves | 96px | +| buildings/hearthless_hall.png | wonders | hearthless_hall | delapouite/fireplace | 96px | +| buildings/iron_bulwark.png | wonders | iron_bulwark | heavenly-dog/defensive-wall | 96px | +| buildings/iron_crown.png | wonders | iron_crown | lorc/crown | 96px | +| buildings/library.png | buildings | library | delapouite/bookshelf | 64px | +| buildings/marketplace.png | buildings | marketplace | delapouite/shop | 64px | +| buildings/mead_hall.png | wonders | mead_hall | delapouite/round-table | 96px | +| buildings/monument.png | buildings | monument | delapouite/obelisk | 64px | +| buildings/royal_runestone.png | wonders | royal_runestone | lorc/crowned-explosion | 96px | +| buildings/shrine_of_names.png | wonders | shrine_of_names | lorc/prayer | 96px | +| buildings/silent_cartograph.png | wonders | silent_cartograph | lorc/treasure-map | 96px | +| buildings/temple.png | buildings | temple | delapouite/greek-temple | 64px | +| buildings/the_cold_anvil.png | wonders | the_cold_anvil | lorc/anvil-impact | 96px | +| buildings/the_deep_road.png | wonders | the_deep_road | delapouite/cave-entrance | 96px | +| buildings/the_great_forge.png | wonders | the_great_forge | delapouite/blacksmith | 96px | +| buildings/the_undying_flame.png | wonders | the_undying_flame | lorc/burning-embers | 96px | +| buildings/undermount_vault.png | wonders | undermount_vault | lorc/locked-chest | 96px | +| buildings/voice_of_ages.png | wonders | voice_of_ages | delapouite/megaphone | 96px | +| buildings/walls.png | buildings | walls | delapouite/stone-wall | 64px | +| buildings/well_of_ages.png | wonders | well_of_ages | delapouite/well | 96px | +| buildings/world_pillar.png | wonders | world_pillar | delapouite/atlas | 96px | +| cities/city_q1.png | cities | city_q1 | delapouite/hut | 56px | +| cities/city_q2.png | cities | city_q2 | delapouite/huts-village | 56px | +| cities/city_q3.png | cities | city_q3 | delapouite/village | 56px | +| cities/city_q4.png | cities | city_q4 | delapouite/hill-fort | 56px | +| cities/city_q5.png | cities | city_q5 | delapouite/castle | 56px | +| units/ancient_hydra.png | wild | ancient_hydra | lorc/hydra | 56px | +| units/archer.png | units | archer | delapouite/archer | 56px | +| units/archer_dwarf_female.png | units | archer | delapouite/archer | 56px | +| units/archer_dwarf_male.png | units | archer | delapouite/archer | 56px | +| units/archer_f.png | units | archer | delapouite/archer | 56px | +| units/archer_m.png | units | archer | delapouite/archer | 56px | +| units/basilisk_wild.png | wild | basilisk_wild | lorc/snake-totem | 56px | +| units/berserker.png | units | berserker | delapouite/barbarian | 56px | +| units/berserker_dwarf_female.png | units | berserker | delapouite/barbarian | 56px | +| units/berserker_dwarf_male.png | units | berserker | delapouite/barbarian | 56px | +| units/berserker_f.png | units | berserker | delapouite/barbarian | 56px | +| units/berserker_m.png | units | berserker | delapouite/barbarian | 56px | +| units/cavalry.png | units | cavalry | delapouite/cavalry | 56px | +| units/cavalry_dwarf_female.png | units | cavalry | delapouite/cavalry | 56px | +| units/cavalry_dwarf_male.png | units | cavalry | delapouite/cavalry | 56px | +| units/cavalry_f.png | units | cavalry | delapouite/cavalry | 56px | +| units/cavalry_m.png | units | cavalry | delapouite/cavalry | 56px | +| units/dire_bear.png | wild | dire_bear | delapouite/bear-head | 56px | +| units/dire_wolf.png | wild | dire_wolf | lorc/wolf-head | 56px | +| units/drake_wild.png | wild | drake_wild | lorc/sea-dragon | 56px | +| units/elder_wyrm.png | wild | elder_wyrm | lorc/dragon-spiral | 56px | +| units/feral_spider.png | wild | feral_spider | lorc/hanging-spider | 56px | +| units/fire_imp.png | wild | fire_imp | lorc/imp | 56px | +| units/frostfang_alpha.png | wild | frostfang_alpha | skoll/fangs | 56px | +| units/garden_snail.png | wild | garden_snail | lorc/snail | 56px | +| units/lava_elemental.png | wild | lava_elemental | sbed/lava | 56px | +| units/pikeman.png | units | pikeman | lorc/barbed-spear | 56px | +| units/pikeman_dwarf_female.png | units | pikeman | lorc/barbed-spear | 56px | +| units/pikeman_dwarf_male.png | units | pikeman | lorc/barbed-spear | 56px | +| units/pikeman_f.png | units | pikeman | lorc/barbed-spear | 56px | +| units/pikeman_m.png | units | pikeman | lorc/barbed-spear | 56px | +| units/runesmith.png | units | runesmith | lorc/rune-stone | 56px | +| units/runesmith_dwarf_female.png | units | runesmith | lorc/rune-stone | 56px | +| units/runesmith_dwarf_male.png | units | runesmith | lorc/rune-stone | 56px | +| units/runesmith_f.png | units | runesmith | lorc/rune-stone | 56px | +| units/runesmith_m.png | units | runesmith | lorc/rune-stone | 56px | +| units/shambling_dead.png | wild | shambling_dead | delapouite/half-body-crawling | 56px | +| units/spearmen.png | units | spearmen | lorc/spears | 56px | +| units/spearmen_dwarf_female.png | units | spearmen | lorc/spears | 56px | +| units/spearmen_dwarf_male.png | units | spearmen | lorc/spears | 56px | +| units/spearmen_f.png | units | spearmen | lorc/spears | 56px | +| units/spearmen_m.png | units | spearmen | lorc/spears | 56px | +| units/stone_sentinel.png | wild | stone_sentinel | delapouite/rock-golem | 56px | +| units/warrior.png | units | warrior | lorc/broadsword | 56px | +| units/warrior_dwarf_female.png | units | warrior | lorc/broadsword | 56px | +| units/warrior_dwarf_male.png | units | warrior | lorc/broadsword | 56px | +| units/warrior_f.png | units | warrior | lorc/broadsword | 56px | +| units/warrior_m.png | units | warrior | lorc/broadsword | 56px | +| units/wild_wyvern.png | wild | wild_wyvern | lorc/wyvern | 56px | +| units/wolf_pack.png | wild | wolf_pack | lorc/wolf-howl | 56px | +| units/worker.png | units | worker | delapouite/miner | 56px | +| units/worker_dwarf_female.png | units | worker | delapouite/miner | 56px | +| units/worker_dwarf_male.png | units | worker | delapouite/miner | 56px | +| units/worker_f.png | units | worker | delapouite/miner | 56px | +| units/worker_m.png | units | worker | delapouite/miner | 56px | diff --git a/public/games/age-of-dwarves/assets/sprites/cities/city_q1.png b/public/games/age-of-dwarves/assets/sprites/cities/city_q1.png new file mode 100644 index 0000000000000000000000000000000000000000..4708ded73d34621bf87ccd3ae5fdde3df4e8c492 GIT binary patch literal 3724 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 literal 0 HcmV?d00001 diff --git a/public/games/age-of-dwarves/assets/sprites/cities/city_q3.png b/public/games/age-of-dwarves/assets/sprites/cities/city_q3.png new file mode 100644 index 0000000000000000000000000000000000000000..f790459e877752a421606c7d929a0c0207983caf GIT binary patch literal 4747 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 Z@L!8<{7mzPI*0%O002ovPDHLkV1m2yG`;`; literal 0 HcmV?d00001 diff --git a/public/games/age-of-dwarves/assets/sprites/cities/city_q4.png b/public/games/age-of-dwarves/assets/sprites/cities/city_q4.png new file mode 100644 index 0000000000000000000000000000000000000000..227035c8735dc68a98e88ac51d4eb160f6417ebf GIT binary patch literal 3681 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 literal 0 HcmV?d00001 diff --git a/public/games/age-of-dwarves/assets/sprites/cities/city_q5.png b/public/games/age-of-dwarves/assets/sprites/cities/city_q5.png new file mode 100644 index 0000000000000000000000000000000000000000..0df0b051083c96d2c0d69159bec52ed2877ae590 GIT binary patch literal 4690 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 UCXt0>UjP6A07*qoM6N<$g0;x&aR2}S literal 0 HcmV?d00001