Add generated perk and item icons
No files matched your search
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 949 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 930 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
@@ -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>
|
||||
@@ -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';
|
||||
}
|
||||
},
|
||||
|
||||
|
||||