Add generated perk and item icons

This commit is contained in:
MeatSlicer Developer committed 2026-07-29 19:24:11 +10:00
1 parent 8ab0857ee0
commit 9ba0e22ce5
42 files changed
+21 -36

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 949 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

+20 -20
View File
@@ -6,30 +6,30 @@
<meta name="theme-color" content="#0a0305">
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22><text y=%2252%22 x=%2250%22 text-anchor=%22middle%22 dominant-baseline=%22middle%22 font-size=%2252%22>🔪</text></svg>">
<title>MEATSLICER</title>
<link rel="stylesheet" href="css/style.css?v=34">
<link rel="stylesheet" href="css/style.css?v=35">
</head>
<body>
<div id="wrap">
<canvas id="game" width="960" height="640"></canvas>
</div>
<script src="js/utils.js?v=34"></script>
<script src="js/state.js?v=34"></script>
<script src="js/input.js?v=34"></script>
<script src="js/sfx.js?v=34"></script>
<script src="js/sfxbank.js?v=34"></script>
<script src="js/audio.js?v=34"></script>
<script src="js/sprites.js?v=34"></script>
<script src="js/particles.js?v=34"></script>
<script src="js/weapons.js?v=34"></script>
<script src="js/bullets.js?v=34"></script>
<script src="js/pickups.js?v=34"></script>
<script src="js/items.js?v=34"></script>
<script src="js/perks.js?v=34"></script>
<script src="js/enemies.js?v=34"></script>
<script src="js/bosses.js?v=34"></script>
<script src="js/rooms.js?v=34"></script>
<script src="js/player.js?v=34"></script>
<script src="js/hud.js?v=34"></script>
<script src="js/main.js?v=34"></script>
<script src="js/utils.js?v=35"></script>
<script src="js/state.js?v=35"></script>
<script src="js/input.js?v=35"></script>
<script src="js/sfx.js?v=35"></script>
<script src="js/sfxbank.js?v=35"></script>
<script src="js/audio.js?v=35"></script>
<script src="js/sprites.js?v=35"></script>
<script src="js/particles.js?v=35"></script>
<script src="js/weapons.js?v=35"></script>
<script src="js/bullets.js?v=35"></script>
<script src="js/pickups.js?v=35"></script>
<script src="js/items.js?v=35"></script>
<script src="js/perks.js?v=35"></script>
<script src="js/enemies.js?v=35"></script>
<script src="js/bosses.js?v=35"></script>
<script src="js/rooms.js?v=35"></script>
<script src="js/player.js?v=35"></script>
<script src="js/hud.js?v=35"></script>
<script src="js/main.js?v=35"></script>
</body>
</html>
+1 -16
View File
@@ -45,20 +45,6 @@ const SPRITE_MANIFEST = [
'boss_platefather_sheet', 'boss_augerprime_sheet', 'boss_scald_sheet',
];
// These planned icons intentionally use the built-in gold '?' treatment until
// the second-pass image generation is approved. Keeping them in the manifest
// documents the asset contract without issuing noisy 404 requests at runtime.
const SPRITE_FALLBACK_ONLY = new Set([
'perk_critbone', 'perk_critmeat', 'perk_flensing', 'perk_ember', 'perk_frostbile',
'perk_heavyhand', 'perk_thickhide', 'perk_secondwind', 'perk_scrapfeed', 'perk_boneknit',
'perk_spiteflesh', 'perk_carrion', 'perk_sinew',
'i_chainsinew', 'i_mortarbone', 'i_bloatrounds', 'i_marrowglut', 'i_hollowneedle', 'i_bloodshoteye',
'i_flayerkiss', 'i_emberjar', 'i_acidgland', 'i_hookrounds', 'i_sledgerounds', 'i_graftedtrigger',
'i_deadmanswitch', 'i_orbitcrown', 'i_tannedhide', 'i_deadmansclock', 'i_hollowbones', 'i_boneplate',
'i_wormgut', 'i_spinecage', 'i_secondstomach', 'i_spitewell', 'i_twinhearts', 'i_brassmagazine',
'i_crowbait', 'i_gorgingleech', 'i_rerollrib',
]);
const ACTOR_ANIMS = {
idle: { frames: 4, fps: 5, offset: 0 },
move: { frames: 8, fps: 12, offset: 32 },
@@ -83,12 +69,11 @@ const Sprites = {
load() {
let pending = 0;
for (const name of SPRITE_MANIFEST) {
if (SPRITE_FALLBACK_ONLY.has(name)) continue;
pending++;
const img = new Image();
img.onload = () => { this.imgs[name] = img; if (--pending === 0) G.imagesLoaded = true; };
img.onerror = () => { if (--pending === 0) G.imagesLoaded = true; };
img.src = 'assets/' + name + '.png?v=34';
img.src = 'assets/' + name + '.png?v=35';
}
},