diff --git a/assets/audio/announcer/cora_wins.mp3 b/assets/audio/announcer/cora_wins.mp3 deleted file mode 100644 index 834c4fa..0000000 Binary files a/assets/audio/announcer/cora_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/edda_wins.mp3 b/assets/audio/announcer/edda_wins.mp3 deleted file mode 100644 index e6f7bbb..0000000 Binary files a/assets/audio/announcer/edda_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/haldor_wins.mp3 b/assets/audio/announcer/haldor_wins.mp3 deleted file mode 100644 index 5c26592..0000000 Binary files a/assets/audio/announcer/haldor_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/isolde_wins.mp3 b/assets/audio/announcer/isolde_wins.mp3 deleted file mode 100644 index 52ac1d8..0000000 Binary files a/assets/audio/announcer/isolde_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/manifest.js b/assets/audio/announcer/manifest.js index 0261aef..908b961 100644 --- a/assets/audio/announcer/manifest.js +++ b/assets/audio/announcer/manifest.js @@ -1 +1 @@ -window.ANNOUNCER_MANIFEST = {"voice":{"name":"Grady","voice_id":"e2a2d2e6-9ed2-59cd-82af-feaa27f8a678","voice_type":"preset","provider":"Higgsfield","model":"text2speech_v2","variant":"elevenlabs","language":"English","locked":true},"clips":{"select_arco":{"file":"assets/audio/announcer/select_arco.mp3","duration":0.914286,"text":"Arco!"},"select_fenr":{"file":"assets/audio/announcer/select_fenr.mp3","duration":1.07102,"text":"Fenr!"},"round_1":{"file":"assets/audio/announcer/round_1.mp3","duration":1.07102,"text":"Round one!"},"round_2":{"file":"assets/audio/announcer/round_2.mp3","duration":2.194286,"text":"Round two!"},"round_3":{"file":"assets/audio/announcer/round_3.mp3","duration":1.306122,"text":"Round three!"},"fight":{"file":"assets/audio/announcer/fight.mp3","duration":1.07102,"text":"Fight!"},"ko":{"file":"assets/audio/announcer/ko.mp3","duration":0.679184,"text":"K.O.!"},"arco_wins":{"file":"assets/audio/announcer/arco_wins.mp3","duration":1.410612,"text":"Arco wins!"},"fenr_wins":{"file":"assets/audio/announcer/fenr_wins.mp3","duration":1.48898,"text":"Fenr wins!"},"draw":{"file":"assets/audio/announcer/draw.mp3","duration":1.07102,"text":"Draw!"},"time_up":{"file":"assets/audio/announcer/time_up.mp3","duration":1.227755,"text":"Time up!"},"double_ko":{"file":"assets/audio/announcer/double_ko.mp3","duration":1.48898,"text":"Double K.O.!"},"select_mira":{"file":"assets/audio/announcer/select_mira.mp3","duration":1.306122,"text":"Mira!"},"mira_wins":{"file":"assets/audio/announcer/mira_wins.mp3","duration":1.645714,"text":"Mira wins!"},"select_cora":{"file":"assets/audio/announcer/select_cora.mp3","duration":0.914286,"text":"Cora!"},"cora_wins":{"file":"assets/audio/announcer/cora_wins.mp3","duration":1.306122,"text":"Cora wins!"},"select_naja":{"file":"assets/audio/announcer/select_naja.mp3","duration":1.149388,"text":"Naja!"},"naja_wins":{"file":"assets/audio/announcer/naja_wins.mp3","duration":1.410612,"text":"Naja wins!"},"select_haldor":{"file":"assets/audio/announcer/select_haldor.mp3","duration":1.149388,"text":"Haldor!"},"haldor_wins":{"file":"assets/audio/announcer/haldor_wins.mp3","duration":1.306122,"text":"Haldor wins!"},"select_zanni":{"file":"assets/audio/announcer/select_zanni.mp3","duration":1.149388,"text":"Zanni!"},"zanni_wins":{"file":"assets/audio/announcer/zanni_wins.mp3","duration":1.48898,"text":"Zanni wins!"},"select_isolde":{"file":"assets/audio/announcer/select_isolde.mp3","duration":0.679,"text":"Isolde!"},"isolde_wins":{"file":"assets/audio/announcer/isolde_wins.mp3","duration":1.489,"text":"Isolde wins!"},"select_rhea":{"file":"assets/audio/announcer/select_rhea.mp3","duration":0.993,"text":"Rhea!"},"rhea_wins":{"file":"assets/audio/announcer/rhea_wins.mp3","duration":1.306,"text":"Rhea wins!"},"select_solan":{"file":"assets/audio/announcer/select_solan.mp3","duration":0.914286,"text":"Solan!"},"solan_wins":{"file":"assets/audio/announcer/solan_wins.mp3","duration":1.38449,"text":"Solan wins!"},"select_nib":{"file":"assets/audio/announcer/select_nib.mp3","duration":0.914286,"text":"Nib!"},"nib_wins":{"file":"assets/audio/announcer/nib_wins.mp3","duration":1.410612,"text":"Nib wins!"},"select_edda":{"file":"assets/audio/announcer/select_edda.mp3","duration":0.992653,"text":"Edda!"},"edda_wins":{"file":"assets/audio/announcer/edda_wins.mp3","duration":1.07102,"text":"Edda wins!"}}}; +window.ANNOUNCER_MANIFEST = {"voice": {"name": "Grady", "voice_id": "e2a2d2e6-9ed2-59cd-82af-feaa27f8a678", "voice_type": "preset", "provider": "Higgsfield", "model": "text2speech_v2", "variant": "elevenlabs", "language": "English", "locked": true}, "clips": {"select_arco": {"file": "assets/audio/announcer/select_arco.mp3", "duration": 0.914286, "text": "Arco!"}, "select_fenr": {"file": "assets/audio/announcer/select_fenr.mp3", "duration": 1.07102, "text": "Fenr!"}, "round_1": {"file": "assets/audio/announcer/round_1.mp3", "duration": 1.07102, "text": "Round one!"}, "round_2": {"file": "assets/audio/announcer/round_2.mp3", "duration": 2.194286, "text": "Round two!"}, "round_3": {"file": "assets/audio/announcer/round_3.mp3", "duration": 1.306122, "text": "Round three!"}, "fight": {"file": "assets/audio/announcer/fight.mp3", "duration": 1.07102, "text": "Fight!"}, "ko": {"file": "assets/audio/announcer/ko.mp3", "duration": 0.679184, "text": "K.O.!"}, "arco_wins": {"file": "assets/audio/announcer/arco_wins.mp3", "duration": 1.410612, "text": "Arco wins!"}, "fenr_wins": {"file": "assets/audio/announcer/fenr_wins.mp3", "duration": 1.48898, "text": "Fenr wins!"}, "draw": {"file": "assets/audio/announcer/draw.mp3", "duration": 1.07102, "text": "Draw!"}, "time_up": {"file": "assets/audio/announcer/time_up.mp3", "duration": 1.227755, "text": "Time up!"}, "double_ko": {"file": "assets/audio/announcer/double_ko.mp3", "duration": 1.48898, "text": "Double K.O.!"}}}; diff --git a/assets/audio/announcer/mira_wins.mp3 b/assets/audio/announcer/mira_wins.mp3 deleted file mode 100644 index 7258dad..0000000 Binary files a/assets/audio/announcer/mira_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/naja_wins.mp3 b/assets/audio/announcer/naja_wins.mp3 deleted file mode 100644 index 61f8285..0000000 Binary files a/assets/audio/announcer/naja_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/nib_wins.mp3 b/assets/audio/announcer/nib_wins.mp3 deleted file mode 100644 index be606ef..0000000 Binary files a/assets/audio/announcer/nib_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/rhea_wins.mp3 b/assets/audio/announcer/rhea_wins.mp3 deleted file mode 100644 index d166e03..0000000 Binary files a/assets/audio/announcer/rhea_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_cora.mp3 b/assets/audio/announcer/select_cora.mp3 deleted file mode 100644 index 76d758e..0000000 Binary files a/assets/audio/announcer/select_cora.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_edda.mp3 b/assets/audio/announcer/select_edda.mp3 deleted file mode 100644 index e4c3322..0000000 Binary files a/assets/audio/announcer/select_edda.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_haldor.mp3 b/assets/audio/announcer/select_haldor.mp3 deleted file mode 100644 index 6ceda29..0000000 Binary files a/assets/audio/announcer/select_haldor.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_isolde.mp3 b/assets/audio/announcer/select_isolde.mp3 deleted file mode 100644 index 47900cb..0000000 Binary files a/assets/audio/announcer/select_isolde.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_mira.mp3 b/assets/audio/announcer/select_mira.mp3 deleted file mode 100644 index 04f5f07..0000000 Binary files a/assets/audio/announcer/select_mira.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_naja.mp3 b/assets/audio/announcer/select_naja.mp3 deleted file mode 100644 index 4897217..0000000 Binary files a/assets/audio/announcer/select_naja.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_nib.mp3 b/assets/audio/announcer/select_nib.mp3 deleted file mode 100644 index 732de88..0000000 Binary files a/assets/audio/announcer/select_nib.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_rhea.mp3 b/assets/audio/announcer/select_rhea.mp3 deleted file mode 100644 index ecb8e93..0000000 Binary files a/assets/audio/announcer/select_rhea.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_solan.mp3 b/assets/audio/announcer/select_solan.mp3 deleted file mode 100644 index 41ebcf0..0000000 Binary files a/assets/audio/announcer/select_solan.mp3 and /dev/null differ diff --git a/assets/audio/announcer/select_zanni.mp3 b/assets/audio/announcer/select_zanni.mp3 deleted file mode 100644 index 5e14d00..0000000 Binary files a/assets/audio/announcer/select_zanni.mp3 and /dev/null differ diff --git a/assets/audio/announcer/solan_wins.mp3 b/assets/audio/announcer/solan_wins.mp3 deleted file mode 100644 index 6b44d66..0000000 Binary files a/assets/audio/announcer/solan_wins.mp3 and /dev/null differ diff --git a/assets/audio/announcer/zanni_wins.mp3 b/assets/audio/announcer/zanni_wins.mp3 deleted file mode 100644 index 29ff4aa..0000000 Binary files a/assets/audio/announcer/zanni_wins.mp3 and /dev/null differ diff --git a/assets/cora/audio/cora-ultimate-anika.mp3 b/assets/cora/audio/cora-ultimate-anika.mp3 deleted file mode 100644 index 917b2e4..0000000 Binary files a/assets/cora/audio/cora-ultimate-anika.mp3 and /dev/null differ diff --git a/assets/cora/audio/cora_wins.mp3 b/assets/cora/audio/cora_wins.mp3 deleted file mode 100644 index 834c4fa..0000000 Binary files a/assets/cora/audio/cora_wins.mp3 and /dev/null differ diff --git a/assets/cora/audio/select_cora.mp3 b/assets/cora/audio/select_cora.mp3 deleted file mode 100644 index 76d758e..0000000 Binary files a/assets/cora/audio/select_cora.mp3 and /dev/null differ diff --git a/assets/cora/manifest.js b/assets/cora/manifest.js deleted file mode 100644 index 083c0bd..0000000 --- a/assets/cora/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.CORA_MANIFEST = {"characterId": "cora", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 7, "durations_ms": [143, 143, 143, 143], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.CORA_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -78, "right": 51, "top": -184, "bottom": 0}, "height": 184}, {"frame": 1, "bounds": {"left": -79, "right": 56, "top": -184, "bottom": 0}, "height": 184}, {"frame": 2, "bounds": {"left": -81, "right": 57, "top": -183, "bottom": 0}, "height": 183}, {"frame": 3, "bounds": {"left": -78, "right": 52, "top": -184, "bottom": 0}, "height": 184}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -73, "right": 62, "top": -182, "bottom": 0}, "height": 182}, {"frame": 1, "bounds": {"left": -71, "right": 58, "top": -183, "bottom": 0}, "height": 183}, {"frame": 2, "bounds": {"left": -73, "right": 62, "top": -182, "bottom": 0}, "height": 182}, {"frame": 3, "bounds": {"left": -71, "right": 58, "top": -183, "bottom": 0}, "height": 183}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -79, "right": 85, "top": -153, "bottom": 0}, "height": 153}, {"frame": 1, "bounds": {"left": -69, "right": 75, "top": -155, "bottom": 0}, "height": 155}, {"frame": 2, "bounds": {"left": -77, "right": 88, "top": -153, "bottom": 0}, "height": 153}, {"frame": 3, "bounds": {"left": -71, "right": 76, "top": -155, "bottom": 0}, "height": 155}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -109, "right": 62, "top": -216, "bottom": 0}, "height": 216}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -79, "right": 41, "top": -136, "bottom": 0}, "height": 136}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -58, "right": 67, "top": -136, "bottom": 0}, "height": 136}, {"frame": 1, "bounds": {"left": -66, "right": 60, "top": -122, "bottom": 0}, "height": 122}, {"frame": 2, "bounds": {"left": -57, "right": 57, "top": -123, "bottom": 0}, "height": 123}, {"frame": 3, "bounds": {"left": -61, "right": 62, "top": -137, "bottom": 0}, "height": 137}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -80, "right": 59, "top": -178, "bottom": 0}, "height": 178}, {"frame": 1, "bounds": {"left": -84, "right": 63, "top": -178, "bottom": 0}, "height": 178}, {"frame": 2, "bounds": {"left": -84, "right": 87, "top": -178, "bottom": 0}, "height": 178}, {"frame": 3, "bounds": {"left": -77, "right": 58, "top": -178, "bottom": 0}, "height": 178}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -79, "right": 66, "top": -176, "bottom": 0}, "height": 176}, {"frame": 1, "bounds": {"left": -77, "right": 74, "top": -182, "bottom": 0}, "height": 182}, {"frame": 2, "bounds": {"left": -79, "right": 68, "top": -206, "bottom": 0}, "height": 206}, {"frame": 3, "bounds": {"left": -83, "right": 60, "top": -175, "bottom": 0}, "height": 175}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -52, "right": 51, "top": -188, "bottom": 0}, "height": 188}, {"frame": 1, "bounds": {"left": -99, "right": 85, "top": -189, "bottom": 0}, "height": 189}, {"frame": 2, "bounds": {"left": -113, "right": 115, "top": -203, "bottom": 0}, "height": 203}, {"frame": 3, "bounds": {"left": -69, "right": 54, "top": -188, "bottom": 0}, "height": 188}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -83, "right": 64, "top": -172, "bottom": 0}, "height": 172}, {"frame": 1, "bounds": {"left": -110, "right": 61, "top": -172, "bottom": 0}, "height": 172}, {"frame": 2, "bounds": {"left": -91, "right": 101, "top": -173, "bottom": 0}, "height": 173}, {"frame": 3, "bounds": {"left": -80, "right": 64, "top": -172, "bottom": 0}, "height": 172}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -113, "right": 68, "top": -236, "bottom": 0}, "height": 236}, {"frame": 1, "bounds": {"left": -79, "right": 95, "top": -188, "bottom": 0}, "height": 188}, {"frame": 2, "bounds": {"left": -105, "right": 93, "top": -175, "bottom": 0}, "height": 175}, {"frame": 3, "bounds": {"left": -78, "right": 59, "top": -184, "bottom": 0}, "height": 184}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -61, "right": 55, "top": -178, "bottom": 0}, "height": 178}, {"frame": 1, "bounds": {"left": -104, "right": 74, "top": -178, "bottom": 0}, "height": 178}, {"frame": 2, "bounds": {"left": -95, "right": 58, "top": -216, "bottom": 0}, "height": 216}, {"frame": 3, "bounds": {"left": -93, "right": 58, "top": -216, "bottom": 0}, "height": 216}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -92, "right": 59, "top": -172, "bottom": 0}, "height": 172}, {"frame": 1, "bounds": {"left": -73, "right": 50, "top": -177, "bottom": 0}, "height": 177}, {"frame": 2, "bounds": {"left": -65, "right": 63, "top": -158, "bottom": 0}, "height": 158}, {"frame": 3, "bounds": {"left": -79, "right": 56, "top": -177, "bottom": 0}, "height": 177}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -64, "right": 65, "top": -151, "bottom": 0}, "height": 151}, {"frame": 1, "bounds": {"left": -75, "right": 72, "top": -110, "bottom": 0}, "height": 110}, {"frame": 2, "bounds": {"left": -71, "right": 92, "top": -59, "bottom": 0}, "height": 59}, {"frame": 3, "bounds": {"left": -73, "right": 90, "top": -56, "bottom": 0}, "height": 56}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 98, "top": -60, "bottom": 0}, "height": 60}, {"frame": 1, "bounds": {"left": -75, "right": 70, "top": -113, "bottom": 0}, "height": 113}, {"frame": 2, "bounds": {"left": -71, "right": 75, "top": -146, "bottom": 0}, "height": 146}, {"frame": 3, "bounds": {"left": -80, "right": 63, "top": -182, "bottom": 0}, "height": 182}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": -24, "y": -108}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": -19, "y": -68}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 87, "y": -130, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack2": {"x": 68, "y": -204, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack3": {"x": 115, "y": -188, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill1": {"x": 101, "y": -144, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill2": {"x": 93, "y": -122, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}}}; diff --git a/assets/cora/run/sprite-sheet-alpha.webp b/assets/cora/run/sprite-sheet-alpha.webp deleted file mode 100644 index e288c6b..0000000 Binary files a/assets/cora/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/cora/ui/cutin.webp b/assets/cora/ui/cutin.webp deleted file mode 100644 index fc451e7..0000000 Binary files a/assets/cora/ui/cutin.webp and /dev/null differ diff --git a/assets/cora/ui/fx-feather.webp b/assets/cora/ui/fx-feather.webp deleted file mode 100644 index 5220f87..0000000 Binary files a/assets/cora/ui/fx-feather.webp and /dev/null differ diff --git a/assets/cora/ui/fx-gust.webp b/assets/cora/ui/fx-gust.webp deleted file mode 100644 index 0cd3bf3..0000000 Binary files a/assets/cora/ui/fx-gust.webp and /dev/null differ diff --git a/assets/cora/ui/fx-raven.webp b/assets/cora/ui/fx-raven.webp deleted file mode 100644 index d7d51f3..0000000 Binary files a/assets/cora/ui/fx-raven.webp and /dev/null differ diff --git a/assets/cora/ui/icon-basic.webp b/assets/cora/ui/icon-basic.webp deleted file mode 100644 index b9f1735..0000000 Binary files a/assets/cora/ui/icon-basic.webp and /dev/null differ diff --git a/assets/cora/ui/icon-skill1.webp b/assets/cora/ui/icon-skill1.webp deleted file mode 100644 index b980963..0000000 Binary files a/assets/cora/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/cora/ui/icon-skill2.webp b/assets/cora/ui/icon-skill2.webp deleted file mode 100644 index 3e510a3..0000000 Binary files a/assets/cora/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/cora/ui/icon-ultimate.webp b/assets/cora/ui/icon-ultimate.webp deleted file mode 100644 index 253b4fd..0000000 Binary files a/assets/cora/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/cora/ui/portrait.webp b/assets/cora/ui/portrait.webp deleted file mode 100644 index 88631ca..0000000 Binary files a/assets/cora/ui/portrait.webp and /dev/null differ diff --git a/assets/edda/audio/edda-ultimate.mp3 b/assets/edda/audio/edda-ultimate.mp3 deleted file mode 100644 index a0fc4de..0000000 Binary files a/assets/edda/audio/edda-ultimate.mp3 and /dev/null differ diff --git a/assets/edda/audio/edda_wins.mp3 b/assets/edda/audio/edda_wins.mp3 deleted file mode 100644 index e6f7bbb..0000000 Binary files a/assets/edda/audio/edda_wins.mp3 and /dev/null differ diff --git a/assets/edda/audio/select_edda.mp3 b/assets/edda/audio/select_edda.mp3 deleted file mode 100644 index e4c3322..0000000 Binary files a/assets/edda/audio/select_edda.mp3 and /dev/null differ diff --git a/assets/edda/manifest.js b/assets/edda/manifest.js deleted file mode 100644 index 2ee3573..0000000 --- a/assets/edda/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.EDDA_MANIFEST = {"characterId": "edda", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "magenta", "hex": "#FF00FF", "rgb": [255, 0, 255], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 6, "durations_ms": [167, 167, 167, 167], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.EDDA_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -63, "right": 75, "top": -171, "bottom": 0}, "height": 171}, {"frame": 1, "bounds": {"left": -63, "right": 75, "top": -171, "bottom": 0}, "height": 171}, {"frame": 2, "bounds": {"left": -63, "right": 75, "top": -171, "bottom": 0}, "height": 171}, {"frame": 3, "bounds": {"left": -63, "right": 75, "top": -171, "bottom": 0}, "height": 171}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -60, "right": 73, "top": -157, "bottom": 0}, "height": 157}, {"frame": 1, "bounds": {"left": -57, "right": 75, "top": -156, "bottom": 0}, "height": 156}, {"frame": 2, "bounds": {"left": -60, "right": 86, "top": -156, "bottom": 0}, "height": 156}, {"frame": 3, "bounds": {"left": -58, "right": 77, "top": -155, "bottom": 0}, "height": 155}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -54, "right": 93, "top": -137, "bottom": 0}, "height": 137}, {"frame": 1, "bounds": {"left": -52, "right": 90, "top": -137, "bottom": 0}, "height": 137}, {"frame": 2, "bounds": {"left": -55, "right": 91, "top": -137, "bottom": 0}, "height": 137}, {"frame": 3, "bounds": {"left": -51, "right": 90, "top": -137, "bottom": 0}, "height": 137}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -118, "right": 91, "top": -194, "bottom": 0}, "height": 194}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 55, "top": -137, "bottom": 0}, "height": 137}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -64, "right": 69, "top": -163, "bottom": 0}, "height": 163}, {"frame": 1, "bounds": {"left": -63, "right": 73, "top": -158, "bottom": 0}, "height": 158}, {"frame": 2, "bounds": {"left": -62, "right": 68, "top": -157, "bottom": 0}, "height": 157}, {"frame": 3, "bounds": {"left": -64, "right": 68, "top": -160, "bottom": 0}, "height": 160}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 73, "top": -151, "bottom": 0}, "height": 151}, {"frame": 1, "bounds": {"left": -60, "right": 94, "top": -149, "bottom": 0}, "height": 149}, {"frame": 2, "bounds": {"left": -56, "right": 127, "top": -151, "bottom": 0}, "height": 151}, {"frame": 3, "bounds": {"left": -61, "right": 72, "top": -166, "bottom": 0}, "height": 166}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 82, "top": -150, "bottom": 0}, "height": 150}, {"frame": 1, "bounds": {"left": -60, "right": 113, "top": -185, "bottom": 0}, "height": 185}, {"frame": 2, "bounds": {"left": -59, "right": 112, "top": -223, "bottom": 0}, "height": 223}, {"frame": 3, "bounds": {"left": -67, "right": 78, "top": -171, "bottom": 0}, "height": 171}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -66, "right": 83, "top": -213, "bottom": 0}, "height": 213}, {"frame": 1, "bounds": {"left": -62, "right": 82, "top": -218, "bottom": 0}, "height": 218}, {"frame": 2, "bounds": {"left": -66, "right": 83, "top": -160, "bottom": 0}, "height": 160}, {"frame": 3, "bounds": {"left": -63, "right": 82, "top": -213, "bottom": 0}, "height": 213}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -61, "right": 64, "top": -167, "bottom": 0}, "height": 167}, {"frame": 1, "bounds": {"left": -64, "right": 73, "top": -166, "bottom": 0}, "height": 166}, {"frame": 2, "bounds": {"left": -60, "right": 87, "top": -167, "bottom": 0}, "height": 167}, {"frame": 3, "bounds": {"left": -62, "right": 59, "top": -169, "bottom": 0}, "height": 169}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -65, "right": 59, "top": -167, "bottom": 0}, "height": 167}, {"frame": 1, "bounds": {"left": -59, "right": 53, "top": -169, "bottom": 0}, "height": 169}, {"frame": 2, "bounds": {"left": -64, "right": 125, "top": -139, "bottom": 0}, "height": 139}, {"frame": 3, "bounds": {"left": -66, "right": 62, "top": -172, "bottom": 0}, "height": 172}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -62, "right": 56, "top": -163, "bottom": 0}, "height": 163}, {"frame": 1, "bounds": {"left": -61, "right": 69, "top": -203, "bottom": 0}, "height": 203}, {"frame": 2, "bounds": {"left": -80, "right": 109, "top": -143, "bottom": 0}, "height": 143}, {"frame": 3, "bounds": {"left": -58, "right": 47, "top": -153, "bottom": 0}, "height": 153}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 59, "top": -168, "bottom": 0}, "height": 168}, {"frame": 1, "bounds": {"left": -71, "right": 70, "top": -167, "bottom": 0}, "height": 167}, {"frame": 2, "bounds": {"left": -84, "right": 93, "top": -173, "bottom": 0}, "height": 173}, {"frame": 3, "bounds": {"left": -69, "right": 76, "top": -167, "bottom": 0}, "height": 167}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -67, "right": 67, "top": -167, "bottom": 0}, "height": 167}, {"frame": 1, "bounds": {"left": -78, "right": 60, "top": -122, "bottom": 0}, "height": 122}, {"frame": 2, "bounds": {"left": -75, "right": 59, "top": -119, "bottom": 0}, "height": 119}, {"frame": 3, "bounds": {"left": -76, "right": 59, "top": -132, "bottom": 0}, "height": 132}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -63, "right": 68, "top": -142, "bottom": 0}, "height": 142}, {"frame": 1, "bounds": {"left": -64, "right": 88, "top": -156, "bottom": 0}, "height": 156}, {"frame": 2, "bounds": {"left": -50, "right": 74, "top": -159, "bottom": 0}, "height": 159}, {"frame": 3, "bounds": {"left": -63, "right": 80, "top": -166, "bottom": 0}, "height": 166}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": -14, "y": -97}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": -11, "y": -68}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 126, "y": -86, "frame": 2, "method": "Staff tip or hand on the impact frame (frame 3), facing right: farthest-right tip for thrusts, top-right extreme for the rising sweep, mid-shaft for the planted thump"}, "attack2": {"x": 111, "y": -201, "frame": 2, "method": "Staff tip or hand on the impact frame (frame 3), facing right: farthest-right tip for thrusts, top-right extreme for the rising sweep, mid-shaft for the planted thump"}, "attack3": {"x": 82, "y": -70, "frame": 2, "method": "Staff tip or hand on the impact frame (frame 3), facing right: farthest-right tip for thrusts, top-right extreme for the rising sweep, mid-shaft for the planted thump"}, "skill1": {"x": 86, "y": -85, "frame": 2, "method": "Staff tip or hand on the impact frame (frame 3), facing right: farthest-right tip for thrusts, top-right extreme for the rising sweep, mid-shaft for the planted thump"}, "skill2": {"x": 124, "y": -76, "frame": 2, "method": "Staff tip or hand on the impact frame (frame 3), facing right: farthest-right tip for thrusts, top-right extreme for the rising sweep, mid-shaft for the planted thump"}, "ultimate": {"x": 108, "y": -13, "frame": 2, "method": "Staff tip or hand on the impact frame (frame 3), facing right: farthest-right tip for thrusts, top-right extreme for the rising sweep, mid-shaft for the planted thump"}}}; diff --git a/assets/edda/run/sprite-sheet-alpha.webp b/assets/edda/run/sprite-sheet-alpha.webp deleted file mode 100644 index 7005678..0000000 Binary files a/assets/edda/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/edda/ui/cutin.webp b/assets/edda/ui/cutin.webp deleted file mode 100644 index 398109a..0000000 Binary files a/assets/edda/ui/cutin.webp and /dev/null differ diff --git a/assets/edda/ui/fx-ripple.webp b/assets/edda/ui/fx-ripple.webp deleted file mode 100644 index 5e1e7b6..0000000 Binary files a/assets/edda/ui/fx-ripple.webp and /dev/null differ diff --git a/assets/edda/ui/fx-shell.webp b/assets/edda/ui/fx-shell.webp deleted file mode 100644 index e468e56..0000000 Binary files a/assets/edda/ui/fx-shell.webp and /dev/null differ diff --git a/assets/edda/ui/fx-stomp.webp b/assets/edda/ui/fx-stomp.webp deleted file mode 100644 index abfad69..0000000 Binary files a/assets/edda/ui/fx-stomp.webp and /dev/null differ diff --git a/assets/edda/ui/fx-stone.webp b/assets/edda/ui/fx-stone.webp deleted file mode 100644 index a3f05d9..0000000 Binary files a/assets/edda/ui/fx-stone.webp and /dev/null differ diff --git a/assets/edda/ui/fx-tortoise.webp b/assets/edda/ui/fx-tortoise.webp deleted file mode 100644 index eb00364..0000000 Binary files a/assets/edda/ui/fx-tortoise.webp and /dev/null differ diff --git a/assets/edda/ui/icon-basic.webp b/assets/edda/ui/icon-basic.webp deleted file mode 100644 index aaf0553..0000000 Binary files a/assets/edda/ui/icon-basic.webp and /dev/null differ diff --git a/assets/edda/ui/icon-skill1.webp b/assets/edda/ui/icon-skill1.webp deleted file mode 100644 index 3fb1313..0000000 Binary files a/assets/edda/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/edda/ui/icon-skill2.webp b/assets/edda/ui/icon-skill2.webp deleted file mode 100644 index 895b8d4..0000000 Binary files a/assets/edda/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/edda/ui/icon-ultimate.webp b/assets/edda/ui/icon-ultimate.webp deleted file mode 100644 index 4dd2a88..0000000 Binary files a/assets/edda/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/edda/ui/portrait.webp b/assets/edda/ui/portrait.webp deleted file mode 100644 index bb58b2f..0000000 Binary files a/assets/edda/ui/portrait.webp and /dev/null differ diff --git a/assets/haldor/audio/haldor-ultimate.mp3 b/assets/haldor/audio/haldor-ultimate.mp3 deleted file mode 100644 index e0fdc43..0000000 Binary files a/assets/haldor/audio/haldor-ultimate.mp3 and /dev/null differ diff --git a/assets/haldor/audio/haldor_wins.mp3 b/assets/haldor/audio/haldor_wins.mp3 deleted file mode 100644 index 5c26592..0000000 Binary files a/assets/haldor/audio/haldor_wins.mp3 and /dev/null differ diff --git a/assets/haldor/audio/select_haldor.mp3 b/assets/haldor/audio/select_haldor.mp3 deleted file mode 100644 index 6ceda29..0000000 Binary files a/assets/haldor/audio/select_haldor.mp3 and /dev/null differ diff --git a/assets/haldor/manifest.js b/assets/haldor/manifest.js deleted file mode 100644 index 309b350..0000000 --- a/assets/haldor/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.HALDOR_MANIFEST = {"characterId": "haldor", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.HALDOR_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -81, "right": 85, "top": -169, "bottom": 0}, "height": 169}, {"frame": 1, "bounds": {"left": -81, "right": 87, "top": -169, "bottom": 0}, "height": 169}, {"frame": 2, "bounds": {"left": -82, "right": 87, "top": -169, "bottom": 0}, "height": 169}, {"frame": 3, "bounds": {"left": -81, "right": 83, "top": -169, "bottom": 0}, "height": 169}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 87, "top": -167, "bottom": 0}, "height": 167}, {"frame": 1, "bounds": {"left": -77, "right": 82, "top": -167, "bottom": 0}, "height": 167}, {"frame": 2, "bounds": {"left": -77, "right": 86, "top": -167, "bottom": 0}, "height": 167}, {"frame": 3, "bounds": {"left": -77, "right": 72, "top": -167, "bottom": 0}, "height": 167}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -99, "right": 68, "top": -157, "bottom": 0}, "height": 157}, {"frame": 1, "bounds": {"left": -99, "right": 55, "top": -156, "bottom": 0}, "height": 156}, {"frame": 2, "bounds": {"left": -99, "right": 67, "top": -157, "bottom": 0}, "height": 157}, {"frame": 3, "bounds": {"left": -99, "right": 55, "top": -156, "bottom": 0}, "height": 156}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -100, "right": 65, "top": -218, "bottom": 0}, "height": 218}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -59, "right": 94, "top": -144, "bottom": 0}, "height": 144}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -67, "right": 94, "top": -149, "bottom": 0}, "height": 149}, {"frame": 1, "bounds": {"left": -77, "right": 72, "top": -133, "bottom": 0}, "height": 133}, {"frame": 2, "bounds": {"left": -79, "right": 74, "top": -130, "bottom": 0}, "height": 130}, {"frame": 3, "bounds": {"left": -80, "right": 73, "top": -146, "bottom": 0}, "height": 146}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -97, "right": 73, "top": -157, "bottom": 0}, "height": 157}, {"frame": 1, "bounds": {"left": -69, "right": 105, "top": -158, "bottom": 0}, "height": 158}, {"frame": 2, "bounds": {"left": -69, "right": 131, "top": -157, "bottom": 0}, "height": 157}, {"frame": 3, "bounds": {"left": -73, "right": 68, "top": -158, "bottom": 0}, "height": 158}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 83, "top": -153, "bottom": 0}, "height": 153}, {"frame": 1, "bounds": {"left": -67, "right": 101, "top": -184, "bottom": 0}, "height": 184}, {"frame": 2, "bounds": {"left": -68, "right": 83, "top": -222, "bottom": 0}, "height": 222}, {"frame": 3, "bounds": {"left": -79, "right": 75, "top": -153, "bottom": 0}, "height": 153}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 70, "top": -225, "bottom": 0}, "height": 225}, {"frame": 1, "bounds": {"left": -72, "right": 112, "top": -198, "bottom": 0}, "height": 198}, {"frame": 2, "bounds": {"left": -101, "right": 85, "top": -151, "bottom": 0}, "height": 151}, {"frame": 3, "bounds": {"left": -72, "right": 97, "top": -197, "bottom": 0}, "height": 197}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -75, "right": 70, "top": -156, "bottom": 0}, "height": 156}, {"frame": 1, "bounds": {"left": -85, "right": 73, "top": -146, "bottom": 0}, "height": 146}, {"frame": 2, "bounds": {"left": -77, "right": 108, "top": -156, "bottom": 0}, "height": 156}, {"frame": 3, "bounds": {"left": -73, "right": 72, "top": -156, "bottom": 0}, "height": 156}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -76, "right": 80, "top": -136, "bottom": 0}, "height": 136}, {"frame": 1, "bounds": {"left": -69, "right": 88, "top": -150, "bottom": 0}, "height": 150}, {"frame": 2, "bounds": {"left": -78, "right": 95, "top": -137, "bottom": 0}, "height": 137}, {"frame": 3, "bounds": {"left": -74, "right": 76, "top": -151, "bottom": 0}, "height": 151}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 75, "top": -225, "bottom": 0}, "height": 225}, {"frame": 1, "bounds": {"left": -99, "right": 89, "top": -159, "bottom": 0}, "height": 159}, {"frame": 2, "bounds": {"left": -99, "right": 87, "top": -148, "bottom": 0}, "height": 148}, {"frame": 3, "bounds": {"left": -84, "right": 85, "top": -172, "bottom": 0}, "height": 172}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -102, "right": 76, "top": -162, "bottom": 0}, "height": 162}, {"frame": 1, "bounds": {"left": -70, "right": 87, "top": -156, "bottom": 0}, "height": 156}, {"frame": 2, "bounds": {"left": -98, "right": 70, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -77, "right": 78, "top": -155, "bottom": 0}, "height": 155}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 64, "top": -164, "bottom": 0}, "height": 164}, {"frame": 1, "bounds": {"left": -79, "right": 78, "top": -130, "bottom": 0}, "height": 130}, {"frame": 2, "bounds": {"left": -58, "right": 101, "top": -82, "bottom": 0}, "height": 82}, {"frame": 3, "bounds": {"left": -59, "right": 100, "top": -95, "bottom": 0}, "height": 95}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -86, "right": 108, "top": -110, "bottom": 0}, "height": 110}, {"frame": 1, "bounds": {"left": -70, "right": 62, "top": -128, "bottom": 0}, "height": 128}, {"frame": 2, "bounds": {"left": -66, "right": 68, "top": -156, "bottom": 0}, "height": 156}, {"frame": 3, "bounds": {"left": -69, "right": 75, "top": -171, "bottom": 0}, "height": 171}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": -18, "y": -109}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": 18, "y": -72}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 131, "y": -83, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack2": {"x": 83, "y": -212, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack3": {"x": 85, "y": -10, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill1": {"x": 108, "y": -111, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill2": {"x": 95, "y": -62, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}}}; diff --git a/assets/haldor/run/sprite-sheet-alpha.webp b/assets/haldor/run/sprite-sheet-alpha.webp deleted file mode 100644 index a38001b..0000000 Binary files a/assets/haldor/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/haldor/ui/cutin.webp b/assets/haldor/ui/cutin.webp deleted file mode 100644 index 324584f..0000000 Binary files a/assets/haldor/ui/cutin.webp and /dev/null differ diff --git a/assets/haldor/ui/fx-quake.webp b/assets/haldor/ui/fx-quake.webp deleted file mode 100644 index 23f048e..0000000 Binary files a/assets/haldor/ui/fx-quake.webp and /dev/null differ diff --git a/assets/haldor/ui/fx-slag.webp b/assets/haldor/ui/fx-slag.webp deleted file mode 100644 index 0727b91..0000000 Binary files a/assets/haldor/ui/fx-slag.webp and /dev/null differ diff --git a/assets/haldor/ui/fx-splash.webp b/assets/haldor/ui/fx-splash.webp deleted file mode 100644 index bd97961..0000000 Binary files a/assets/haldor/ui/fx-splash.webp and /dev/null differ diff --git a/assets/haldor/ui/fx-steam.webp b/assets/haldor/ui/fx-steam.webp deleted file mode 100644 index 91b4fca..0000000 Binary files a/assets/haldor/ui/fx-steam.webp and /dev/null differ diff --git a/assets/haldor/ui/icon-basic.webp b/assets/haldor/ui/icon-basic.webp deleted file mode 100644 index 4418f78..0000000 Binary files a/assets/haldor/ui/icon-basic.webp and /dev/null differ diff --git a/assets/haldor/ui/icon-skill1.webp b/assets/haldor/ui/icon-skill1.webp deleted file mode 100644 index 4555a8e..0000000 Binary files a/assets/haldor/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/haldor/ui/icon-skill2.webp b/assets/haldor/ui/icon-skill2.webp deleted file mode 100644 index 8f1c5cf..0000000 Binary files a/assets/haldor/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/haldor/ui/icon-ultimate.webp b/assets/haldor/ui/icon-ultimate.webp deleted file mode 100644 index 981de5b..0000000 Binary files a/assets/haldor/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/haldor/ui/portrait.webp b/assets/haldor/ui/portrait.webp deleted file mode 100644 index b3bdf99..0000000 Binary files a/assets/haldor/ui/portrait.webp and /dev/null differ diff --git a/assets/isolde/audio/isolde-ultimate.mp3 b/assets/isolde/audio/isolde-ultimate.mp3 deleted file mode 100644 index 4a90342..0000000 Binary files a/assets/isolde/audio/isolde-ultimate.mp3 and /dev/null differ diff --git a/assets/isolde/audio/isolde_wins.mp3 b/assets/isolde/audio/isolde_wins.mp3 deleted file mode 100644 index 52ac1d8..0000000 Binary files a/assets/isolde/audio/isolde_wins.mp3 and /dev/null differ diff --git a/assets/isolde/audio/select_isolde.mp3 b/assets/isolde/audio/select_isolde.mp3 deleted file mode 100644 index 47900cb..0000000 Binary files a/assets/isolde/audio/select_isolde.mp3 and /dev/null differ diff --git a/assets/isolde/manifest.js b/assets/isolde/manifest.js deleted file mode 100644 index 5a5639e..0000000 --- a/assets/isolde/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.ISOLDE_MANIFEST = {"characterId": "isolde", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.ISOLDE_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -53, "right": 76, "top": -199, "bottom": 0}, "height": 199}, {"frame": 1, "bounds": {"left": -54, "right": 79, "top": -199, "bottom": 0}, "height": 199}, {"frame": 2, "bounds": {"left": -54, "right": 77, "top": -199, "bottom": 0}, "height": 199}, {"frame": 3, "bounds": {"left": -53, "right": 76, "top": -199, "bottom": 0}, "height": 199}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -55, "right": 90, "top": -199, "bottom": 0}, "height": 199}, {"frame": 1, "bounds": {"left": -52, "right": 86, "top": -198, "bottom": 0}, "height": 198}, {"frame": 2, "bounds": {"left": -55, "right": 89, "top": -200, "bottom": 0}, "height": 200}, {"frame": 3, "bounds": {"left": -53, "right": 84, "top": -200, "bottom": 0}, "height": 200}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -76, "right": 79, "top": -155, "bottom": 0}, "height": 155}, {"frame": 1, "bounds": {"left": -77, "right": 72, "top": -154, "bottom": 0}, "height": 154}, {"frame": 2, "bounds": {"left": -73, "right": 78, "top": -155, "bottom": 0}, "height": 155}, {"frame": 3, "bounds": {"left": -73, "right": 68, "top": -155, "bottom": 0}, "height": 155}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 117, "top": -185, "bottom": 0}, "height": 185}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -83, "right": 58, "top": -159, "bottom": 0}, "height": 159}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -47, "right": 79, "top": -172, "bottom": 0}, "height": 172}, {"frame": 1, "bounds": {"left": -49, "right": 91, "top": -141, "bottom": 0}, "height": 141}, {"frame": 2, "bounds": {"left": -45, "right": 76, "top": -142, "bottom": 0}, "height": 142}, {"frame": 3, "bounds": {"left": -44, "right": 83, "top": -163, "bottom": 0}, "height": 163}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -54, "right": 90, "top": -164, "bottom": 0}, "height": 164}, {"frame": 1, "bounds": {"left": -57, "right": 100, "top": -161, "bottom": 0}, "height": 161}, {"frame": 2, "bounds": {"left": -59, "right": 157, "top": -161, "bottom": 0}, "height": 161}, {"frame": 3, "bounds": {"left": -55, "right": 92, "top": -164, "bottom": 0}, "height": 164}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -116, "right": 82, "top": -160, "bottom": 0}, "height": 160}, {"frame": 1, "bounds": {"left": -60, "right": 110, "top": -183, "bottom": 0}, "height": 183}, {"frame": 2, "bounds": {"left": -63, "right": 131, "top": -224, "bottom": 0}, "height": 224}, {"frame": 3, "bounds": {"left": -59, "right": 84, "top": -198, "bottom": 0}, "height": 198}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -94, "right": 58, "top": -145, "bottom": 0}, "height": 145}, {"frame": 1, "bounds": {"left": -39, "right": 155, "top": -158, "bottom": 0}, "height": 158}, {"frame": 2, "bounds": {"left": -77, "right": 184, "top": -144, "bottom": 0}, "height": 144}, {"frame": 3, "bounds": {"left": -55, "right": 70, "top": -193, "bottom": 0}, "height": 193}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -98, "right": 77, "top": -152, "bottom": 0}, "height": 152}, {"frame": 1, "bounds": {"left": -62, "right": 78, "top": -237, "bottom": 0}, "height": 237}, {"frame": 2, "bounds": {"left": -59, "right": 147, "top": -168, "bottom": 0}, "height": 168}, {"frame": 3, "bounds": {"left": -59, "right": 86, "top": -193, "bottom": 0}, "height": 193}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -50, "right": 105, "top": -138, "bottom": 0}, "height": 138}, {"frame": 1, "bounds": {"left": -12, "right": 138, "top": -142, "bottom": 0}, "height": 142}, {"frame": 2, "bounds": {"left": -67, "right": 135, "top": -138, "bottom": 0}, "height": 138}, {"frame": 3, "bounds": {"left": -64, "right": 63, "top": -155, "bottom": 0}, "height": 155}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -70, "right": 86, "top": -264, "bottom": 0}, "height": 264}, {"frame": 1, "bounds": {"left": -68, "right": 63, "top": -264, "bottom": 0}, "height": 264}, {"frame": 2, "bounds": {"left": -107, "right": 89, "top": -167, "bottom": 0}, "height": 167}, {"frame": 3, "bounds": {"left": -63, "right": 83, "top": -216, "bottom": 0}, "height": 216}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -106, "right": 67, "top": -199, "bottom": 0}, "height": 199}, {"frame": 1, "bounds": {"left": -55, "right": 69, "top": -201, "bottom": 0}, "height": 201}, {"frame": 2, "bounds": {"left": -109, "right": 64, "top": -199, "bottom": 0}, "height": 199}, {"frame": 3, "bounds": {"left": -53, "right": 66, "top": -201, "bottom": 0}, "height": 201}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 80, "top": -160, "bottom": 0}, "height": 160}, {"frame": 1, "bounds": {"left": -72, "right": 71, "top": -154, "bottom": 0}, "height": 154}, {"frame": 2, "bounds": {"left": -114, "right": 44, "top": -75, "bottom": 0}, "height": 75}, {"frame": 3, "bounds": {"left": -115, "right": 43, "top": -86, "bottom": 0}, "height": 86}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -88, "right": 85, "top": -102, "bottom": 0}, "height": 102}, {"frame": 1, "bounds": {"left": -67, "right": 74, "top": -163, "bottom": 0}, "height": 163}, {"frame": 2, "bounds": {"left": -46, "right": 98, "top": -182, "bottom": 0}, "height": 182}, {"frame": 3, "bounds": {"left": -55, "right": 93, "top": -199, "bottom": 0}, "height": 199}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": 20, "y": -92}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": -12, "y": -80}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 157, "y": -88, "frame": 2, "method": "Lance point on impact frame (farthest-right six-pixel tip; top-right extreme for the rising thrusts), facing right"}, "attack2": {"x": 131, "y": -224, "frame": 2, "method": "Lance point on impact frame (farthest-right six-pixel tip; top-right extreme for the rising thrusts), facing right"}, "attack3": {"x": 184, "y": -70, "frame": 2, "method": "Lance point on impact frame (farthest-right six-pixel tip; top-right extreme for the rising thrusts), facing right"}, "skill1": {"x": 147, "y": -168, "frame": 2, "method": "Lance point on impact frame (farthest-right six-pixel tip; top-right extreme for the rising thrusts), facing right"}, "skill2": {"x": 135, "y": -63, "frame": 2, "method": "Lance point on impact frame (farthest-right six-pixel tip; top-right extreme for the rising thrusts), facing right"}, "ultimate": {"x": 89, "y": -23, "frame": 2, "method": "Lance point on impact frame (farthest-right six-pixel tip; top-right extreme for the rising thrusts), facing right"}}}; diff --git a/assets/isolde/run/sprite-sheet-alpha.webp b/assets/isolde/run/sprite-sheet-alpha.webp deleted file mode 100644 index edde381..0000000 Binary files a/assets/isolde/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/isolde/ui/cutin.webp b/assets/isolde/ui/cutin.webp deleted file mode 100644 index 538c79f..0000000 Binary files a/assets/isolde/ui/cutin.webp and /dev/null differ diff --git a/assets/isolde/ui/fx-frost.webp b/assets/isolde/ui/fx-frost.webp deleted file mode 100644 index 74066d7..0000000 Binary files a/assets/isolde/ui/fx-frost.webp and /dev/null differ diff --git a/assets/isolde/ui/fx-piercer.webp b/assets/isolde/ui/fx-piercer.webp deleted file mode 100644 index ee070ed..0000000 Binary files a/assets/isolde/ui/fx-piercer.webp and /dev/null differ diff --git a/assets/isolde/ui/fx-shatter.webp b/assets/isolde/ui/fx-shatter.webp deleted file mode 100644 index 1281622..0000000 Binary files a/assets/isolde/ui/fx-shatter.webp and /dev/null differ diff --git a/assets/isolde/ui/fx-skyfall.webp b/assets/isolde/ui/fx-skyfall.webp deleted file mode 100644 index e29e84f..0000000 Binary files a/assets/isolde/ui/fx-skyfall.webp and /dev/null differ diff --git a/assets/isolde/ui/icon-basic.webp b/assets/isolde/ui/icon-basic.webp deleted file mode 100644 index b54f8bc..0000000 Binary files a/assets/isolde/ui/icon-basic.webp and /dev/null differ diff --git a/assets/isolde/ui/icon-skill1.webp b/assets/isolde/ui/icon-skill1.webp deleted file mode 100644 index f07a8f1..0000000 Binary files a/assets/isolde/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/isolde/ui/icon-skill2.webp b/assets/isolde/ui/icon-skill2.webp deleted file mode 100644 index ac06262..0000000 Binary files a/assets/isolde/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/isolde/ui/icon-ultimate.webp b/assets/isolde/ui/icon-ultimate.webp deleted file mode 100644 index 72adbef..0000000 Binary files a/assets/isolde/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/isolde/ui/portrait.webp b/assets/isolde/ui/portrait.webp deleted file mode 100644 index a28340b..0000000 Binary files a/assets/isolde/ui/portrait.webp and /dev/null differ diff --git a/assets/menu/arco-select.webp b/assets/menu/arco-select.webp deleted file mode 100644 index 00722ce..0000000 Binary files a/assets/menu/arco-select.webp and /dev/null differ diff --git a/assets/menu/cora-select.webp b/assets/menu/cora-select.webp deleted file mode 100644 index abca1d1..0000000 Binary files a/assets/menu/cora-select.webp and /dev/null differ diff --git a/assets/menu/edda-select.webp b/assets/menu/edda-select.webp deleted file mode 100644 index 9f659da..0000000 Binary files a/assets/menu/edda-select.webp and /dev/null differ diff --git a/assets/menu/fenr-select.webp b/assets/menu/fenr-select.webp deleted file mode 100644 index 42980fa..0000000 Binary files a/assets/menu/fenr-select.webp and /dev/null differ diff --git a/assets/menu/haldor-select.webp b/assets/menu/haldor-select.webp deleted file mode 100644 index de9b00c..0000000 Binary files a/assets/menu/haldor-select.webp and /dev/null differ diff --git a/assets/menu/isolde-select.webp b/assets/menu/isolde-select.webp deleted file mode 100644 index be73663..0000000 Binary files a/assets/menu/isolde-select.webp and /dev/null differ diff --git a/assets/menu/locked.svg b/assets/menu/locked.svg index 1551e1d..d782223 100644 --- a/assets/menu/locked.svg +++ b/assets/menu/locked.svg @@ -1 +1 @@ - +? \ No newline at end of file diff --git a/assets/menu/mira-select.webp b/assets/menu/mira-select.webp deleted file mode 100644 index d238ebb..0000000 Binary files a/assets/menu/mira-select.webp and /dev/null differ diff --git a/assets/menu/naja-select.webp b/assets/menu/naja-select.webp deleted file mode 100644 index 12bdd0e..0000000 Binary files a/assets/menu/naja-select.webp and /dev/null differ diff --git a/assets/menu/nib-select.webp b/assets/menu/nib-select.webp deleted file mode 100644 index 47fdc9b..0000000 Binary files a/assets/menu/nib-select.webp and /dev/null differ diff --git a/assets/menu/rhea-select.webp b/assets/menu/rhea-select.webp deleted file mode 100644 index 32adb83..0000000 Binary files a/assets/menu/rhea-select.webp and /dev/null differ diff --git a/assets/menu/solan-select.webp b/assets/menu/solan-select.webp deleted file mode 100644 index 6f34e54..0000000 Binary files a/assets/menu/solan-select.webp and /dev/null differ diff --git a/assets/menu/zanni-select.webp b/assets/menu/zanni-select.webp deleted file mode 100644 index 3f5d43d..0000000 Binary files a/assets/menu/zanni-select.webp and /dev/null differ diff --git a/assets/mira/audio/mira-ultimate-luna.mp3 b/assets/mira/audio/mira-ultimate-luna.mp3 deleted file mode 100644 index a342422..0000000 Binary files a/assets/mira/audio/mira-ultimate-luna.mp3 and /dev/null differ diff --git a/assets/mira/audio/mira_wins.mp3 b/assets/mira/audio/mira_wins.mp3 deleted file mode 100644 index 7258dad..0000000 Binary files a/assets/mira/audio/mira_wins.mp3 and /dev/null differ diff --git a/assets/mira/audio/select_mira.mp3 b/assets/mira/audio/select_mira.mp3 deleted file mode 100644 index 04f5f07..0000000 Binary files a/assets/mira/audio/select_mira.mp3 and /dev/null differ diff --git a/assets/mira/manifest.js b/assets/mira/manifest.js deleted file mode 100644 index 41ccc3d..0000000 --- a/assets/mira/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.MIRA_MANIFEST = {"characterId": "mira", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 7, "durations_ms": [143, 143, 143, 143], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.MIRA_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 91, "top": -182, "bottom": 0}, "height": 182}, {"frame": 1, "bounds": {"left": -75, "right": 87, "top": -177, "bottom": 0}, "height": 177}, {"frame": 2, "bounds": {"left": -73, "right": 87, "top": -182, "bottom": 0}, "height": 182}, {"frame": 3, "bounds": {"left": -75, "right": 91, "top": -182, "bottom": 0}, "height": 182}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 93, "top": -180, "bottom": 0}, "height": 180}, {"frame": 1, "bounds": {"left": -74, "right": 79, "top": -181, "bottom": 0}, "height": 181}, {"frame": 2, "bounds": {"left": -78, "right": 92, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -74, "right": 77, "top": -180, "bottom": 0}, "height": 180}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 99, "top": -185, "bottom": 0}, "height": 185}, {"frame": 1, "bounds": {"left": -71, "right": 80, "top": -177, "bottom": 0}, "height": 177}, {"frame": 2, "bounds": {"left": -74, "right": 91, "top": -184, "bottom": 0}, "height": 184}, {"frame": 3, "bounds": {"left": -72, "right": 79, "top": -177, "bottom": 0}, "height": 177}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -83, "right": 93, "top": -179, "bottom": 0}, "height": 179}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -86, "right": 55, "top": -145, "bottom": 0}, "height": 145}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -76, "right": 93, "top": -174, "bottom": 0}, "height": 174}, {"frame": 1, "bounds": {"left": -80, "right": 84, "top": -157, "bottom": 0}, "height": 157}, {"frame": 2, "bounds": {"left": -77, "right": 73, "top": -136, "bottom": 0}, "height": 136}, {"frame": 3, "bounds": {"left": -80, "right": 81, "top": -166, "bottom": 0}, "height": 166}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -80, "right": 95, "top": -180, "bottom": 0}, "height": 180}, {"frame": 1, "bounds": {"left": -81, "right": 95, "top": -180, "bottom": 0}, "height": 180}, {"frame": 2, "bounds": {"left": -80, "right": 98, "top": -180, "bottom": 0}, "height": 180}, {"frame": 3, "bounds": {"left": -79, "right": 91, "top": -180, "bottom": 0}, "height": 180}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -79, "right": 88, "top": -174, "bottom": 0}, "height": 174}, {"frame": 1, "bounds": {"left": -73, "right": 85, "top": -178, "bottom": 0}, "height": 178}, {"frame": 2, "bounds": {"left": -75, "right": 80, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -78, "right": 80, "top": -178, "bottom": 0}, "height": 178}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -79, "right": 79, "top": -197, "bottom": 0}, "height": 197}, {"frame": 1, "bounds": {"left": -78, "right": 87, "top": -169, "bottom": 0}, "height": 169}, {"frame": 2, "bounds": {"left": -82, "right": 73, "top": -140, "bottom": 0}, "height": 140}, {"frame": 3, "bounds": {"left": -80, "right": 84, "top": -171, "bottom": 0}, "height": 171}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 96, "top": -181, "bottom": 0}, "height": 181}, {"frame": 1, "bounds": {"left": -82, "right": 81, "top": -181, "bottom": 0}, "height": 181}, {"frame": 2, "bounds": {"left": -83, "right": 87, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -83, "right": 84, "top": -181, "bottom": 0}, "height": 181}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -81, "right": 91, "top": -152, "bottom": 0}, "height": 152}, {"frame": 1, "bounds": {"left": -73, "right": 93, "top": -170, "bottom": 0}, "height": 170}, {"frame": 2, "bounds": {"left": -107, "right": 91, "top": -156, "bottom": 0}, "height": 156}, {"frame": 3, "bounds": {"left": -75, "right": 80, "top": -171, "bottom": 0}, "height": 171}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 83, "top": -179, "bottom": 0}, "height": 179}, {"frame": 1, "bounds": {"left": -75, "right": 84, "top": -181, "bottom": 0}, "height": 181}, {"frame": 2, "bounds": {"left": -71, "right": 85, "top": -172, "bottom": 0}, "height": 172}, {"frame": 3, "bounds": {"left": -71, "right": 82, "top": -172, "bottom": 0}, "height": 172}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -84, "right": 102, "top": -187, "bottom": 0}, "height": 187}, {"frame": 1, "bounds": {"left": -82, "right": 100, "top": -186, "bottom": 0}, "height": 186}, {"frame": 2, "bounds": {"left": -84, "right": 79, "top": -173, "bottom": 0}, "height": 173}, {"frame": 3, "bounds": {"left": -81, "right": 84, "top": -183, "bottom": 0}, "height": 183}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -94, "right": 83, "top": -180, "bottom": 0}, "height": 180}, {"frame": 1, "bounds": {"left": -95, "right": 81, "top": -147, "bottom": 0}, "height": 147}, {"frame": 2, "bounds": {"left": -89, "right": 85, "top": -125, "bottom": 0}, "height": 125}, {"frame": 3, "bounds": {"left": -91, "right": 92, "top": -117, "bottom": 0}, "height": 117}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -86, "right": 85, "top": -122, "bottom": 0}, "height": 122}, {"frame": 1, "bounds": {"left": -94, "right": 80, "top": -146, "bottom": 0}, "height": 146}, {"frame": 2, "bounds": {"left": -69, "right": 77, "top": -165, "bottom": 0}, "height": 165}, {"frame": 3, "bounds": {"left": -85, "right": 89, "top": -177, "bottom": 0}, "height": 177}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": 5, "y": -90}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": -16, "y": -72}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 98, "y": -111, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack2": {"x": 80, "y": -160, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill1": {"x": 87, "y": -110, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill2": {"x": 91, "y": -47, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack3": {"x": 56, "y": -31, "frame": 2, "method": "Front edge of both slammed fists on impact frame (automatic endpoint caught the front foot and was rejected after visual review); rescaled for the 182 px atlas and re-checked on qa/emitters-check.png"}, "ultimatePods": {"frame": 2, "pods": [{"name": "back", "x": -29, "y": -143}, {"name": "front", "x": 60, "y": -125}], "method": "Centres of the open rocket clusters on ultimate frames 3-4, read from a 2x zoom with anchor guides; rescaled for the 182 px atlas and re-checked on qa/emitters-check.png"}}}; diff --git a/assets/mira/run/sprite-sheet-alpha.webp b/assets/mira/run/sprite-sheet-alpha.webp deleted file mode 100644 index af052a5..0000000 Binary files a/assets/mira/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/mira/ui/cutin.webp b/assets/mira/ui/cutin.webp deleted file mode 100644 index 24386c6..0000000 Binary files a/assets/mira/ui/cutin.webp and /dev/null differ diff --git a/assets/mira/ui/fx-burst.webp b/assets/mira/ui/fx-burst.webp deleted file mode 100644 index 46ccad2..0000000 Binary files a/assets/mira/ui/fx-burst.webp and /dev/null differ diff --git a/assets/mira/ui/fx-crash.webp b/assets/mira/ui/fx-crash.webp deleted file mode 100644 index a1a0062..0000000 Binary files a/assets/mira/ui/fx-crash.webp and /dev/null differ diff --git a/assets/mira/ui/fx-rocket.webp b/assets/mira/ui/fx-rocket.webp deleted file mode 100644 index 8f74726..0000000 Binary files a/assets/mira/ui/fx-rocket.webp and /dev/null differ diff --git a/assets/mira/ui/fx-star.webp b/assets/mira/ui/fx-star.webp deleted file mode 100644 index 98272e6..0000000 Binary files a/assets/mira/ui/fx-star.webp and /dev/null differ diff --git a/assets/mira/ui/icon-basic.webp b/assets/mira/ui/icon-basic.webp deleted file mode 100644 index fa85fea..0000000 Binary files a/assets/mira/ui/icon-basic.webp and /dev/null differ diff --git a/assets/mira/ui/icon-skill1.webp b/assets/mira/ui/icon-skill1.webp deleted file mode 100644 index 1e193be..0000000 Binary files a/assets/mira/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/mira/ui/icon-skill2.webp b/assets/mira/ui/icon-skill2.webp deleted file mode 100644 index 64e5c21..0000000 Binary files a/assets/mira/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/mira/ui/icon-ultimate.webp b/assets/mira/ui/icon-ultimate.webp deleted file mode 100644 index b4a6228..0000000 Binary files a/assets/mira/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/mira/ui/portrait.webp b/assets/mira/ui/portrait.webp deleted file mode 100644 index 27fca17..0000000 Binary files a/assets/mira/ui/portrait.webp and /dev/null differ diff --git a/assets/naja/audio/naja-ultimate-soraya.mp3 b/assets/naja/audio/naja-ultimate-soraya.mp3 deleted file mode 100644 index c7bc573..0000000 Binary files a/assets/naja/audio/naja-ultimate-soraya.mp3 and /dev/null differ diff --git a/assets/naja/audio/naja_wins.mp3 b/assets/naja/audio/naja_wins.mp3 deleted file mode 100644 index 61f8285..0000000 Binary files a/assets/naja/audio/naja_wins.mp3 and /dev/null differ diff --git a/assets/naja/audio/select_naja.mp3 b/assets/naja/audio/select_naja.mp3 deleted file mode 100644 index 4897217..0000000 Binary files a/assets/naja/audio/select_naja.mp3 and /dev/null differ diff --git a/assets/naja/manifest.js b/assets/naja/manifest.js deleted file mode 100644 index f2dc390..0000000 --- a/assets/naja/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.NAJA_MANIFEST = {"characterId": "naja", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 7, "durations_ms": [143, 143, 143, 143], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.NAJA_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -53, "right": 73, "top": -182, "bottom": 0}, "height": 182}, {"frame": 1, "bounds": {"left": -54, "right": 70, "top": -182, "bottom": 0}, "height": 182}, {"frame": 2, "bounds": {"left": -52, "right": 73, "top": -182, "bottom": 0}, "height": 182}, {"frame": 3, "bounds": {"left": -52, "right": 73, "top": -182, "bottom": 0}, "height": 182}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -54, "right": 66, "top": -164, "bottom": 0}, "height": 164}, {"frame": 1, "bounds": {"left": -51, "right": 57, "top": -165, "bottom": 0}, "height": 165}, {"frame": 2, "bounds": {"left": -53, "right": 64, "top": -164, "bottom": 0}, "height": 164}, {"frame": 3, "bounds": {"left": -49, "right": 57, "top": -165, "bottom": 0}, "height": 165}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -82, "right": 71, "top": -125, "bottom": 0}, "height": 125}, {"frame": 1, "bounds": {"left": -77, "right": 69, "top": -125, "bottom": 0}, "height": 125}, {"frame": 2, "bounds": {"left": -81, "right": 69, "top": -124, "bottom": 0}, "height": 124}, {"frame": 3, "bounds": {"left": -75, "right": 70, "top": -124, "bottom": 0}, "height": 124}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -56, "right": 88, "top": -161, "bottom": 0}, "height": 161}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -45, "right": 57, "top": -146, "bottom": 0}, "height": 146}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -50, "right": 67, "top": -151, "bottom": 0}, "height": 151}, {"frame": 1, "bounds": {"left": -48, "right": 63, "top": -137, "bottom": 0}, "height": 137}, {"frame": 2, "bounds": {"left": -54, "right": 66, "top": -146, "bottom": 0}, "height": 146}, {"frame": 3, "bounds": {"left": -50, "right": 64, "top": -150, "bottom": 0}, "height": 150}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -54, "right": 69, "top": -171, "bottom": 0}, "height": 171}, {"frame": 1, "bounds": {"left": -55, "right": 151, "top": -171, "bottom": 0}, "height": 171}, {"frame": 2, "bounds": {"left": -57, "right": 161, "top": -171, "bottom": 0}, "height": 171}, {"frame": 3, "bounds": {"left": -54, "right": 70, "top": -171, "bottom": 0}, "height": 171}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -57, "right": 82, "top": -156, "bottom": 0}, "height": 156}, {"frame": 1, "bounds": {"left": -65, "right": 76, "top": -156, "bottom": 0}, "height": 156}, {"frame": 2, "bounds": {"left": -53, "right": 161, "top": -157, "bottom": 0}, "height": 157}, {"frame": 3, "bounds": {"left": -49, "right": 65, "top": -160, "bottom": 0}, "height": 160}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -70, "right": 73, "top": -221, "bottom": 0}, "height": 221}, {"frame": 1, "bounds": {"left": -78, "right": 87, "top": -178, "bottom": 0}, "height": 178}, {"frame": 2, "bounds": {"left": -65, "right": 196, "top": -177, "bottom": 0}, "height": 177}, {"frame": 3, "bounds": {"left": -59, "right": 86, "top": -178, "bottom": 0}, "height": 178}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -59, "right": 89, "top": -143, "bottom": 0}, "height": 143}, {"frame": 1, "bounds": {"left": -63, "right": 75, "top": -128, "bottom": 0}, "height": 128}, {"frame": 2, "bounds": {"left": -77, "right": 94, "top": -116, "bottom": 0}, "height": 116}, {"frame": 3, "bounds": {"left": -55, "right": 71, "top": -163, "bottom": 0}, "height": 163}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -58, "right": 91, "top": -186, "bottom": 0}, "height": 186}, {"frame": 1, "bounds": {"left": -64, "right": 91, "top": -186, "bottom": 0}, "height": 186}, {"frame": 2, "bounds": {"left": -61, "right": 118, "top": -185, "bottom": 0}, "height": 185}, {"frame": 3, "bounds": {"left": -56, "right": 77, "top": -186, "bottom": 0}, "height": 186}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -67, "right": 62, "top": -142, "bottom": 0}, "height": 142}, {"frame": 1, "bounds": {"left": -67, "right": 73, "top": -163, "bottom": 0}, "height": 163}, {"frame": 2, "bounds": {"left": -64, "right": 62, "top": -175, "bottom": 0}, "height": 175}, {"frame": 3, "bounds": {"left": -65, "right": 61, "top": -175, "bottom": 0}, "height": 175}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -69, "right": 72, "top": -166, "bottom": 0}, "height": 166}, {"frame": 1, "bounds": {"left": -70, "right": 68, "top": -165, "bottom": 0}, "height": 165}, {"frame": 2, "bounds": {"left": -55, "right": 70, "top": -161, "bottom": 0}, "height": 161}, {"frame": 3, "bounds": {"left": -53, "right": 81, "top": -173, "bottom": 0}, "height": 173}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -65, "right": 66, "top": -149, "bottom": 0}, "height": 149}, {"frame": 1, "bounds": {"left": -74, "right": 78, "top": -128, "bottom": 0}, "height": 128}, {"frame": 2, "bounds": {"left": -86, "right": 77, "top": -62, "bottom": 0}, "height": 62}, {"frame": 3, "bounds": {"left": -85, "right": 78, "top": -53, "bottom": 0}, "height": 53}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -94, "right": 81, "top": -74, "bottom": 0}, "height": 74}, {"frame": 1, "bounds": {"left": -75, "right": 62, "top": -123, "bottom": 0}, "height": 123}, {"frame": 2, "bounds": {"left": -53, "right": 63, "top": -146, "bottom": 0}, "height": 146}, {"frame": 3, "bounds": {"left": -55, "right": 73, "top": -170, "bottom": 0}, "height": 170}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": 16, "y": -80}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": 6, "y": -73}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 161, "y": -99, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack2": {"x": 161, "y": -51, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack3": {"x": 196, "y": -108, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill1": {"x": 94, "y": -5, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill2": {"x": 118, "y": -93, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}}}; diff --git a/assets/naja/run/sprite-sheet-alpha.webp b/assets/naja/run/sprite-sheet-alpha.webp deleted file mode 100644 index c127b12..0000000 Binary files a/assets/naja/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/naja/ui/cutin.webp b/assets/naja/ui/cutin.webp deleted file mode 100644 index d5a35f3..0000000 Binary files a/assets/naja/ui/cutin.webp and /dev/null differ diff --git a/assets/naja/ui/fx-cyclone.webp b/assets/naja/ui/fx-cyclone.webp deleted file mode 100644 index 73d184f..0000000 Binary files a/assets/naja/ui/fx-cyclone.webp and /dev/null differ diff --git a/assets/naja/ui/fx-ripple.webp b/assets/naja/ui/fx-ripple.webp deleted file mode 100644 index 9e13e8c..0000000 Binary files a/assets/naja/ui/fx-ripple.webp and /dev/null differ diff --git a/assets/naja/ui/fx-sandwave.webp b/assets/naja/ui/fx-sandwave.webp deleted file mode 100644 index afdd879..0000000 Binary files a/assets/naja/ui/fx-sandwave.webp and /dev/null differ diff --git a/assets/naja/ui/fx-serpent.webp b/assets/naja/ui/fx-serpent.webp deleted file mode 100644 index 04bb611..0000000 Binary files a/assets/naja/ui/fx-serpent.webp and /dev/null differ diff --git a/assets/naja/ui/icon-basic.webp b/assets/naja/ui/icon-basic.webp deleted file mode 100644 index c3f4e22..0000000 Binary files a/assets/naja/ui/icon-basic.webp and /dev/null differ diff --git a/assets/naja/ui/icon-skill1.webp b/assets/naja/ui/icon-skill1.webp deleted file mode 100644 index 3653c06..0000000 Binary files a/assets/naja/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/naja/ui/icon-skill2.webp b/assets/naja/ui/icon-skill2.webp deleted file mode 100644 index c64ac99..0000000 Binary files a/assets/naja/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/naja/ui/icon-ultimate.webp b/assets/naja/ui/icon-ultimate.webp deleted file mode 100644 index f00d7a5..0000000 Binary files a/assets/naja/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/naja/ui/portrait.webp b/assets/naja/ui/portrait.webp deleted file mode 100644 index 39bf568..0000000 Binary files a/assets/naja/ui/portrait.webp and /dev/null differ diff --git a/assets/nib/audio/nib-ultimate.mp3 b/assets/nib/audio/nib-ultimate.mp3 deleted file mode 100644 index 7489385..0000000 Binary files a/assets/nib/audio/nib-ultimate.mp3 and /dev/null differ diff --git a/assets/nib/audio/nib_wins.mp3 b/assets/nib/audio/nib_wins.mp3 deleted file mode 100644 index be606ef..0000000 Binary files a/assets/nib/audio/nib_wins.mp3 and /dev/null differ diff --git a/assets/nib/audio/select_nib.mp3 b/assets/nib/audio/select_nib.mp3 deleted file mode 100644 index 732de88..0000000 Binary files a/assets/nib/audio/select_nib.mp3 and /dev/null differ diff --git a/assets/nib/manifest.js b/assets/nib/manifest.js deleted file mode 100644 index dd1ee8f..0000000 --- a/assets/nib/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.NIB_MANIFEST = {"characterId": "nib", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 13, "durations_ms": [77, 77, 77, 77], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.NIB_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -63, "right": 63, "top": -150, "bottom": 0}, "height": 150}, {"frame": 1, "bounds": {"left": -59, "right": 61, "top": -142, "bottom": 0}, "height": 142}, {"frame": 2, "bounds": {"left": -66, "right": 59, "top": -150, "bottom": 0}, "height": 150}, {"frame": 3, "bounds": {"left": -63, "right": 63, "top": -150, "bottom": 0}, "height": 150}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -56, "right": 66, "top": -159, "bottom": 0}, "height": 159}, {"frame": 1, "bounds": {"left": -51, "right": 67, "top": -160, "bottom": 0}, "height": 160}, {"frame": 2, "bounds": {"left": -54, "right": 65, "top": -160, "bottom": 0}, "height": 160}, {"frame": 3, "bounds": {"left": -52, "right": 66, "top": -161, "bottom": 0}, "height": 161}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -57, "right": 74, "top": -126, "bottom": 0}, "height": 126}, {"frame": 1, "bounds": {"left": -61, "right": 71, "top": -125, "bottom": 0}, "height": 125}, {"frame": 2, "bounds": {"left": -56, "right": 75, "top": -127, "bottom": 0}, "height": 127}, {"frame": 3, "bounds": {"left": -59, "right": 72, "top": -120, "bottom": 0}, "height": 120}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -70, "right": 79, "top": -152, "bottom": 0}, "height": 152}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -56, "right": 40, "top": -120, "bottom": 0}, "height": 120}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -60, "right": 62, "top": -131, "bottom": 0}, "height": 131}, {"frame": 1, "bounds": {"left": -67, "right": 51, "top": -127, "bottom": 0}, "height": 127}, {"frame": 2, "bounds": {"left": -66, "right": 51, "top": -127, "bottom": 0}, "height": 127}, {"frame": 3, "bounds": {"left": -57, "right": 65, "top": -137, "bottom": 0}, "height": 137}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -60, "right": 70, "top": -157, "bottom": 0}, "height": 157}, {"frame": 1, "bounds": {"left": -52, "right": 69, "top": -157, "bottom": 0}, "height": 157}, {"frame": 2, "bounds": {"left": -56, "right": 107, "top": -158, "bottom": 0}, "height": 158}, {"frame": 3, "bounds": {"left": -61, "right": 73, "top": -157, "bottom": 0}, "height": 157}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 75, "top": -154, "bottom": 0}, "height": 154}, {"frame": 1, "bounds": {"left": -59, "right": 67, "top": -154, "bottom": 0}, "height": 154}, {"frame": 2, "bounds": {"left": -63, "right": 83, "top": -160, "bottom": 0}, "height": 160}, {"frame": 3, "bounds": {"left": -63, "right": 74, "top": -155, "bottom": 0}, "height": 155}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -70, "right": 64, "top": -145, "bottom": 0}, "height": 145}, {"frame": 1, "bounds": {"left": -63, "right": 76, "top": -140, "bottom": 0}, "height": 140}, {"frame": 2, "bounds": {"left": -80, "right": 101, "top": -140, "bottom": 0}, "height": 140}, {"frame": 3, "bounds": {"left": -61, "right": 67, "top": -146, "bottom": 0}, "height": 146}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -68, "right": 62, "top": -155, "bottom": 0}, "height": 155}, {"frame": 1, "bounds": {"left": -68, "right": 62, "top": -154, "bottom": 0}, "height": 154}, {"frame": 2, "bounds": {"left": -57, "right": 81, "top": -152, "bottom": 0}, "height": 152}, {"frame": 3, "bounds": {"left": -65, "right": 64, "top": -155, "bottom": 0}, "height": 155}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -63, "right": 71, "top": -122, "bottom": 0}, "height": 122}, {"frame": 1, "bounds": {"left": -36, "right": 103, "top": -113, "bottom": 0}, "height": 113}, {"frame": 2, "bounds": {"left": -78, "right": 105, "top": -108, "bottom": 0}, "height": 108}, {"frame": 3, "bounds": {"left": -59, "right": 54, "top": -128, "bottom": 0}, "height": 128}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -51, "right": 48, "top": -152, "bottom": 0}, "height": 152}, {"frame": 1, "bounds": {"left": -65, "right": 51, "top": -152, "bottom": 0}, "height": 152}, {"frame": 2, "bounds": {"left": -56, "right": 73, "top": -152, "bottom": 0}, "height": 152}, {"frame": 3, "bounds": {"left": -63, "right": 36, "top": -154, "bottom": 0}, "height": 154}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -87, "right": 28, "top": -149, "bottom": 0}, "height": 149}, {"frame": 1, "bounds": {"left": -62, "right": 60, "top": -142, "bottom": 0}, "height": 142}, {"frame": 2, "bounds": {"left": -88, "right": 45, "top": -147, "bottom": 0}, "height": 147}, {"frame": 3, "bounds": {"left": -63, "right": 57, "top": -152, "bottom": 0}, "height": 152}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -75, "right": 49, "top": -122, "bottom": 0}, "height": 122}, {"frame": 1, "bounds": {"left": -61, "right": 54, "top": -108, "bottom": 0}, "height": 108}, {"frame": 2, "bounds": {"left": -64, "right": 69, "top": -94, "bottom": 0}, "height": 94}, {"frame": 3, "bounds": {"left": -64, "right": 65, "top": -112, "bottom": 0}, "height": 112}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -90, "right": 71, "top": -104, "bottom": 0}, "height": 104}, {"frame": 1, "bounds": {"left": -66, "right": 56, "top": -125, "bottom": 0}, "height": 125}, {"frame": 2, "bounds": {"left": -46, "right": 69, "top": -141, "bottom": 0}, "height": 141}, {"frame": 3, "bounds": {"left": -64, "right": 59, "top": -164, "bottom": 0}, "height": 164}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": 4, "y": -76}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": -8, "y": -60}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 107, "y": -94, "frame": 2, "method": "Baton tip or hand on impact frame (farthest-right six-pixel tip; top-right extreme for the rising swing), facing right"}, "attack2": {"x": 80, "y": -160, "frame": 2, "method": "Baton tip or hand on impact frame (farthest-right six-pixel tip; top-right extreme for the rising swing), facing right"}, "attack3": {"x": 101, "y": -80, "frame": 2, "method": "Baton tip or hand on impact frame (farthest-right six-pixel tip; top-right extreme for the rising swing), facing right"}, "skill1": {"x": 81, "y": -94, "frame": 2, "method": "Baton tip or hand on impact frame (farthest-right six-pixel tip; top-right extreme for the rising swing), facing right"}, "skill2": {"x": 105, "y": -51, "frame": 2, "method": "Baton tip or hand on impact frame (farthest-right six-pixel tip; top-right extreme for the rising swing), facing right"}, "ultimate": {"x": 73, "y": -102, "frame": 2, "method": "Baton tip or hand on impact frame (farthest-right six-pixel tip; top-right extreme for the rising swing), facing right"}}}; diff --git a/assets/nib/run/sprite-sheet-alpha.webp b/assets/nib/run/sprite-sheet-alpha.webp deleted file mode 100644 index bbb8df4..0000000 Binary files a/assets/nib/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/nib/ui/cutin.webp b/assets/nib/ui/cutin.webp deleted file mode 100644 index 0157a25..0000000 Binary files a/assets/nib/ui/cutin.webp and /dev/null differ diff --git a/assets/nib/ui/fx-letter.webp b/assets/nib/ui/fx-letter.webp deleted file mode 100644 index f63a9ec..0000000 Binary files a/assets/nib/ui/fx-letter.webp and /dev/null differ diff --git a/assets/nib/ui/fx-plane.webp b/assets/nib/ui/fx-plane.webp deleted file mode 100644 index b76d57e..0000000 Binary files a/assets/nib/ui/fx-plane.webp and /dev/null differ diff --git a/assets/nib/ui/fx-slip.webp b/assets/nib/ui/fx-slip.webp deleted file mode 100644 index 01dcacb..0000000 Binary files a/assets/nib/ui/fx-slip.webp and /dev/null differ diff --git a/assets/nib/ui/fx-stamp.webp b/assets/nib/ui/fx-stamp.webp deleted file mode 100644 index f48e19c..0000000 Binary files a/assets/nib/ui/fx-stamp.webp and /dev/null differ diff --git a/assets/nib/ui/icon-basic.webp b/assets/nib/ui/icon-basic.webp deleted file mode 100644 index 4de5427..0000000 Binary files a/assets/nib/ui/icon-basic.webp and /dev/null differ diff --git a/assets/nib/ui/icon-skill1.webp b/assets/nib/ui/icon-skill1.webp deleted file mode 100644 index 3312403..0000000 Binary files a/assets/nib/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/nib/ui/icon-skill2.webp b/assets/nib/ui/icon-skill2.webp deleted file mode 100644 index 5370ee2..0000000 Binary files a/assets/nib/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/nib/ui/icon-ultimate.webp b/assets/nib/ui/icon-ultimate.webp deleted file mode 100644 index d1239ec..0000000 Binary files a/assets/nib/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/nib/ui/portrait.webp b/assets/nib/ui/portrait.webp deleted file mode 100644 index 3d6d65d..0000000 Binary files a/assets/nib/ui/portrait.webp and /dev/null differ diff --git a/assets/rhea/audio/rhea-ultimate.mp3 b/assets/rhea/audio/rhea-ultimate.mp3 deleted file mode 100644 index 28b05d0..0000000 Binary files a/assets/rhea/audio/rhea-ultimate.mp3 and /dev/null differ diff --git a/assets/rhea/audio/rhea_wins.mp3 b/assets/rhea/audio/rhea_wins.mp3 deleted file mode 100644 index d166e03..0000000 Binary files a/assets/rhea/audio/rhea_wins.mp3 and /dev/null differ diff --git a/assets/rhea/audio/select_rhea.mp3 b/assets/rhea/audio/select_rhea.mp3 deleted file mode 100644 index ecb8e93..0000000 Binary files a/assets/rhea/audio/select_rhea.mp3 and /dev/null differ diff --git a/assets/rhea/manifest.js b/assets/rhea/manifest.js deleted file mode 100644 index ed508c5..0000000 --- a/assets/rhea/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.RHEA_MANIFEST = {"characterId": "rhea", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.RHEA_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -56, "right": 63, "top": -170, "bottom": 0}, "height": 170}, {"frame": 1, "bounds": {"left": -57, "right": 62, "top": -172, "bottom": 0}, "height": 172}, {"frame": 2, "bounds": {"left": -55, "right": 64, "top": -167, "bottom": 0}, "height": 167}, {"frame": 3, "bounds": {"left": -56, "right": 62, "top": -170, "bottom": 0}, "height": 170}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -54, "right": 66, "top": -164, "bottom": 0}, "height": 164}, {"frame": 1, "bounds": {"left": -54, "right": 65, "top": -167, "bottom": 0}, "height": 167}, {"frame": 2, "bounds": {"left": -54, "right": 66, "top": -164, "bottom": 0}, "height": 164}, {"frame": 3, "bounds": {"left": -54, "right": 65, "top": -167, "bottom": 0}, "height": 167}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -66, "right": 51, "top": -146, "bottom": 0}, "height": 146}, {"frame": 1, "bounds": {"left": -64, "right": 50, "top": -147, "bottom": 0}, "height": 147}, {"frame": 2, "bounds": {"left": -67, "right": 50, "top": -146, "bottom": 0}, "height": 146}, {"frame": 3, "bounds": {"left": -64, "right": 49, "top": -148, "bottom": 0}, "height": 148}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -53, "right": 79, "top": -146, "bottom": 0}, "height": 146}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -52, "right": 54, "top": -153, "bottom": 0}, "height": 153}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -47, "right": 57, "top": -140, "bottom": 0}, "height": 140}, {"frame": 1, "bounds": {"left": -45, "right": 56, "top": -131, "bottom": 0}, "height": 131}, {"frame": 2, "bounds": {"left": -44, "right": 59, "top": -132, "bottom": 0}, "height": 132}, {"frame": 3, "bounds": {"left": -42, "right": 55, "top": -141, "bottom": 0}, "height": 141}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -51, "right": 60, "top": -152, "bottom": 0}, "height": 152}, {"frame": 1, "bounds": {"left": -51, "right": 72, "top": -153, "bottom": 0}, "height": 153}, {"frame": 2, "bounds": {"left": -51, "right": 109, "top": -152, "bottom": 0}, "height": 152}, {"frame": 3, "bounds": {"left": -48, "right": 63, "top": -152, "bottom": 0}, "height": 152}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -46, "right": 74, "top": -155, "bottom": 0}, "height": 155}, {"frame": 1, "bounds": {"left": -46, "right": 78, "top": -155, "bottom": 0}, "height": 155}, {"frame": 2, "bounds": {"left": -45, "right": 80, "top": -174, "bottom": 0}, "height": 174}, {"frame": 3, "bounds": {"left": -46, "right": 78, "top": -155, "bottom": 0}, "height": 155}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -44, "right": 56, "top": -156, "bottom": 0}, "height": 156}, {"frame": 1, "bounds": {"left": -48, "right": 54, "top": -155, "bottom": 0}, "height": 155}, {"frame": 2, "bounds": {"left": -50, "right": 128, "top": -156, "bottom": 0}, "height": 156}, {"frame": 3, "bounds": {"left": -45, "right": 50, "top": -157, "bottom": 0}, "height": 157}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -55, "right": 70, "top": -166, "bottom": 0}, "height": 166}, {"frame": 1, "bounds": {"left": -55, "right": 70, "top": -165, "bottom": 0}, "height": 165}, {"frame": 2, "bounds": {"left": -58, "right": 70, "top": -165, "bottom": 0}, "height": 165}, {"frame": 3, "bounds": {"left": -60, "right": 66, "top": -165, "bottom": 0}, "height": 165}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -58, "right": 67, "top": -161, "bottom": 0}, "height": 161}, {"frame": 1, "bounds": {"left": -49, "right": 67, "top": -160, "bottom": 0}, "height": 160}, {"frame": 2, "bounds": {"left": -49, "right": 91, "top": -151, "bottom": 0}, "height": 151}, {"frame": 3, "bounds": {"left": -57, "right": 60, "top": -160, "bottom": 0}, "height": 160}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -60, "right": 68, "top": -161, "bottom": 0}, "height": 161}, {"frame": 1, "bounds": {"left": -54, "right": 77, "top": -161, "bottom": 0}, "height": 161}, {"frame": 2, "bounds": {"left": -67, "right": 76, "top": -161, "bottom": 0}, "height": 161}, {"frame": 3, "bounds": {"left": -55, "right": 60, "top": -161, "bottom": 0}, "height": 161}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -80, "right": 50, "top": -145, "bottom": 0}, "height": 145}, {"frame": 1, "bounds": {"left": -77, "right": 38, "top": -142, "bottom": 0}, "height": 142}, {"frame": 2, "bounds": {"left": -71, "right": 64, "top": -144, "bottom": 0}, "height": 144}, {"frame": 3, "bounds": {"left": -48, "right": 70, "top": -147, "bottom": 0}, "height": 147}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -79, "right": 48, "top": -116, "bottom": 0}, "height": 116}, {"frame": 1, "bounds": {"left": -67, "right": 47, "top": -106, "bottom": 0}, "height": 106}, {"frame": 2, "bounds": {"left": -71, "right": 58, "top": -79, "bottom": 0}, "height": 79}, {"frame": 3, "bounds": {"left": -69, "right": 58, "top": -79, "bottom": 0}, "height": 79}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -76, "right": 59, "top": -103, "bottom": 0}, "height": 103}, {"frame": 1, "bounds": {"left": -64, "right": 54, "top": -121, "bottom": 0}, "height": 121}, {"frame": 2, "bounds": {"left": -53, "right": 69, "top": -145, "bottom": 0}, "height": 145}, {"frame": 3, "bounds": {"left": -57, "right": 63, "top": -158, "bottom": 0}, "height": 158}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": 13, "y": -73}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": 1, "y": -76}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 109, "y": -91, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame (sphere or hand); six-pixel tip region, facing right"}, "attack2": {"x": 80, "y": -163, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame (sphere or hand); six-pixel tip region, facing right"}, "attack3": {"x": 128, "y": -91, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame (sphere or hand); six-pixel tip region, facing right"}, "skill1": {"x": 70, "y": -106, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame (sphere or hand); six-pixel tip region, facing right"}, "skill2": {"x": 91, "y": -82, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame (sphere or hand); six-pixel tip region, facing right"}, "ultimate": {"x": 76, "y": -111, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame (sphere or hand); six-pixel tip region, facing right"}}}; diff --git a/assets/rhea/run/sprite-sheet-alpha.webp b/assets/rhea/run/sprite-sheet-alpha.webp deleted file mode 100644 index e0b77d2..0000000 Binary files a/assets/rhea/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/rhea/ui/cutin.webp b/assets/rhea/ui/cutin.webp deleted file mode 100644 index f47656e..0000000 Binary files a/assets/rhea/ui/cutin.webp and /dev/null differ diff --git a/assets/rhea/ui/fx-burst.webp b/assets/rhea/ui/fx-burst.webp deleted file mode 100644 index 35bc903..0000000 Binary files a/assets/rhea/ui/fx-burst.webp and /dev/null differ diff --git a/assets/rhea/ui/fx-drift.webp b/assets/rhea/ui/fx-drift.webp deleted file mode 100644 index c255cc6..0000000 Binary files a/assets/rhea/ui/fx-drift.webp and /dev/null differ diff --git a/assets/rhea/ui/fx-planet.webp b/assets/rhea/ui/fx-planet.webp deleted file mode 100644 index a370030..0000000 Binary files a/assets/rhea/ui/fx-planet.webp and /dev/null differ diff --git a/assets/rhea/ui/fx-well.webp b/assets/rhea/ui/fx-well.webp deleted file mode 100644 index 3643c3d..0000000 Binary files a/assets/rhea/ui/fx-well.webp and /dev/null differ diff --git a/assets/rhea/ui/icon-basic.webp b/assets/rhea/ui/icon-basic.webp deleted file mode 100644 index 38de485..0000000 Binary files a/assets/rhea/ui/icon-basic.webp and /dev/null differ diff --git a/assets/rhea/ui/icon-skill1.webp b/assets/rhea/ui/icon-skill1.webp deleted file mode 100644 index 6462e19..0000000 Binary files a/assets/rhea/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/rhea/ui/icon-skill2.webp b/assets/rhea/ui/icon-skill2.webp deleted file mode 100644 index d172545..0000000 Binary files a/assets/rhea/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/rhea/ui/icon-ultimate.webp b/assets/rhea/ui/icon-ultimate.webp deleted file mode 100644 index 9ffb3c7..0000000 Binary files a/assets/rhea/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/rhea/ui/portrait.webp b/assets/rhea/ui/portrait.webp deleted file mode 100644 index 7ff314d..0000000 Binary files a/assets/rhea/ui/portrait.webp and /dev/null differ diff --git a/assets/showcase/edda/portrait.webp b/assets/showcase/edda/portrait.webp deleted file mode 100644 index bb58b2f..0000000 Binary files a/assets/showcase/edda/portrait.webp and /dev/null differ diff --git a/assets/showcase/haldor/portrait.webp b/assets/showcase/haldor/portrait.webp deleted file mode 100644 index b3bdf99..0000000 Binary files a/assets/showcase/haldor/portrait.webp and /dev/null differ diff --git a/assets/showcase/isolde/portrait.webp b/assets/showcase/isolde/portrait.webp deleted file mode 100644 index a28340b..0000000 Binary files a/assets/showcase/isolde/portrait.webp and /dev/null differ diff --git a/assets/showcase/naja/portrait.webp b/assets/showcase/naja/portrait.webp deleted file mode 100644 index 39bf568..0000000 Binary files a/assets/showcase/naja/portrait.webp and /dev/null differ diff --git a/assets/showcase/nib/portrait.webp b/assets/showcase/nib/portrait.webp deleted file mode 100644 index 3d6d65d..0000000 Binary files a/assets/showcase/nib/portrait.webp and /dev/null differ diff --git a/assets/showcase/rhea/portrait.webp b/assets/showcase/rhea/portrait.webp deleted file mode 100644 index 7ff314d..0000000 Binary files a/assets/showcase/rhea/portrait.webp and /dev/null differ diff --git a/assets/showcase/showcase.js b/assets/showcase/showcase.js deleted file mode 100644 index ec20605..0000000 --- a/assets/showcase/showcase.js +++ /dev/null @@ -1,2 +0,0 @@ -/* Select-screen showcase fighters: art and avatar only, not playable yet. Generated by tools/showcase_assets.py. */ -window.SHOWCASE_FIGHTERS = {}; diff --git a/assets/showcase/solan/portrait.webp b/assets/showcase/solan/portrait.webp deleted file mode 100644 index 62d59ce..0000000 Binary files a/assets/showcase/solan/portrait.webp and /dev/null differ diff --git a/assets/showcase/zanni/portrait.webp b/assets/showcase/zanni/portrait.webp deleted file mode 100644 index 6510392..0000000 Binary files a/assets/showcase/zanni/portrait.webp and /dev/null differ diff --git a/assets/solan/audio/select_solan.mp3 b/assets/solan/audio/select_solan.mp3 deleted file mode 100644 index 41ebcf0..0000000 Binary files a/assets/solan/audio/select_solan.mp3 and /dev/null differ diff --git a/assets/solan/audio/solan-ultimate.mp3 b/assets/solan/audio/solan-ultimate.mp3 deleted file mode 100644 index 8e2167f..0000000 Binary files a/assets/solan/audio/solan-ultimate.mp3 and /dev/null differ diff --git a/assets/solan/audio/solan_wins-raw.mp3 b/assets/solan/audio/solan_wins-raw.mp3 deleted file mode 100644 index 6fde2d4..0000000 Binary files a/assets/solan/audio/solan_wins-raw.mp3 and /dev/null differ diff --git a/assets/solan/audio/solan_wins.mp3 b/assets/solan/audio/solan_wins.mp3 deleted file mode 100644 index 6b44d66..0000000 Binary files a/assets/solan/audio/solan_wins.mp3 and /dev/null differ diff --git a/assets/solan/manifest.js b/assets/solan/manifest.js deleted file mode 100644 index 69c1c16..0000000 --- a/assets/solan/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.SOLAN_MANIFEST = {"characterId": "solan", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "green", "hex": "#00FF00", "rgb": [0, 255, 0], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.SOLAN_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -85, "right": 69, "top": -175, "bottom": 0}, "height": 175}, {"frame": 1, "bounds": {"left": -83, "right": 70, "top": -176, "bottom": 0}, "height": 176}, {"frame": 2, "bounds": {"left": -85, "right": 68, "top": -175, "bottom": 0}, "height": 175}, {"frame": 3, "bounds": {"left": -86, "right": 69, "top": -176, "bottom": 0}, "height": 176}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -75, "right": 71, "top": -171, "bottom": 0}, "height": 171}, {"frame": 1, "bounds": {"left": -71, "right": 71, "top": -172, "bottom": 0}, "height": 172}, {"frame": 2, "bounds": {"left": -74, "right": 70, "top": -172, "bottom": 0}, "height": 172}, {"frame": 3, "bounds": {"left": -72, "right": 70, "top": -172, "bottom": 0}, "height": 172}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -94, "right": 65, "top": -143, "bottom": 0}, "height": 143}, {"frame": 1, "bounds": {"left": -91, "right": 60, "top": -139, "bottom": 0}, "height": 139}, {"frame": 2, "bounds": {"left": -97, "right": 57, "top": -143, "bottom": 0}, "height": 143}, {"frame": 3, "bounds": {"left": -91, "right": 60, "top": -143, "bottom": 0}, "height": 143}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -129, "right": 51, "top": -197, "bottom": 0}, "height": 197}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -104, "right": 50, "top": -160, "bottom": 0}, "height": 160}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -87, "right": 73, "top": -155, "bottom": 0}, "height": 155}, {"frame": 1, "bounds": {"left": -85, "right": 63, "top": -145, "bottom": 0}, "height": 145}, {"frame": 2, "bounds": {"left": -85, "right": 62, "top": -145, "bottom": 0}, "height": 145}, {"frame": 3, "bounds": {"left": -84, "right": 55, "top": -155, "bottom": 0}, "height": 155}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -116, "right": 68, "top": -161, "bottom": 0}, "height": 161}, {"frame": 1, "bounds": {"left": -89, "right": 64, "top": -178, "bottom": 0}, "height": 178}, {"frame": 2, "bounds": {"left": -80, "right": 149, "top": -158, "bottom": 0}, "height": 158}, {"frame": 3, "bounds": {"left": -83, "right": 68, "top": -167, "bottom": 0}, "height": 167}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -93, "right": 81, "top": -151, "bottom": 0}, "height": 151}, {"frame": 1, "bounds": {"left": -85, "right": 82, "top": -181, "bottom": 0}, "height": 181}, {"frame": 2, "bounds": {"left": -87, "right": 95, "top": -206, "bottom": 0}, "height": 206}, {"frame": 3, "bounds": {"left": -85, "right": 68, "top": -167, "bottom": 0}, "height": 167}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -90, "right": 70, "top": -214, "bottom": 0}, "height": 214}, {"frame": 1, "bounds": {"left": -107, "right": 87, "top": -169, "bottom": 0}, "height": 169}, {"frame": 2, "bounds": {"left": -109, "right": 74, "top": -154, "bottom": 0}, "height": 154}, {"frame": 3, "bounds": {"left": -85, "right": 68, "top": -220, "bottom": 0}, "height": 220}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -118, "right": 79, "top": -165, "bottom": 0}, "height": 165}, {"frame": 1, "bounds": {"left": -109, "right": 69, "top": -185, "bottom": 0}, "height": 185}, {"frame": 2, "bounds": {"left": -88, "right": 156, "top": -171, "bottom": 0}, "height": 171}, {"frame": 3, "bounds": {"left": -85, "right": 69, "top": -179, "bottom": 0}, "height": 179}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -77, "right": 74, "top": -182, "bottom": 0}, "height": 182}, {"frame": 1, "bounds": {"left": -89, "right": 68, "top": -179, "bottom": 0}, "height": 179}, {"frame": 2, "bounds": {"left": -93, "right": 60, "top": -142, "bottom": 0}, "height": 142}, {"frame": 3, "bounds": {"left": -82, "right": 71, "top": -182, "bottom": 0}, "height": 182}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -81, "right": 57, "top": -173, "bottom": 0}, "height": 173}, {"frame": 1, "bounds": {"left": -90, "right": 60, "top": -173, "bottom": 0}, "height": 173}, {"frame": 2, "bounds": {"left": -82, "right": 66, "top": -177, "bottom": 0}, "height": 177}, {"frame": 3, "bounds": {"left": -86, "right": 65, "top": -174, "bottom": 0}, "height": 174}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -98, "right": 72, "top": -173, "bottom": 0}, "height": 173}, {"frame": 1, "bounds": {"left": -73, "right": 76, "top": -165, "bottom": 0}, "height": 165}, {"frame": 2, "bounds": {"left": -110, "right": 69, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -80, "right": 62, "top": -157, "bottom": 0}, "height": 157}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -63, "right": 84, "top": -152, "bottom": 0}, "height": 152}, {"frame": 1, "bounds": {"left": -67, "right": 92, "top": -143, "bottom": 0}, "height": 143}, {"frame": 2, "bounds": {"left": -76, "right": 79, "top": -90, "bottom": 0}, "height": 90}, {"frame": 3, "bounds": {"left": -74, "right": 81, "top": -112, "bottom": 0}, "height": 112}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -97, "right": 92, "top": -117, "bottom": 0}, "height": 117}, {"frame": 1, "bounds": {"left": -90, "right": 67, "top": -131, "bottom": 0}, "height": 131}, {"frame": 2, "bounds": {"left": -82, "right": 66, "top": -154, "bottom": 0}, "height": 154}, {"frame": 3, "bounds": {"left": -89, "right": 71, "top": -171, "bottom": 0}, "height": 171}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": -39, "y": -98}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": -27, "y": -80}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 149, "y": -85, "frame": 2, "method": "Blade tip on impact frame (farthest-right six-pixel tip; top-right extreme for the rising slash), facing right"}, "attack2": {"x": 95, "y": -206, "frame": 2, "method": "Blade tip on impact frame (farthest-right six-pixel tip; top-right extreme for the rising slash), facing right"}, "attack3": {"x": 74, "y": -4, "frame": 2, "method": "Blade tip on impact frame (farthest-right six-pixel tip; top-right extreme for the rising slash), facing right"}, "skill1": {"x": 156, "y": -93, "frame": 2, "method": "Blade tip on impact frame (farthest-right six-pixel tip; top-right extreme for the rising slash), facing right"}, "skill2": {"x": 60, "y": -48, "frame": 2, "method": "Blade tip on impact frame (farthest-right six-pixel tip; top-right extreme for the rising slash), facing right"}, "ultimate": {"x": 66, "y": -6, "frame": 2, "method": "Blade tip on impact frame (farthest-right six-pixel tip; top-right extreme for the rising slash), facing right"}}}; diff --git a/assets/solan/run/sprite-sheet-alpha.webp b/assets/solan/run/sprite-sheet-alpha.webp deleted file mode 100644 index 502fdd2..0000000 Binary files a/assets/solan/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/solan/ui/cutin.webp b/assets/solan/ui/cutin.webp deleted file mode 100644 index 2c55b2c..0000000 Binary files a/assets/solan/ui/cutin.webp and /dev/null differ diff --git a/assets/solan/ui/fx-crescent.webp b/assets/solan/ui/fx-crescent.webp deleted file mode 100644 index 745d756..0000000 Binary files a/assets/solan/ui/fx-crescent.webp and /dev/null differ diff --git a/assets/solan/ui/fx-impact.webp b/assets/solan/ui/fx-impact.webp deleted file mode 100644 index c400297..0000000 Binary files a/assets/solan/ui/fx-impact.webp and /dev/null differ diff --git a/assets/solan/ui/fx-roar.webp b/assets/solan/ui/fx-roar.webp deleted file mode 100644 index b8ac783..0000000 Binary files a/assets/solan/ui/fx-roar.webp and /dev/null differ diff --git a/assets/solan/ui/fx-sunburst.webp b/assets/solan/ui/fx-sunburst.webp deleted file mode 100644 index e419218..0000000 Binary files a/assets/solan/ui/fx-sunburst.webp and /dev/null differ diff --git a/assets/solan/ui/icon-basic.webp b/assets/solan/ui/icon-basic.webp deleted file mode 100644 index c158ac7..0000000 Binary files a/assets/solan/ui/icon-basic.webp and /dev/null differ diff --git a/assets/solan/ui/icon-skill1.webp b/assets/solan/ui/icon-skill1.webp deleted file mode 100644 index fae66da..0000000 Binary files a/assets/solan/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/solan/ui/icon-skill2.webp b/assets/solan/ui/icon-skill2.webp deleted file mode 100644 index 7485cce..0000000 Binary files a/assets/solan/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/solan/ui/icon-ultimate.webp b/assets/solan/ui/icon-ultimate.webp deleted file mode 100644 index 81c957d..0000000 Binary files a/assets/solan/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/solan/ui/portrait.webp b/assets/solan/ui/portrait.webp deleted file mode 100644 index 62d59ce..0000000 Binary files a/assets/solan/ui/portrait.webp and /dev/null differ diff --git a/assets/zanni/audio/select_zanni.mp3 b/assets/zanni/audio/select_zanni.mp3 deleted file mode 100644 index 5e14d00..0000000 Binary files a/assets/zanni/audio/select_zanni.mp3 and /dev/null differ diff --git a/assets/zanni/audio/zanni-ultimate.mp3 b/assets/zanni/audio/zanni-ultimate.mp3 deleted file mode 100644 index 640fa9a..0000000 Binary files a/assets/zanni/audio/zanni-ultimate.mp3 and /dev/null differ diff --git a/assets/zanni/audio/zanni_wins-raw.mp3 b/assets/zanni/audio/zanni_wins-raw.mp3 deleted file mode 100644 index dbf21da..0000000 Binary files a/assets/zanni/audio/zanni_wins-raw.mp3 and /dev/null differ diff --git a/assets/zanni/audio/zanni_wins.mp3 b/assets/zanni/audio/zanni_wins.mp3 deleted file mode 100644 index 29ff4aa..0000000 Binary files a/assets/zanni/audio/zanni_wins.mp3 and /dev/null differ diff --git a/assets/zanni/manifest.js b/assets/zanni/manifest.js deleted file mode 100644 index 361945e..0000000 --- a/assets/zanni/manifest.js +++ /dev/null @@ -1,2 +0,0 @@ -window.ZANNI_MANIFEST = {"characterId": "zanni", "engine": "component-row", "game_input": "sprite-sheet-alpha.png", "degraded_static_fallback": false, "curation_applied": true, "frame_variant": "pixel", "sprite_sheet_alpha": "sprite-sheet-alpha.png", "sprite_sheet_alpha_report": "sprite-sheet-alpha.report.json", "base_image": "base-source.png", "cell": {"shape": "rect", "width": 448, "height": 288, "safe_margin_x": 10, "safe_margin_y": 8}, "chroma_key": {"name": "magenta", "hex": "#FF00FF", "rgb": [255, 0, 255], "selection": "manual"}, "animation": {"cellWidth": 448, "cellHeight": 288, "columns": 4, "rows": {"idle": {"row": 0, "frames": 4, "fps": 5, "durations_ms": [200, 200, 200, 200], "loop": true, "frame_variant": "pixel"}, "walk": {"row": 1, "frames": 4, "fps": 9, "durations_ms": [111, 111, 111, 111], "loop": true, "frame_variant": "pixel"}, "run": {"row": 2, "frames": 4, "fps": 11, "durations_ms": [91, 91, 91, 91], "loop": true, "frame_variant": "pixel"}, "jump": {"row": 3, "frames": 1, "fps": 10, "durations_ms": [100], "loop": false, "frame_variant": "pixel"}, "doublejump": {"row": 4, "frames": 1, "fps": 12, "durations_ms": [83], "loop": false, "frame_variant": "pixel"}, "crouch": {"row": 5, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "attack1": {"row": 6, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": false, "frame_variant": "pixel"}, "attack2": {"row": 7, "frames": 4, "fps": 12, "durations_ms": [83, 83, 83, 83], "loop": false, "frame_variant": "pixel"}, "attack3": {"row": 8, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill1": {"row": 9, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "skill2": {"row": 10, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "ultimate": {"row": 11, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "hurt": {"row": 12, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}, "down": {"row": 13, "frames": 4, "fps": 8, "durations_ms": [125, 125, 125, 125], "loop": false, "frame_variant": "pixel"}, "recover": {"row": 14, "frames": 4, "fps": 10, "durations_ms": [100, 100, 100, 100], "loop": false, "frame_variant": "pixel"}}}, "frame_layout": {"sheetWidth": 1792, "sheetHeight": 4320, "cellWidth": 448, "cellHeight": 288, "rows": {"idle": [{"x": 0, "y": 0, "w": 448, "h": 288}, {"x": 448, "y": 0, "w": 448, "h": 288}, {"x": 896, "y": 0, "w": 448, "h": 288}, {"x": 1344, "y": 0, "w": 448, "h": 288}], "walk": [{"x": 0, "y": 288, "w": 448, "h": 288}, {"x": 448, "y": 288, "w": 448, "h": 288}, {"x": 896, "y": 288, "w": 448, "h": 288}, {"x": 1344, "y": 288, "w": 448, "h": 288}], "run": [{"x": 0, "y": 576, "w": 448, "h": 288}, {"x": 448, "y": 576, "w": 448, "h": 288}, {"x": 896, "y": 576, "w": 448, "h": 288}, {"x": 1344, "y": 576, "w": 448, "h": 288}], "jump": [{"x": 0, "y": 864, "w": 448, "h": 288}], "doublejump": [{"x": 0, "y": 1152, "w": 448, "h": 288}], "crouch": [{"x": 0, "y": 1440, "w": 448, "h": 288}, {"x": 448, "y": 1440, "w": 448, "h": 288}, {"x": 896, "y": 1440, "w": 448, "h": 288}, {"x": 1344, "y": 1440, "w": 448, "h": 288}], "attack1": [{"x": 0, "y": 1728, "w": 448, "h": 288}, {"x": 448, "y": 1728, "w": 448, "h": 288}, {"x": 896, "y": 1728, "w": 448, "h": 288}, {"x": 1344, "y": 1728, "w": 448, "h": 288}], "attack2": [{"x": 0, "y": 2016, "w": 448, "h": 288}, {"x": 448, "y": 2016, "w": 448, "h": 288}, {"x": 896, "y": 2016, "w": 448, "h": 288}, {"x": 1344, "y": 2016, "w": 448, "h": 288}], "attack3": [{"x": 0, "y": 2304, "w": 448, "h": 288}, {"x": 448, "y": 2304, "w": 448, "h": 288}, {"x": 896, "y": 2304, "w": 448, "h": 288}, {"x": 1344, "y": 2304, "w": 448, "h": 288}], "skill1": [{"x": 0, "y": 2592, "w": 448, "h": 288}, {"x": 448, "y": 2592, "w": 448, "h": 288}, {"x": 896, "y": 2592, "w": 448, "h": 288}, {"x": 1344, "y": 2592, "w": 448, "h": 288}], "skill2": [{"x": 0, "y": 2880, "w": 448, "h": 288}, {"x": 448, "y": 2880, "w": 448, "h": 288}, {"x": 896, "y": 2880, "w": 448, "h": 288}, {"x": 1344, "y": 2880, "w": 448, "h": 288}], "ultimate": [{"x": 0, "y": 3168, "w": 448, "h": 288}, {"x": 448, "y": 3168, "w": 448, "h": 288}, {"x": 896, "y": 3168, "w": 448, "h": 288}, {"x": 1344, "y": 3168, "w": 448, "h": 288}], "hurt": [{"x": 0, "y": 3456, "w": 448, "h": 288}, {"x": 448, "y": 3456, "w": 448, "h": 288}, {"x": 896, "y": 3456, "w": 448, "h": 288}, {"x": 1344, "y": 3456, "w": 448, "h": 288}], "down": [{"x": 0, "y": 3744, "w": 448, "h": 288}, {"x": 448, "y": 3744, "w": 448, "h": 288}, {"x": 896, "y": 3744, "w": 448, "h": 288}, {"x": 1344, "y": 3744, "w": 448, "h": 288}], "recover": [{"x": 0, "y": 4032, "w": 448, "h": 288}, {"x": 448, "y": 4032, "w": 448, "h": 288}, {"x": 896, "y": 4032, "w": 448, "h": 288}, {"x": 1344, "y": 4032, "w": 448, "h": 288}]}}}; -window.ZANNI_METRICS = {"anchor": {"x": 224, "y": 280}, "states": {"idle": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 71, "top": -176, "bottom": 0}, "height": 176}, {"frame": 1, "bounds": {"left": -69, "right": 65, "top": -186, "bottom": 0}, "height": 186}, {"frame": 2, "bounds": {"left": -67, "right": 71, "top": -168, "bottom": 0}, "height": 168}, {"frame": 3, "bounds": {"left": -72, "right": 71, "top": -176, "bottom": 0}, "height": 176}]}, "walk": {"frames": [{"frame": 0, "bounds": {"left": -54, "right": 69, "top": -181, "bottom": 0}, "height": 181}, {"frame": 1, "bounds": {"left": -57, "right": 67, "top": -183, "bottom": 0}, "height": 183}, {"frame": 2, "bounds": {"left": -56, "right": 69, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -57, "right": 67, "top": -183, "bottom": 0}, "height": 183}]}, "run": {"frames": [{"frame": 0, "bounds": {"left": -66, "right": 82, "top": -167, "bottom": 0}, "height": 167}, {"frame": 1, "bounds": {"left": -69, "right": 79, "top": -164, "bottom": 0}, "height": 164}, {"frame": 2, "bounds": {"left": -67, "right": 81, "top": -167, "bottom": 0}, "height": 167}, {"frame": 3, "bounds": {"left": -70, "right": 76, "top": -160, "bottom": 0}, "height": 160}]}, "jump": {"frames": [{"frame": 0, "bounds": {"left": -72, "right": 83, "top": -177, "bottom": 0}, "height": 177}]}, "doublejump": {"frames": [{"frame": 0, "bounds": {"left": -46, "right": 71, "top": -150, "bottom": 0}, "height": 150}]}, "crouch": {"frames": [{"frame": 0, "bounds": {"left": -56, "right": 77, "top": -154, "bottom": 0}, "height": 154}, {"frame": 1, "bounds": {"left": -50, "right": 65, "top": -141, "bottom": 0}, "height": 141}, {"frame": 2, "bounds": {"left": -50, "right": 66, "top": -142, "bottom": 0}, "height": 142}, {"frame": 3, "bounds": {"left": -59, "right": 74, "top": -152, "bottom": 0}, "height": 152}]}, "attack1": {"frames": [{"frame": 0, "bounds": {"left": -58, "right": 74, "top": -181, "bottom": 0}, "height": 181}, {"frame": 1, "bounds": {"left": -58, "right": 91, "top": -181, "bottom": 0}, "height": 181}, {"frame": 2, "bounds": {"left": -60, "right": 144, "top": -181, "bottom": 0}, "height": 181}, {"frame": 3, "bounds": {"left": -58, "right": 73, "top": -182, "bottom": 0}, "height": 182}]}, "attack2": {"frames": [{"frame": 0, "bounds": {"left": -59, "right": 76, "top": -177, "bottom": 0}, "height": 177}, {"frame": 1, "bounds": {"left": -69, "right": 77, "top": -177, "bottom": 0}, "height": 177}, {"frame": 2, "bounds": {"left": -63, "right": 110, "top": -197, "bottom": 0}, "height": 197}, {"frame": 3, "bounds": {"left": -57, "right": 77, "top": -177, "bottom": 0}, "height": 177}]}, "attack3": {"frames": [{"frame": 0, "bounds": {"left": -62, "right": 77, "top": -167, "bottom": 0}, "height": 167}, {"frame": 1, "bounds": {"left": -66, "right": 103, "top": -167, "bottom": 0}, "height": 167}, {"frame": 2, "bounds": {"left": -67, "right": 161, "top": -163, "bottom": 0}, "height": 163}, {"frame": 3, "bounds": {"left": -57, "right": 78, "top": -167, "bottom": 0}, "height": 167}]}, "skill1": {"frames": [{"frame": 0, "bounds": {"left": -67, "right": 82, "top": -174, "bottom": 0}, "height": 174}, {"frame": 1, "bounds": {"left": -66, "right": 86, "top": -175, "bottom": 0}, "height": 175}, {"frame": 2, "bounds": {"left": -63, "right": 95, "top": -175, "bottom": 0}, "height": 175}, {"frame": 3, "bounds": {"left": -70, "right": 79, "top": -174, "bottom": 0}, "height": 174}]}, "skill2": {"frames": [{"frame": 0, "bounds": {"left": -47, "right": 91, "top": -157, "bottom": 0}, "height": 157}, {"frame": 1, "bounds": {"left": -58, "right": 115, "top": -157, "bottom": 0}, "height": 157}, {"frame": 2, "bounds": {"left": -62, "right": 207, "top": -157, "bottom": 0}, "height": 157}, {"frame": 3, "bounds": {"left": -89, "right": 50, "top": -158, "bottom": 0}, "height": 158}]}, "ultimate": {"frames": [{"frame": 0, "bounds": {"left": -78, "right": 89, "top": -175, "bottom": 0}, "height": 175}, {"frame": 1, "bounds": {"left": -51, "right": 83, "top": -170, "bottom": 0}, "height": 170}, {"frame": 2, "bounds": {"left": -57, "right": 97, "top": -174, "bottom": 0}, "height": 174}, {"frame": 3, "bounds": {"left": -78, "right": 68, "top": -167, "bottom": 0}, "height": 167}]}, "hurt": {"frames": [{"frame": 0, "bounds": {"left": -130, "right": 36, "top": -176, "bottom": 0}, "height": 176}, {"frame": 1, "bounds": {"left": -53, "right": 62, "top": -176, "bottom": 0}, "height": 176}, {"frame": 2, "bounds": {"left": -117, "right": 51, "top": -174, "bottom": 0}, "height": 174}, {"frame": 3, "bounds": {"left": -51, "right": 68, "top": -174, "bottom": 0}, "height": 174}]}, "down": {"frames": [{"frame": 0, "bounds": {"left": -104, "right": 42, "top": -131, "bottom": 0}, "height": 131}, {"frame": 1, "bounds": {"left": -87, "right": 60, "top": -104, "bottom": 0}, "height": 104}, {"frame": 2, "bounds": {"left": -76, "right": 74, "top": -82, "bottom": 0}, "height": 82}, {"frame": 3, "bounds": {"left": -76, "right": 75, "top": -81, "bottom": 0}, "height": 81}]}, "recover": {"frames": [{"frame": 0, "bounds": {"left": -98, "right": 80, "top": -115, "bottom": 0}, "height": 115}, {"frame": 1, "bounds": {"left": -70, "right": 56, "top": -138, "bottom": 0}, "height": 138}, {"frame": 2, "bounds": {"left": -52, "right": 84, "top": -161, "bottom": 0}, "height": 161}, {"frame": 3, "bounds": {"left": -65, "right": 75, "top": -177, "bottom": 0}, "height": 177}]}}, "playback": {"jump": {"airFrame": 0, "torsoPivot": {"x": 6, "y": -88}}, "doublejump": {"frame": 0, "duration": 0.28, "pivot": {"x": 12, "y": -75}}, "measurement": "Centers measured from final curated atlas, including integer air-pose alignment; no runtime resizing."}, "emitters": {"attack1": {"x": 144, "y": -108, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack2": {"x": 110, "y": -176, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "attack3": {"x": 161, "y": -78, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill1": {"x": 95, "y": -95, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "skill2": {"x": 207, "y": -88, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}, "ultimate": {"x": 97, "y": -97, "frame": 2, "method": "Farthest-right opaque endpoint on impact frame; six-pixel tip region, facing right"}}}; diff --git a/assets/zanni/run/sprite-sheet-alpha.webp b/assets/zanni/run/sprite-sheet-alpha.webp deleted file mode 100644 index 21296cf..0000000 Binary files a/assets/zanni/run/sprite-sheet-alpha.webp and /dev/null differ diff --git a/assets/zanni/ui/cutin.webp b/assets/zanni/ui/cutin.webp deleted file mode 100644 index 892ac63..0000000 Binary files a/assets/zanni/ui/cutin.webp and /dev/null differ diff --git a/assets/zanni/ui/fx-bigring.webp b/assets/zanni/ui/fx-bigring.webp deleted file mode 100644 index 5cad4df..0000000 Binary files a/assets/zanni/ui/fx-bigring.webp and /dev/null differ diff --git a/assets/zanni/ui/fx-confetti.webp b/assets/zanni/ui/fx-confetti.webp deleted file mode 100644 index 2fc058b..0000000 Binary files a/assets/zanni/ui/fx-confetti.webp and /dev/null differ diff --git a/assets/zanni/ui/fx-ring.webp b/assets/zanni/ui/fx-ring.webp deleted file mode 100644 index 5307004..0000000 Binary files a/assets/zanni/ui/fx-ring.webp and /dev/null differ diff --git a/assets/zanni/ui/fx-snatch.webp b/assets/zanni/ui/fx-snatch.webp deleted file mode 100644 index 49c437c..0000000 Binary files a/assets/zanni/ui/fx-snatch.webp and /dev/null differ diff --git a/assets/zanni/ui/icon-basic.webp b/assets/zanni/ui/icon-basic.webp deleted file mode 100644 index b71ea96..0000000 Binary files a/assets/zanni/ui/icon-basic.webp and /dev/null differ diff --git a/assets/zanni/ui/icon-skill1.webp b/assets/zanni/ui/icon-skill1.webp deleted file mode 100644 index 239e417..0000000 Binary files a/assets/zanni/ui/icon-skill1.webp and /dev/null differ diff --git a/assets/zanni/ui/icon-skill2.webp b/assets/zanni/ui/icon-skill2.webp deleted file mode 100644 index 23aa57a..0000000 Binary files a/assets/zanni/ui/icon-skill2.webp and /dev/null differ diff --git a/assets/zanni/ui/icon-ultimate.webp b/assets/zanni/ui/icon-ultimate.webp deleted file mode 100644 index e8ff136..0000000 Binary files a/assets/zanni/ui/icon-ultimate.webp and /dev/null differ diff --git a/assets/zanni/ui/portrait.webp b/assets/zanni/ui/portrait.webp deleted file mode 100644 index 6510392..0000000 Binary files a/assets/zanni/ui/portrait.webp and /dev/null differ diff --git a/cora.js b/cora.js deleted file mode 100644 index 62883df..0000000 --- a/cora.js +++ /dev/null @@ -1,31 +0,0 @@ -/* Shared CORA moves (raven demi-human sky dancer): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, passDamage:16, basicRefund:.05 }; - const names = ['FEATHER WALTZ','QUILL VOLLEY','WING GUST','NIGHT MURMURATION']; - // Reach follows the measured blade emitters of the 184 px atlas (assets/cora/emitters.json): slash 87, rising 68, cross 115 px. - const combo = [ - {damage:6,knockback:75,reach:90,duration:.34,hitAt:.5}, - {damage:8,knockback:100,reach:78,duration:.40,hitAt:.5}, - {damage:12,knockback:180,reach:115,duration:.50,hitAt:.55} - ]; - // Night Murmuration: three raven passes sweep across the arena in the cast direction at three heights, - // 16 damage each (48 total). Passes 0.3 s apart stay inside one hurt window; a jump can clear the lowest pass. - const murmuration = { cutinDuration:.78, passStart:[.55,.85,1.15], passHeights:[-70,-112,-150], speed:1500, ravens:10, spacing:40, duration:2.4 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - // Quill Volley: three feathers in a narrow fan, 5+5+6 = 16 like other I skills. - if(name==='skill1')return {name,type:name,damage:16,duration:.46,knockback:60,projectile:true,speed:840,feathers:[5,5,6],spread:.1,hitAt:.5}; - // Wing Gust: forward area out to the far edge of the gust sprite (see coraStrike), no dash. - if(name==='skill2')return {name,type:name,damage:24,duration:.62,knockback:300,reach:190,area:true,hitAt:.55}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Cora={balance,names,combo,murmuration,move,start,refund}; -})(); diff --git a/edda.js b/edda.js deleted file mode 100644 index 14413fd..0000000 --- a/edda.js +++ /dev/null @@ -1,36 +0,0 @@ -/* Shared EDDA moves (tortoise demi-human sage, staff and shell guard): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, stompDamage:16, basicRefund:.05 }; - const names = ['STAFF FORMS','STONE SKIP','SHELL COUNTER','ELDER TORTOISE']; - // A steady staff chain (reach inside the measured staff tip 126/111/82 px); the old sage is not in a hurry. - const combo = [ - {damage:6,knockback:80,reach:110,duration:.4,hitAt:.5}, - {damage:8,knockback:105,reach:95,duration:.46,hitAt:.5}, - {damage:12,knockback:210,reach:80,duration:.58,hitAt:.58} - ]; - // Stone Skip: a flat jade stone flicked low (60 px up) and skipped along the floor. It hops `bounces` more times (each hop `hop` px/s up) before - // it sinks, so it stays low: a jump clears it. - const stone = { speed:520, rise:120, gravity:1600, bounces:2, hop:300 }; - // Shell Counter: EDDA ducks into her shell for `window` s. The first hit that reaches her in that window is ignored and - // answered with a staff counter on the attacker if they are within `reach` px (projectiles are simply blocked). - const counter = { window:.55, reach:170, damage:24, knockback:260 }; - // Elder Tortoise: a giant jade tortoise spirit rises `ahead` px in front of EDDA and lumbers forward (`speed` px/s), - // stomping three times 0.38 s apart (inside the 0.42 s hurt stun). Each stomp hits a rival on the floor within - // `half` px of the spirit (16 each, 48). A jump at the stomp avoids it; so does keeping away. - const tortoise = { cutinDuration:.78, stomps:[.8,1.18,1.56], appear:.6, ahead:140, speed:120, half:150, size:300, duration:2.3 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.5,knockback:110,projectile:true,speed:stone.speed,range:600,hitAt:.55}; - if(name==='skill2')return {name,type:name,damage:0,duration:.7,knockback:0,reach:counter.reach,guard:true,guardEnd:counter.window,hitAt:.99}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Edda={balance,names,combo,stone,counter,tortoise,move,start,refund}; -})(); diff --git a/files.json b/files.json index e8203e3..b449cd1 100644 --- a/files.json +++ b/files.json @@ -1,107 +1,787 @@ { - "files": 277, - "bytes": 33878708, + "files": 378, + "bytes": 111433745, "list": [ { "file": "index.html", - "bytes": 12682 + "bytes": 11996 }, { "file": "mobile.html", - "bytes": 3704 + "bytes": 3638 }, { "file": "style.css", - "bytes": 25732 + "bytes": 25814 }, { "file": "menu.css", - "bytes": 28728 + "bytes": 28655 }, { "file": "preload.js", - "bytes": 4166 + "bytes": 4100 }, { "file": "game.js", - "bytes": 170044 + "bytes": 217269 }, { "file": "menu.js", - "bytes": 24312 + "bytes": 21009 }, { "file": "match.js", - "bytes": 4262 + "bytes": 4217 }, { "file": "announcer.js", - "bytes": 3135 + "bytes": 3087 }, { "file": "touch.js", - "bytes": 4896 + "bytes": 4816 }, { "file": "fenr.js", - "bytes": 2941 + "bytes": 2903 }, { - "file": "mira.js", - "bytes": 2052 + "file": "browo.js", + "bytes": 5523 }, { - "file": "cora.js", - "bytes": 2302 + "file": "assets/anice/form-atlas-preview.png", + "bytes": 523803 }, { - "file": "naja.js", - "bytes": 2509 + "file": "assets/anice/form/.run.sg-rwlock", + "bytes": 0 }, { - "file": "haldor.js", - "bytes": 2677 + "file": "assets/anice/form/base/archive/v1/option-1.png", + "bytes": 1517097 }, { - "file": "zanni.js", - "bytes": 2799 + "file": "assets/anice/form/base/archive/v1/option-1.png.json", + "bytes": 2645 }, { - "file": "isolde.js", - "bytes": 2635 + "file": "assets/anice/form/base/archive/v1/option-1.png.raw.png", + "bytes": 1504438 }, { - "file": "rhea.js", - "bytes": 2656 + "file": "assets/anice/form/base/archive/v1/option-2.png", + "bytes": 1827294 }, { - "file": "solan.js", - "bytes": 2701 + "file": "assets/anice/form/base/archive/v1/option-2.png.json", + "bytes": 2626 }, { - "file": "nib.js", - "bytes": 2524 + "file": "assets/anice/form/base/archive/v1/option-2.png.raw.png", + "bytes": 1784824 }, { - "file": "edda.js", - "bytes": 2832 + "file": "assets/anice/form/base/archive/v1/option-3.png", + "bytes": 1639574 }, { - "file": "assets/ui/drone.png", - "bytes": 18724 + "file": "assets/anice/form/base/archive/v1/option-3.png.json", + "bytes": 2636 }, { - "file": "assets/menu/locked.svg", - "bytes": 697 + "file": "assets/anice/form/base/archive/v1/option-3.png.raw.png", + "bytes": 1636399 + }, + { + "file": "assets/anice/form/base/archive/v1/options.png", + "bytes": 2507749 + }, + { + "file": "assets/anice/form/base/base-selected.png", + "bytes": 1483240 + }, + { + "file": "assets/anice/form/base/option-1.png", + "bytes": 11627 + }, + { + "file": "assets/anice/form/base/option-1.png.json", + "bytes": 3599 + }, + { + "file": "assets/anice/form/base/option-1.png.raw.png", + "bytes": 1446461 + }, + { + "file": "assets/anice/form/base/option-2.png", + "bytes": 7471 + }, + { + "file": "assets/anice/form/base/option-2.png.json", + "bytes": 3571 + }, + { + "file": "assets/anice/form/base/option-2.png.raw.png", + "bytes": 1526354 + }, + { + "file": "assets/anice/form/base/option-3.png", + "bytes": 2293 + }, + { + "file": "assets/anice/form/base/option-3.png.json", + "bytes": 3880 + }, + { + "file": "assets/anice/form/base/option-3.png.raw.png", + "bytes": 1854990 + }, + { + "file": "assets/anice/form/base/options.png", + "bytes": 1995965 + }, + { + "file": "assets/anice/form/manifest-data.json", + "bytes": 11439 + }, + { + "file": "assets/anice/form/raw-original/attack1.png", + "bytes": 1776741 + }, + { + "file": "assets/anice/form/raw-original/attack2.png", + "bytes": 1743998 + }, + { + "file": "assets/anice/form/raw-original/attack3.png", + "bytes": 1812903 + }, + { + "file": "assets/anice/form/raw-original/crouch.png", + "bytes": 1758921 + }, + { + "file": "assets/anice/form/raw-original/doublejump.png", + "bytes": 1541177 + }, + { + "file": "assets/anice/form/raw-original/down.png", + "bytes": 1408036 + }, + { + "file": "assets/anice/form/raw-original/hurt.png", + "bytes": 1873472 + }, + { + "file": "assets/anice/form/raw-original/idle.png", + "bytes": 1954495 + }, + { + "file": "assets/anice/form/raw-original/jump.png", + "bytes": 1517620 + }, + { + "file": "assets/anice/form/raw-original/recover.png", + "bytes": 1652128 + }, + { + "file": "assets/anice/form/raw-original/run.png", + "bytes": 1688794 + }, + { + "file": "assets/anice/form/raw-original/skill1.png", + "bytes": 1710663 + }, + { + "file": "assets/anice/form/raw-original/skill2.png", + "bytes": 1803887 + }, + { + "file": "assets/anice/form/raw-original/ultimate.png", + "bytes": 1820417 + }, + { + "file": "assets/anice/form/raw-original/walk.png", + "bytes": 1857428 + }, + { + "file": "assets/anice/form/request.json", + "bytes": 5124 + }, + { + "file": "assets/anice/form/run/base-source.png", + "bytes": 1483240 + }, + { + "file": "assets/anice/form/run/frames/attack1/frame-0.png", + "bytes": 33140 + }, + { + "file": "assets/anice/form/run/frames/attack1/frame-1.png", + "bytes": 36087 + }, + { + "file": "assets/anice/form/run/frames/attack1/frame-2.png", + "bytes": 36390 + }, + { + "file": "assets/anice/form/run/frames/attack1/frame-3.png", + "bytes": 34535 + }, + { + "file": "assets/anice/form/run/frames/attack2/frame-0.png", + "bytes": 34536 + }, + { + "file": "assets/anice/form/run/frames/attack2/frame-1.png", + "bytes": 32551 + }, + { + "file": "assets/anice/form/run/frames/attack2/frame-2.png", + "bytes": 33875 + }, + { + "file": "assets/anice/form/run/frames/attack2/frame-3.png", + "bytes": 33989 + }, + { + "file": "assets/anice/form/run/frames/attack3/frame-0.png", + "bytes": 38125 + }, + { + "file": "assets/anice/form/run/frames/attack3/frame-1.png", + "bytes": 33109 + }, + { + "file": "assets/anice/form/run/frames/attack3/frame-2.png", + "bytes": 33138 + }, + { + "file": "assets/anice/form/run/frames/attack3/frame-3.png", + "bytes": 39274 + }, + { + "file": "assets/anice/form/run/frames/crouch/frame-0.png", + "bytes": 38721 + }, + { + "file": "assets/anice/form/run/frames/crouch/frame-1.png", + "bytes": 35793 + }, + { + "file": "assets/anice/form/run/frames/crouch/frame-2.png", + "bytes": 39339 + }, + { + "file": "assets/anice/form/run/frames/crouch/frame-3.png", + "bytes": 36011 + }, + { + "file": "assets/anice/form/run/frames/doublejump/frame-0.png", + "bytes": 22253 + }, + { + "file": "assets/anice/form/run/frames/down/frame-0.png", + "bytes": 22517 + }, + { + "file": "assets/anice/form/run/frames/down/frame-1.png", + "bytes": 21177 + }, + { + "file": "assets/anice/form/run/frames/down/frame-2.png", + "bytes": 19016 + }, + { + "file": "assets/anice/form/run/frames/down/frame-3.png", + "bytes": 15756 + }, + { + "file": "assets/anice/form/run/frames/frames-manifest.json", + "bytes": 19028 + }, + { + "file": "assets/anice/form/run/frames/hurt/frame-0.png", + "bytes": 40952 + }, + { + "file": "assets/anice/form/run/frames/hurt/frame-1.png", + "bytes": 40762 + }, + { + "file": "assets/anice/form/run/frames/hurt/frame-2.png", + "bytes": 38106 + }, + { + "file": "assets/anice/form/run/frames/hurt/frame-3.png", + "bytes": 40005 + }, + { + "file": "assets/anice/form/run/frames/idle/frame-0.png", + "bytes": 45325 + }, + { + "file": "assets/anice/form/run/frames/idle/frame-1.png", + "bytes": 42793 + }, + { + "file": "assets/anice/form/run/frames/idle/frame-2.png", + "bytes": 45082 + }, + { + "file": "assets/anice/form/run/frames/idle/frame-3.png", + "bytes": 42770 + }, + { + "file": "assets/anice/form/run/frames/jump/frame-0.png", + "bytes": 35837 + }, + { + "file": "assets/anice/form/run/frames/recover/frame-0.png", + "bytes": 27262 + }, + { + "file": "assets/anice/form/run/frames/recover/frame-1.png", + "bytes": 29814 + }, + { + "file": "assets/anice/form/run/frames/recover/frame-2.png", + "bytes": 29200 + }, + { + "file": "assets/anice/form/run/frames/recover/frame-3.png", + "bytes": 35111 + }, + { + "file": "assets/anice/form/run/frames/run/frame-0.png", + "bytes": 33909 + }, + { + "file": "assets/anice/form/run/frames/run/frame-1.png", + "bytes": 30196 + }, + { + "file": "assets/anice/form/run/frames/run/frame-2.png", + "bytes": 33164 + }, + { + "file": "assets/anice/form/run/frames/run/frame-3.png", + "bytes": 30863 + }, + { + "file": "assets/anice/form/run/frames/skill1/frame-0.png", + "bytes": 30487 + }, + { + "file": "assets/anice/form/run/frames/skill1/frame-1.png", + "bytes": 33087 + }, + { + "file": "assets/anice/form/run/frames/skill1/frame-2.png", + "bytes": 33111 + }, + { + "file": "assets/anice/form/run/frames/skill1/frame-3.png", + "bytes": 33015 + }, + { + "file": "assets/anice/form/run/frames/skill2/frame-0.png", + "bytes": 36512 + }, + { + "file": "assets/anice/form/run/frames/skill2/frame-1.png", + "bytes": 35294 + }, + { + "file": "assets/anice/form/run/frames/skill2/frame-2.png", + "bytes": 35581 + }, + { + "file": "assets/anice/form/run/frames/skill2/frame-3.png", + "bytes": 38813 + }, + { + "file": "assets/anice/form/run/frames/ultimate/frame-0.png", + "bytes": 35236 + }, + { + "file": "assets/anice/form/run/frames/ultimate/frame-1.png", + "bytes": 42229 + }, + { + "file": "assets/anice/form/run/frames/ultimate/frame-2.png", + "bytes": 36386 + }, + { + "file": "assets/anice/form/run/frames/ultimate/frame-3.png", + "bytes": 36806 + }, + { + "file": "assets/anice/form/run/frames/walk/frame-0.png", + "bytes": 42251 + }, + { + "file": "assets/anice/form/run/frames/walk/frame-1.png", + "bytes": 33611 + }, + { + "file": "assets/anice/form/run/frames/walk/frame-2.png", + "bytes": 43013 + }, + { + "file": "assets/anice/form/run/frames/walk/frame-3.png", + "bytes": 38248 + }, + { + "file": "assets/anice/form/run/manifest.json", + "bytes": 10081 + }, + { + "file": "assets/anice/form/run/prompts/attack1.txt", + "bytes": 5450 + }, + { + "file": "assets/anice/form/run/prompts/attack2.txt", + "bytes": 5438 + }, + { + "file": "assets/anice/form/run/prompts/attack3.txt", + "bytes": 5457 + }, + { + "file": "assets/anice/form/run/prompts/crouch.txt", + "bytes": 5455 + }, + { + "file": "assets/anice/form/run/prompts/doublejump.txt", + "bytes": 5481 + }, + { + "file": "assets/anice/form/run/prompts/down.txt", + "bytes": 5459 + }, + { + "file": "assets/anice/form/run/prompts/hurt.txt", + "bytes": 5443 + }, + { + "file": "assets/anice/form/run/prompts/idle.txt", + "bytes": 5444 + }, + { + "file": "assets/anice/form/run/prompts/jump.txt", + "bytes": 5753 + }, + { + "file": "assets/anice/form/run/prompts/recover.txt", + "bytes": 5477 + }, + { + "file": "assets/anice/form/run/prompts/run.txt", + "bytes": 5752 + }, + { + "file": "assets/anice/form/run/prompts/skill1.txt", + "bytes": 5474 + }, + { + "file": "assets/anice/form/run/prompts/skill2.txt", + "bytes": 5456 + }, + { + "file": "assets/anice/form/run/prompts/ultimate.txt", + "bytes": 5527 + }, + { + "file": "assets/anice/form/run/prompts/walk.txt", + "bytes": 5752 + }, + { + "file": "assets/anice/form/run/raw/attack1.png", + "bytes": 188886 + }, + { + "file": "assets/anice/form/run/raw/attack1.png.raw.png", + "bytes": 1776741 + }, + { + "file": "assets/anice/form/run/raw/attack2.png", + "bytes": 184487 + }, + { + "file": "assets/anice/form/run/raw/attack2.png.raw.png", + "bytes": 1743998 + }, + { + "file": "assets/anice/form/run/raw/attack3.png", + "bytes": 191696 + }, + { + "file": "assets/anice/form/run/raw/attack3.png.raw.png", + "bytes": 1812903 + }, + { + "file": "assets/anice/form/run/raw/crouch.png", + "bytes": 189618 + }, + { + "file": "assets/anice/form/run/raw/crouch.png.raw.png", + "bytes": 1758921 + }, + { + "file": "assets/anice/form/run/raw/doublejump.png", + "bytes": 28253 + }, + { + "file": "assets/anice/form/run/raw/doublejump.png.raw.png", + "bytes": 1541177 + }, + { + "file": "assets/anice/form/run/raw/down.png", + "bytes": 147913 + }, + { + "file": "assets/anice/form/run/raw/down.png.raw.png", + "bytes": 1408036 + }, + { + "file": "assets/anice/form/run/raw/hurt.png", + "bytes": 197855 + }, + { + "file": "assets/anice/form/run/raw/hurt.png.raw.png", + "bytes": 1873472 + }, + { + "file": "assets/anice/form/run/raw/idle.png", + "bytes": 210336 + }, + { + "file": "assets/anice/form/run/raw/idle.png.raw.png", + "bytes": 1954495 + }, + { + "file": "assets/anice/form/run/raw/jump.png", + "bytes": 49770 + }, + { + "file": "assets/anice/form/run/raw/jump.png.raw.png", + "bytes": 1517620 + }, + { + "file": "assets/anice/form/run/raw/recover.png", + "bytes": 175576 + }, + { + "file": "assets/anice/form/run/raw/recover.png.raw.png", + "bytes": 1652128 + }, + { + "file": "assets/anice/form/run/raw/run.png", + "bytes": 179791 + }, + { + "file": "assets/anice/form/run/raw/run.png.raw.png", + "bytes": 1688794 + }, + { + "file": "assets/anice/form/run/raw/skill1.png", + "bytes": 181431 + }, + { + "file": "assets/anice/form/run/raw/skill1.png.raw.png", + "bytes": 1710663 + }, + { + "file": "assets/anice/form/run/raw/skill2.png", + "bytes": 191221 + }, + { + "file": "assets/anice/form/run/raw/skill2.png.raw.png", + "bytes": 1803887 + }, + { + "file": "assets/anice/form/run/raw/ultimate.png", + "bytes": 193199 + }, + { + "file": "assets/anice/form/run/raw/ultimate.png.raw.png", + "bytes": 1820417 + }, + { + "file": "assets/anice/form/run/raw/walk.png", + "bytes": 199924 + }, + { + "file": "assets/anice/form/run/raw/walk.png.raw.png", + "bytes": 1857428 + }, + { + "file": "assets/anice/form/run/reports/gen-set/attack1.json", + "bytes": 6357 + }, + { + "file": "assets/anice/form/run/reports/gen-set/attack2.json", + "bytes": 6345 + }, + { + "file": "assets/anice/form/run/reports/gen-set/attack3.json", + "bytes": 6364 + }, + { + "file": "assets/anice/form/run/reports/gen-set/crouch.json", + "bytes": 6359 + }, + { + "file": "assets/anice/form/run/reports/gen-set/doublejump.json", + "bytes": 6397 + }, + { + "file": "assets/anice/form/run/reports/gen-set/down.json", + "bytes": 6357 + }, + { + "file": "assets/anice/form/run/reports/gen-set/hurt.json", + "bytes": 6340 + }, + { + "file": "assets/anice/form/run/reports/gen-set/idle.json", + "bytes": 6342 + }, + { + "file": "assets/anice/form/run/reports/gen-set/jump.json", + "bytes": 6655 + }, + { + "file": "assets/anice/form/run/reports/gen-set/recover.json", + "bytes": 6384 + }, + { + "file": "assets/anice/form/run/reports/gen-set/run.json", + "bytes": 6652 + }, + { + "file": "assets/anice/form/run/reports/gen-set/set.report.json", + "bytes": 858 + }, + { + "file": "assets/anice/form/run/reports/gen-set/skill1.json", + "bytes": 6377 + }, + { + "file": "assets/anice/form/run/reports/gen-set/skill2.json", + "bytes": 6360 + }, + { + "file": "assets/anice/form/run/reports/gen-set/table.md", + "bytes": 120 + }, + { + "file": "assets/anice/form/run/reports/gen-set/ultimate.json", + "bytes": 6437 + }, + { + "file": "assets/anice/form/run/reports/gen-set/walk.json", + "bytes": 6655 + }, + { + "file": "assets/anice/form/run/sprite-request.json", + "bytes": 5992 + }, + { + "file": "assets/anice/form/run/sprite-sheet-alpha.png", + "bytes": 1841119 + }, + { + "file": "assets/anice/form/run/sprite-sheet-alpha.report.json", + "bytes": 14928 + }, + { + "file": "assets/anice/form/run/sprite-sheet-alpha.webp", + "bytes": 1363320 + }, + { + "file": "assets/anice/manifest.js", + "bytes": 25215 + }, + { + "file": "assets/anice/run/sprite-sheet-alpha.webp", + "bytes": 933198 + }, + { + "file": "assets/anice/ui/cutin-mode.webp", + "bytes": 381008 + }, + { + "file": "assets/anice/ui/cutin.webp", + "bytes": 200842 + }, + { + "file": "assets/anice/ui/fx-burst.webp", + "bytes": 142064 + }, + { + "file": "assets/anice/ui/fx-impact.webp", + "bytes": 16644 + }, + { + "file": "assets/anice/ui/fx-nano.webp", + "bytes": 80992 + }, + { + "file": "assets/anice/ui/fx-nanoblast.webp", + "bytes": 46472 + }, + { + "file": "assets/anice/ui/fx-podium.webp", + "bytes": 84750 + }, + { + "file": "assets/anice/ui/fx-tackle.webp", + "bytes": 78640 + }, + { + "file": "assets/anice/ui/fx-words.webp", + "bytes": 67296 + }, + { + "file": "assets/anice/ui/icon-basic.webp", + "bytes": 27784 + }, + { + "file": "assets/anice/ui/icon-mode-skill1.webp", + "bytes": 36626 + }, + { + "file": "assets/anice/ui/icon-mode-skill2.webp", + "bytes": 42382 + }, + { + "file": "assets/anice/ui/icon-mode-ultimate.webp", + "bytes": 40962 + }, + { + "file": "assets/anice/ui/icon-skill1.webp", + "bytes": 27550 + }, + { + "file": "assets/anice/ui/icon-skill2.webp", + "bytes": 27416 + }, + { + "file": "assets/anice/ui/icon-ultimate.webp", + "bytes": 29408 + }, + { + "file": "assets/anice/ui/portrait.webp", + "bytes": 31204 }, { "file": "assets/audio/announcer/arco_wins.mp3", "bytes": 23031 }, - { - "file": "assets/audio/announcer/cora_wins.mp3", - "bytes": 21359 - }, { "file": "assets/audio/announcer/double_ko.mp3", "bytes": 24285 @@ -110,10 +790,6 @@ "file": "assets/audio/announcer/draw.mp3", "bytes": 17598 }, - { - "file": "assets/audio/announcer/edda_wins.mp3", - "bytes": 17598 - }, { "file": "assets/audio/announcer/fenr_wins.mp3", "bytes": 24285 @@ -122,37 +798,13 @@ "file": "assets/audio/announcer/fight.mp3", "bytes": 17598 }, - { - "file": "assets/audio/announcer/haldor_wins.mp3", - "bytes": 21359 - }, - { - "file": "assets/audio/announcer/isolde_wins.mp3", - "bytes": 24285 - }, { "file": "assets/audio/announcer/ko.mp3", "bytes": 11328 }, { "file": "assets/audio/announcer/manifest.js", - "bytes": 3383 - }, - { - "file": "assets/audio/announcer/mira_wins.mp3", - "bytes": 26793 - }, - { - "file": "assets/audio/announcer/naja_wins.mp3", - "bytes": 23031 - }, - { - "file": "assets/audio/announcer/nib_wins.mp3", - "bytes": 23031 - }, - { - "file": "assets/audio/announcer/rhea_wins.mp3", - "bytes": 21359 + "bytes": 1478 }, { "file": "assets/audio/announcer/round_1.mp3", @@ -170,62 +822,14 @@ "file": "assets/audio/announcer/select_arco.mp3", "bytes": 15090 }, - { - "file": "assets/audio/announcer/select_cora.mp3", - "bytes": 15090 - }, - { - "file": "assets/audio/announcer/select_edda.mp3", - "bytes": 16344 - }, { "file": "assets/audio/announcer/select_fenr.mp3", "bytes": 17598 }, - { - "file": "assets/audio/announcer/select_haldor.mp3", - "bytes": 18852 - }, - { - "file": "assets/audio/announcer/select_isolde.mp3", - "bytes": 11328 - }, - { - "file": "assets/audio/announcer/select_mira.mp3", - "bytes": 21359 - }, - { - "file": "assets/audio/announcer/select_naja.mp3", - "bytes": 18852 - }, - { - "file": "assets/audio/announcer/select_nib.mp3", - "bytes": 15090 - }, - { - "file": "assets/audio/announcer/select_rhea.mp3", - "bytes": 16344 - }, - { - "file": "assets/audio/announcer/select_solan.mp3", - "bytes": 15090 - }, - { - "file": "assets/audio/announcer/select_zanni.mp3", - "bytes": 18852 - }, - { - "file": "assets/audio/announcer/solan_wins.mp3", - "bytes": 22612 - }, { "file": "assets/audio/announcer/time_up.mp3", "bytes": 20106 }, - { - "file": "assets/audio/announcer/zanni_wins.mp3", - "bytes": 24284 - }, { "file": "assets/audio/arco-ultimate-dylan.mp3", "bytes": 36824 @@ -235,124 +839,156 @@ "bytes": 1571832 }, { - "file": "assets/cora/audio/cora-ultimate-anika.mp3", - "bytes": 28882 + "file": "assets/browo/manifest.js", + "bytes": 11367 }, { - "file": "assets/cora/audio/cora_wins.mp3", - "bytes": 21359 + "file": "assets/browo/run/sprite-sheet-alpha.webp", + "bytes": 1034754 }, { - "file": "assets/cora/audio/select_cora.mp3", - "bytes": 15090 + "file": "assets/browo/ui/cutin-fire.webp", + "bytes": 400460 }, { - "file": "assets/cora/manifest.js", - "bytes": 11440 + "file": "assets/browo/ui/cutin.webp", + "bytes": 410306 }, { - "file": "assets/cora/run/sprite-sheet-alpha.webp", - "bytes": 1500730 + "file": "assets/browo/ui/fx-burntree.webp", + "bytes": 108312 }, { - "file": "assets/cora/ui/cutin.webp", - "bytes": 189114 + "file": "assets/browo/ui/fx-impact.webp", + "bytes": 15564 }, { - "file": "assets/cora/ui/fx-feather.webp", - "bytes": 5044 + "file": "assets/browo/ui/fx-sawit.webp", + "bytes": 111080 }, { - "file": "assets/cora/ui/fx-gust.webp", - "bytes": 14152 + "file": "assets/browo/ui/fx-sunburst.webp", + "bytes": 47934 }, { - "file": "assets/cora/ui/fx-raven.webp", - "bytes": 10750 + "file": "assets/browo/ui/fx-tornado.webp", + "bytes": 138990 }, { - "file": "assets/cora/ui/icon-basic.webp", - "bytes": 21044 + "file": "assets/browo/ui/fx-truck.webp", + "bytes": 53508 }, { - "file": "assets/cora/ui/icon-skill1.webp", - "bytes": 17310 + "file": "assets/browo/ui/icon-basic.webp", + "bytes": 31632 }, { - "file": "assets/cora/ui/icon-skill2.webp", - "bytes": 19240 + "file": "assets/browo/ui/icon-rage-skill1.webp", + "bytes": 38234 }, { - "file": "assets/cora/ui/icon-ultimate.webp", - "bytes": 28518 + "file": "assets/browo/ui/icon-rage-skill2.webp", + "bytes": 41992 }, { - "file": "assets/cora/ui/portrait.webp", - "bytes": 37954 + "file": "assets/browo/ui/icon-rage-ultimate.webp", + "bytes": 39076 }, { - "file": "assets/edda/audio/edda-ultimate.mp3", - "bytes": 23030 + "file": "assets/browo/ui/icon-skill1.webp", + "bytes": 39968 }, { - "file": "assets/edda/audio/edda_wins.mp3", - "bytes": 17598 + "file": "assets/browo/ui/icon-skill2.webp", + "bytes": 31528 }, { - "file": "assets/edda/audio/select_edda.mp3", - "bytes": 16344 + "file": "assets/browo/ui/icon-ultimate.webp", + "bytes": 38878 }, { - "file": "assets/edda/manifest.js", - "bytes": 12097 + "file": "assets/browo/ui/portrait.webp", + "bytes": 44684 }, { - "file": "assets/edda/run/sprite-sheet-alpha.webp", - "bytes": 1595536 + "file": "assets/ethanolman/manifest.js", + "bytes": 13894 }, { - "file": "assets/edda/ui/cutin.webp", - "bytes": 264670 + "file": "assets/ethanolman/run/sprite-sheet-alpha.webp", + "bytes": 885038 }, { - "file": "assets/edda/ui/fx-ripple.webp", - "bytes": 6940 + "file": "assets/ethanolman/ui/cutin-mode.webp", + "bytes": 466514 }, { - "file": "assets/edda/ui/fx-shell.webp", - "bytes": 17640 + "file": "assets/ethanolman/ui/cutin.webp", + "bytes": 468960 }, { - "file": "assets/edda/ui/fx-stomp.webp", - "bytes": 13468 + "file": "assets/ethanolman/ui/fx-blast.webp", + "bytes": 165684 }, { - "file": "assets/edda/ui/fx-stone.webp", - "bytes": 7698 + "file": "assets/ethanolman/ui/fx-burst.webp", + "bytes": 125934 }, { - "file": "assets/edda/ui/fx-tortoise.webp", - "bytes": 60852 + "file": "assets/ethanolman/ui/fx-fireflow.webp", + "bytes": 55662 }, { - "file": "assets/edda/ui/icon-basic.webp", - "bytes": 26148 + "file": "assets/ethanolman/ui/fx-firepillar.webp", + "bytes": 92556 }, { - "file": "assets/edda/ui/icon-skill1.webp", - "bytes": 20836 + "file": "assets/ethanolman/ui/fx-flood.webp", + "bytes": 103472 }, { - "file": "assets/edda/ui/icon-skill2.webp", - "bytes": 23314 + "file": "assets/ethanolman/ui/fx-impact.webp", + "bytes": 16930 }, { - "file": "assets/edda/ui/icon-ultimate.webp", - "bytes": 31242 + "file": "assets/ethanolman/ui/fx-splash.webp", + "bytes": 157048 }, { - "file": "assets/edda/ui/portrait.webp", - "bytes": 34176 + "file": "assets/ethanolman/ui/fx-wave.webp", + "bytes": 54982 + }, + { + "file": "assets/ethanolman/ui/icon-basic.webp", + "bytes": 34308 + }, + { + "file": "assets/ethanolman/ui/icon-mode-skill1.webp", + "bytes": 41852 + }, + { + "file": "assets/ethanolman/ui/icon-mode-skill2.webp", + "bytes": 44852 + }, + { + "file": "assets/ethanolman/ui/icon-mode-ultimate.webp", + "bytes": 41016 + }, + { + "file": "assets/ethanolman/ui/icon-skill1.webp", + "bytes": 38200 + }, + { + "file": "assets/ethanolman/ui/icon-skill2.webp", + "bytes": 34536 + }, + { + "file": "assets/ethanolman/ui/icon-ultimate.webp", + "bytes": 40840 + }, + { + "file": "assets/ethanolman/ui/portrait.webp", + "bytes": 64936 }, { "file": "assets/fenr/audio/fenr-ultimate-holden.mp3", @@ -360,7 +996,7 @@ }, { "file": "assets/fenr/human/manifest.js", - "bytes": 11411 + "bytes": 11409 }, { "file": "assets/fenr/human/run/sprite-sheet-alpha.webp", @@ -432,12 +1068,16 @@ }, { "file": "assets/fenr/wolf/manifest.js", - "bytes": 11436 + "bytes": 11434 }, { "file": "assets/fenr/wolf/run/sprite-sheet-alpha.webp", "bytes": 2360632 }, + { + "file": "assets/fonts/OFL.txt", + "bytes": 4373 + }, { "file": "assets/fonts/Rajdhani-Bold.ttf", "bytes": 400680 @@ -447,160 +1087,192 @@ "bytes": 384348 }, { - "file": "assets/haldor/audio/haldor-ultimate.mp3", - "bytes": 20106 + "file": "assets/gufron/manifest.js", + "bytes": 13997 }, { - "file": "assets/haldor/audio/haldor_wins.mp3", - "bytes": 21359 + "file": "assets/gufron/run/sprite-sheet-alpha.webp", + "bytes": 952108 }, { - "file": "assets/haldor/audio/select_haldor.mp3", - "bytes": 18852 + "file": "assets/gufron/ui/cutin-mode.webp", + "bytes": 385766 }, { - "file": "assets/haldor/manifest.js", - "bytes": 11455 + "file": "assets/gufron/ui/cutin.webp", + "bytes": 376720 }, { - "file": "assets/haldor/run/sprite-sheet-alpha.webp", - "bytes": 1950620 + "file": "assets/gufron/ui/fx-ant.webp", + "bytes": 38064 }, { - "file": "assets/haldor/ui/cutin.webp", - "bytes": 226036 + "file": "assets/gufron/ui/fx-antswarm.webp", + "bytes": 44740 }, { - "file": "assets/haldor/ui/fx-quake.webp", - "bytes": 12184 + "file": "assets/gufron/ui/fx-burst.webp", + "bytes": 132316 }, { - "file": "assets/haldor/ui/fx-slag.webp", - "bytes": 11300 + "file": "assets/gufron/ui/fx-giantant.webp", + "bytes": 64786 }, { - "file": "assets/haldor/ui/fx-splash.webp", - "bytes": 9562 + "file": "assets/gufron/ui/fx-impact.webp", + "bytes": 20724 }, { - "file": "assets/haldor/ui/fx-steam.webp", - "bytes": 6432 + "file": "assets/gufron/ui/fx-soundchain.webp", + "bytes": 85598 }, { - "file": "assets/haldor/ui/icon-basic.webp", - "bytes": 28334 + "file": "assets/gufron/ui/fx-soundwave.webp", + "bytes": 50296 }, { - "file": "assets/haldor/ui/icon-skill1.webp", - "bytes": 16502 + "file": "assets/gufron/ui/icon-basic.webp", + "bytes": 33562 }, { - "file": "assets/haldor/ui/icon-skill2.webp", - "bytes": 23904 + "file": "assets/gufron/ui/icon-mode-skill1.webp", + "bytes": 39900 }, { - "file": "assets/haldor/ui/icon-ultimate.webp", - "bytes": 31006 + "file": "assets/gufron/ui/icon-mode-skill2.webp", + "bytes": 37666 }, { - "file": "assets/haldor/ui/portrait.webp", - "bytes": 46308 + "file": "assets/gufron/ui/icon-mode-ultimate.webp", + "bytes": 40038 }, { - "file": "assets/isolde/audio/isolde-ultimate.mp3", - "bytes": 30972 + "file": "assets/gufron/ui/icon-skill1.webp", + "bytes": 36430 }, { - "file": "assets/isolde/audio/isolde_wins.mp3", - "bytes": 24285 + "file": "assets/gufron/ui/icon-skill2.webp", + "bytes": 32212 }, { - "file": "assets/isolde/audio/select_isolde.mp3", - "bytes": 11328 + "file": "assets/gufron/ui/icon-ultimate.webp", + "bytes": 39842 }, { - "file": "assets/isolde/manifest.js", - "bytes": 11797 - }, - { - "file": "assets/isolde/run/sprite-sheet-alpha.webp", - "bytes": 1550448 - }, - { - "file": "assets/isolde/ui/cutin.webp", - "bytes": 226498 - }, - { - "file": "assets/isolde/ui/fx-frost.webp", - "bytes": 8318 - }, - { - "file": "assets/isolde/ui/fx-piercer.webp", - "bytes": 6690 - }, - { - "file": "assets/isolde/ui/fx-shatter.webp", - "bytes": 15232 - }, - { - "file": "assets/isolde/ui/fx-skyfall.webp", - "bytes": 7412 - }, - { - "file": "assets/isolde/ui/icon-basic.webp", - "bytes": 14166 - }, - { - "file": "assets/isolde/ui/icon-skill1.webp", - "bytes": 20634 - }, - { - "file": "assets/isolde/ui/icon-skill2.webp", - "bytes": 23448 - }, - { - "file": "assets/isolde/ui/icon-ultimate.webp", - "bytes": 26876 - }, - { - "file": "assets/isolde/ui/portrait.webp", - "bytes": 41656 + "file": "assets/gufron/ui/portrait.webp", + "bytes": 54520 }, { "file": "assets/mecha/manifest.js", - "bytes": 13266 + "bytes": 13264 }, { "file": "assets/mecha/run/sprite-sheet-alpha.webp", "bytes": 1140340 }, { - "file": "assets/menu/arco-select.webp", - "bytes": 83804 + "file": "assets/megachan/manifest.js", + "bytes": 13941 + }, + { + "file": "assets/megachan/run/sprite-sheet-alpha.webp", + "bytes": 1259292 + }, + { + "file": "assets/megachan/ui/cutin-mode.webp", + "bytes": 361828 + }, + { + "file": "assets/megachan/ui/cutin.webp", + "bytes": 402302 + }, + { + "file": "assets/megachan/ui/fx-blackbull.webp", + "bytes": 101600 + }, + { + "file": "assets/megachan/ui/fx-bull.webp", + "bytes": 71072 + }, + { + "file": "assets/megachan/ui/fx-bullflame.webp", + "bytes": 62998 + }, + { + "file": "assets/megachan/ui/fx-burst.webp", + "bytes": 140028 + }, + { + "file": "assets/megachan/ui/fx-firewave.webp", + "bytes": 92234 + }, + { + "file": "assets/megachan/ui/fx-hellbull.webp", + "bytes": 88778 + }, + { + "file": "assets/megachan/ui/fx-impact.webp", + "bytes": 18462 + }, + { + "file": "assets/megachan/ui/fx-soundwave.webp", + "bytes": 52582 + }, + { + "file": "assets/megachan/ui/icon-basic.webp", + "bytes": 34370 + }, + { + "file": "assets/megachan/ui/icon-mode-skill1.webp", + "bytes": 42356 + }, + { + "file": "assets/megachan/ui/icon-mode-skill2.webp", + "bytes": 35454 + }, + { + "file": "assets/megachan/ui/icon-mode-ultimate.webp", + "bytes": 42464 + }, + { + "file": "assets/megachan/ui/icon-skill1.webp", + "bytes": 38852 + }, + { + "file": "assets/megachan/ui/icon-skill2.webp", + "bytes": 35164 + }, + { + "file": "assets/megachan/ui/icon-ultimate.webp", + "bytes": 36534 + }, + { + "file": "assets/megachan/ui/portrait.webp", + "bytes": 50208 + }, + { + "file": "assets/menu/anice-select.webp", + "bytes": 84138 }, { "file": "assets/menu/azure-harbor.webp", "bytes": 116560 }, { - "file": "assets/menu/cora-select.webp", - "bytes": 85066 - }, - { - "file": "assets/menu/edda-select.webp", - "bytes": 98000 + "file": "assets/menu/browo-select.webp", + "bytes": 152000 }, { "file": "assets/menu/elderwood.webp", "bytes": 130386 }, { - "file": "assets/menu/fenr-select.webp", - "bytes": 84330 + "file": "assets/menu/ethanolman-select.webp", + "bytes": 110500 }, { - "file": "assets/menu/haldor-select.webp", - "bytes": 110328 + "file": "assets/menu/gufron-select.webp", + "bytes": 141964 }, { "file": "assets/menu/home-art.webp", @@ -615,384 +1287,184 @@ "bytes": 148524 }, { - "file": "assets/menu/isolde-select.webp", - "bytes": 119740 + "file": "assets/menu/locked.svg", + "bytes": 768 }, { - "file": "assets/menu/mira-select.webp", - "bytes": 89058 + "file": "assets/menu/megachan-select.webp", + "bytes": 132458 }, { "file": "assets/menu/moonrise.webp", "bytes": 68134 }, { - "file": "assets/menu/naja-select.webp", - "bytes": 130418 + "file": "assets/menu/soloman-select.webp", + "bytes": 110436 }, { - "file": "assets/menu/nib-select.webp", - "bytes": 77832 - }, - { - "file": "assets/menu/rhea-select.webp", - "bytes": 107980 - }, - { - "file": "assets/menu/solan-select.webp", - "bytes": 112452 + "file": "assets/menu/sonofsolo-select.webp", + "bytes": 89842 }, { "file": "assets/menu/sunspire.webp", "bytes": 49268 }, { - "file": "assets/menu/zanni-select.webp", - "bytes": 117976 + "file": "assets/soloman/manifest.js", + "bytes": 13766 }, { - "file": "assets/mira/audio/mira-ultimate-luna.mp3", - "bytes": 23448 + "file": "assets/soloman/run/sprite-sheet-alpha.webp", + "bytes": 270610 }, { - "file": "assets/mira/audio/mira_wins.mp3", - "bytes": 26793 + "file": "assets/soloman/ui/cutin-mode.webp", + "bytes": 365344 }, { - "file": "assets/mira/audio/select_mira.mp3", - "bytes": 21359 + "file": "assets/soloman/ui/cutin.webp", + "bytes": 342288 }, { - "file": "assets/mira/manifest.js", - "bytes": 11852 + "file": "assets/soloman/ui/fx-bigcar.webp", + "bytes": 52920 }, { - "file": "assets/mira/run/sprite-sheet-alpha.webp", - "bytes": 2237726 + "file": "assets/soloman/ui/fx-burst.webp", + "bytes": 145262 }, { - "file": "assets/mira/ui/cutin.webp", - "bytes": 209146 + "file": "assets/soloman/ui/fx-car.webp", + "bytes": 39348 }, { - "file": "assets/mira/ui/fx-burst.webp", - "bytes": 17352 + "file": "assets/soloman/ui/fx-impact.webp", + "bytes": 18322 }, { - "file": "assets/mira/ui/fx-crash.webp", - "bytes": 13328 + "file": "assets/soloman/ui/fx-sarong.webp", + "bytes": 80564 }, { - "file": "assets/mira/ui/fx-rocket.webp", - "bytes": 6158 + "file": "assets/soloman/ui/fx-sarongstorm.webp", + "bytes": 99630 }, { - "file": "assets/mira/ui/fx-star.webp", - "bytes": 6094 + "file": "assets/soloman/ui/icon-basic.webp", + "bytes": 32998 }, { - "file": "assets/mira/ui/icon-basic.webp", - "bytes": 17856 + "file": "assets/soloman/ui/icon-mode-skill1.webp", + "bytes": 36614 }, { - "file": "assets/mira/ui/icon-skill1.webp", - "bytes": 15306 + "file": "assets/soloman/ui/icon-mode-skill2.webp", + "bytes": 38390 }, { - "file": "assets/mira/ui/icon-skill2.webp", - "bytes": 25404 + "file": "assets/soloman/ui/icon-mode-ultimate.webp", + "bytes": 38516 }, { - "file": "assets/mira/ui/icon-ultimate.webp", - "bytes": 25152 + "file": "assets/soloman/ui/icon-skill1.webp", + "bytes": 37222 }, { - "file": "assets/mira/ui/portrait.webp", - "bytes": 38620 + "file": "assets/soloman/ui/icon-skill2.webp", + "bytes": 32592 }, { - "file": "assets/naja/audio/naja-ultimate-soraya.mp3", - "bytes": 21359 + "file": "assets/soloman/ui/icon-ultimate.webp", + "bytes": 35204 }, { - "file": "assets/naja/audio/naja_wins.mp3", - "bytes": 23031 + "file": "assets/soloman/ui/portrait.webp", + "bytes": 41504 }, { - "file": "assets/naja/audio/select_naja.mp3", - "bytes": 18852 + "file": "assets/sonofsolo/manifest.js", + "bytes": 13987 }, { - "file": "assets/naja/manifest.js", - "bytes": 11430 + "file": "assets/sonofsolo/run/sprite-sheet-alpha.webp", + "bytes": 794606 }, { - "file": "assets/naja/run/sprite-sheet-alpha.webp", - "bytes": 1621460 + "file": "assets/sonofsolo/ui/cutin-mode.webp", + "bytes": 391760 }, { - "file": "assets/naja/ui/cutin.webp", - "bytes": 304792 + "file": "assets/sonofsolo/ui/cutin.webp", + "bytes": 372392 }, { - "file": "assets/naja/ui/fx-cyclone.webp", - "bytes": 14950 + "file": "assets/sonofsolo/ui/fx-acidspray.webp", + "bytes": 68430 }, { - "file": "assets/naja/ui/fx-ripple.webp", - "bytes": 8958 + "file": "assets/sonofsolo/ui/fx-bigpuddle.webp", + "bytes": 34698 }, { - "file": "assets/naja/ui/fx-sandwave.webp", - "bytes": 9302 + "file": "assets/sonofsolo/ui/fx-burst.webp", + "bytes": 130608 }, { - "file": "assets/naja/ui/fx-serpent.webp", - "bytes": 65082 + "file": "assets/sonofsolo/ui/fx-drop.webp", + "bytes": 29396 }, { - "file": "assets/naja/ui/icon-basic.webp", - "bytes": 27428 + "file": "assets/sonofsolo/ui/fx-flask.webp", + "bytes": 36436 }, { - "file": "assets/naja/ui/icon-skill1.webp", - "bytes": 24914 + "file": "assets/sonofsolo/ui/fx-impact.webp", + "bytes": 21714 }, { - "file": "assets/naja/ui/icon-skill2.webp", - "bytes": 28412 + "file": "assets/sonofsolo/ui/fx-puddle.webp", + "bytes": 25912 }, { - "file": "assets/naja/ui/icon-ultimate.webp", - "bytes": 29388 + "file": "assets/sonofsolo/ui/fx-soundwave.webp", + "bytes": 70540 }, { - "file": "assets/naja/ui/portrait.webp", - "bytes": 38558 + "file": "assets/sonofsolo/ui/icon-basic.webp", + "bytes": 32010 }, { - "file": "assets/nib/audio/nib-ultimate.mp3", - "bytes": 20523 + "file": "assets/sonofsolo/ui/icon-mode-skill1.webp", + "bytes": 38246 }, { - "file": "assets/nib/audio/nib_wins.mp3", - "bytes": 23031 + "file": "assets/sonofsolo/ui/icon-mode-skill2.webp", + "bytes": 36994 }, { - "file": "assets/nib/audio/select_nib.mp3", - "bytes": 15090 + "file": "assets/sonofsolo/ui/icon-mode-ultimate.webp", + "bytes": 37964 }, { - "file": "assets/nib/manifest.js", - "bytes": 11785 + "file": "assets/sonofsolo/ui/icon-skill1.webp", + "bytes": 32678 }, { - "file": "assets/nib/run/sprite-sheet-alpha.webp", - "bytes": 1145842 + "file": "assets/sonofsolo/ui/icon-skill2.webp", + "bytes": 28192 }, { - "file": "assets/nib/ui/cutin.webp", - "bytes": 185052 + "file": "assets/sonofsolo/ui/icon-ultimate.webp", + "bytes": 36286 }, { - "file": "assets/nib/ui/fx-letter.webp", - "bytes": 4924 - }, - { - "file": "assets/nib/ui/fx-plane.webp", - "bytes": 4572 - }, - { - "file": "assets/nib/ui/fx-slip.webp", - "bytes": 22866 - }, - { - "file": "assets/nib/ui/fx-stamp.webp", - "bytes": 19112 - }, - { - "file": "assets/nib/ui/icon-basic.webp", - "bytes": 22936 - }, - { - "file": "assets/nib/ui/icon-skill1.webp", - "bytes": 12434 - }, - { - "file": "assets/nib/ui/icon-skill2.webp", - "bytes": 19034 - }, - { - "file": "assets/nib/ui/icon-ultimate.webp", - "bytes": 18786 - }, - { - "file": "assets/nib/ui/portrait.webp", - "bytes": 28462 - }, - { - "file": "assets/rhea/audio/rhea-ultimate.mp3", - "bytes": 21359 - }, - { - "file": "assets/rhea/audio/rhea_wins.mp3", - "bytes": 21359 - }, - { - "file": "assets/rhea/audio/select_rhea.mp3", - "bytes": 16344 - }, - { - "file": "assets/rhea/manifest.js", - "bytes": 11682 - }, - { - "file": "assets/rhea/run/sprite-sheet-alpha.webp", - "bytes": 1274018 - }, - { - "file": "assets/rhea/ui/cutin.webp", - "bytes": 209154 - }, - { - "file": "assets/rhea/ui/fx-burst.webp", - "bytes": 19276 - }, - { - "file": "assets/rhea/ui/fx-drift.webp", - "bytes": 9482 - }, - { - "file": "assets/rhea/ui/fx-planet.webp", - "bytes": 17248 - }, - { - "file": "assets/rhea/ui/fx-well.webp", - "bytes": 21730 - }, - { - "file": "assets/rhea/ui/icon-basic.webp", - "bytes": 17416 - }, - { - "file": "assets/rhea/ui/icon-skill1.webp", - "bytes": 12188 - }, - { - "file": "assets/rhea/ui/icon-skill2.webp", - "bytes": 24152 - }, - { - "file": "assets/rhea/ui/icon-ultimate.webp", - "bytes": 26232 - }, - { - "file": "assets/rhea/ui/portrait.webp", - "bytes": 38584 - }, - { - "file": "assets/showcase/edda/portrait.webp", - "bytes": 34176 - }, - { - "file": "assets/showcase/haldor/portrait.webp", - "bytes": 46308 - }, - { - "file": "assets/showcase/isolde/portrait.webp", - "bytes": 41656 - }, - { - "file": "assets/showcase/naja/portrait.webp", - "bytes": 38558 - }, - { - "file": "assets/showcase/nib/portrait.webp", - "bytes": 28462 - }, - { - "file": "assets/showcase/rhea/portrait.webp", - "bytes": 38584 - }, - { - "file": "assets/showcase/showcase.js", - "bytes": 150 - }, - { - "file": "assets/showcase/solan/portrait.webp", - "bytes": 42714 - }, - { - "file": "assets/showcase/zanni/portrait.webp", - "bytes": 33856 - }, - { - "file": "assets/solan/audio/select_solan.mp3", - "bytes": 15090 - }, - { - "file": "assets/solan/audio/solan-ultimate.mp3", - "bytes": 21359 - }, - { - "file": "assets/solan/audio/solan_wins-raw.mp3", - "bytes": 26793 - }, - { - "file": "assets/solan/audio/solan_wins.mp3", - "bytes": 22612 - }, - { - "file": "assets/solan/manifest.js", - "bytes": 11759 - }, - { - "file": "assets/solan/run/sprite-sheet-alpha.webp", - "bytes": 1812930 - }, - { - "file": "assets/solan/ui/cutin.webp", - "bytes": 221154 - }, - { - "file": "assets/solan/ui/fx-crescent.webp", - "bytes": 10074 - }, - { - "file": "assets/solan/ui/fx-impact.webp", - "bytes": 12828 - }, - { - "file": "assets/solan/ui/fx-roar.webp", - "bytes": 16002 - }, - { - "file": "assets/solan/ui/fx-sunburst.webp", - "bytes": 17286 - }, - { - "file": "assets/solan/ui/icon-basic.webp", - "bytes": 21426 - }, - { - "file": "assets/solan/ui/icon-skill1.webp", - "bytes": 16616 - }, - { - "file": "assets/solan/ui/icon-skill2.webp", - "bytes": 24528 - }, - { - "file": "assets/solan/ui/icon-ultimate.webp", - "bytes": 26478 - }, - { - "file": "assets/solan/ui/portrait.webp", - "bytes": 42714 + "file": "assets/sonofsolo/ui/portrait.webp", + "bytes": 42766 }, { "file": "assets/stage-config.js", - "bytes": 330 + "bytes": 329 }, { "file": "assets/stage.webp", @@ -1008,7 +1480,11 @@ }, { "file": "assets/ui/drone-config.js", - "bytes": 196 + "bytes": 195 + }, + { + "file": "assets/ui/drone.png", + "bytes": 18724 }, { "file": "assets/ui/dummy-avatar.webp", @@ -1037,78 +1513,6 @@ { "file": "assets/ui/ultimate.webp", "bytes": 7504 - }, - { - "file": "assets/zanni/audio/select_zanni.mp3", - "bytes": 18852 - }, - { - "file": "assets/zanni/audio/zanni-ultimate.mp3", - "bytes": 17598 - }, - { - "file": "assets/zanni/audio/zanni_wins-raw.mp3", - "bytes": 34316 - }, - { - "file": "assets/zanni/audio/zanni_wins.mp3", - "bytes": 24284 - }, - { - "file": "assets/zanni/manifest.js", - "bytes": 11595 - }, - { - "file": "assets/zanni/run/sprite-sheet-alpha.webp", - "bytes": 1555686 - }, - { - "file": "assets/zanni/ui/cutin.webp", - "bytes": 206256 - }, - { - "file": "assets/zanni/ui/fx-bigring.webp", - "bytes": 24056 - }, - { - "file": "assets/zanni/ui/fx-confetti.webp", - "bytes": 16344 - }, - { - "file": "assets/zanni/ui/fx-ring.webp", - "bytes": 14902 - }, - { - "file": "assets/zanni/ui/fx-snatch.webp", - "bytes": 19366 - }, - { - "file": "assets/zanni/ui/icon-basic.webp", - "bytes": 25846 - }, - { - "file": "assets/zanni/ui/icon-skill1.webp", - "bytes": 17230 - }, - { - "file": "assets/zanni/ui/icon-skill2.webp", - "bytes": 19002 - }, - { - "file": "assets/zanni/ui/icon-ultimate.webp", - "bytes": 28306 - }, - { - "file": "assets/zanni/ui/portrait.webp", - "bytes": 33856 - }, - { - "file": "precache.js", - "bytes": 15499 - }, - { - "file": "sw.js", - "bytes": 1358 } ] } diff --git a/haldor.js b/haldor.js deleted file mode 100644 index ce06566..0000000 --- a/haldor.js +++ /dev/null @@ -1,35 +0,0 @@ -/* Shared HALDOR moves (forge-master mecha, anvil hammer): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, quakeDamage:16, basicRefund:.05 }; - const names = ['FORGE CHAIN','SLAG SHOT','STEAM RAM','FORGE QUAKE']; - // The heavy tank: the slowest chain in the roster, with the biggest knockback on every link. Reach follows the measured - // hammer head (131 px hook, 83 px uppercut, 85 px floor smash in emitters.json): short range, heavy hits. - const combo = [ - {damage:6,knockback:95,reach:112,duration:.42,hitAt:.5}, - {damage:8,knockback:125,reach:90,duration:.48,hitAt:.5}, - {damage:12,knockback:235,reach:95,duration:.62,hitAt:.58} - ]; - // Slag Shot: a molten slag ball lobbed in an arc that lands where the rival stood at the throw (180-560 px), - // hitting on contact in flight or with a small splash where it lands. Stepping away after the throw dodges it. - const slag = { flight:.9, rise:520, minRange:180, maxRange:560, splash:72 }; - // Forge Quake: three hammer slams; each sends a molten shockwave along the floor both ways from the crater. - // One 16-damage hit per wave (48). Slams are 0.38 s apart, inside the 0.42 s hurt stun, so a standing rival takes all - // three. One jump (0.57 s airtime) clears two waves; jump + double jump clears all three. - const quake = { cutinDuration:.78, slams:[.8,1.18,1.56], speed:760, duration:2.2 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.56,knockback:150,projectile:true,lob:true,speed:(slag.minRange+slag.maxRange)/2/slag.flight,hitAt:.55}; - // Steam Ram: a piston-boosted shoulder charge; the biggest knockback in his kit. - if(name==='skill2')return {name,type:name,damage:24,duration:.7,knockback:320,reach:118,dash:340,hitAt:.6}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Haldor={balance,names,combo,slag,quake,move,start,refund}; -})(); diff --git a/index.html b/index.html index 989b665..b7bd18b 100644 --- a/index.html +++ b/index.html @@ -21,8 +21,8 @@
BELLORACOURTYARD
TOTAL DAMAGE0 DMG
BEST CHAIN0 HITS
R · RESETESC · PAUSE
✦AETHER CLASHMenyiapkan arena…
-
AETHER CLASH / SETTINGS

Pengaturan arena

Atur audio, tampilan, dan kontrol permainan.

Kontrol keyboard

A / D · Gerak   2× A / D · Lari
W · Lompat   S · Menunduk / turun cepat
2× S · Salto   SPACE · Kombo 3 pukulan
I / O · Skill   P · Ultimate

+
AETHER CLASH / SETTINGS

Pengaturan arena

Atur audio, tampilan, dan kontrol permainan.

Kontrol keyboard

A / D · Gerak   2× A / D · Lari
W · Lompat   S · Menunduk / turun cepat
2× S · Salto   SPACE · Kombo 3 pukulan
I / O · Skill   P · Ultimate

AETHER CLASH / PAUSE

PAUSED

Pertarungan dijeda. Siap melanjutkan?

-
+
diff --git a/isolde.js b/isolde.js deleted file mode 100644 index 1989aa6..0000000 --- a/isolde.js +++ /dev/null @@ -1,35 +0,0 @@ -/* Shared ISOLDE moves (heron-leg lancer knight mecha, aether lance): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, lanceDamage:16, basicRefund:.05 }; - const names = ['LANCE LINE','SKY PIERCER','STILT CHARGE','SKYFALL LANCES']; - // The lance gives a long, straight chain; reach sits inside the measured lance point (157/131/184 px in emitters.json). - const combo = [ - {damage:6,knockback:80,reach:140,duration:.38,hitAt:.5}, - {damage:8,knockback:105,reach:115,duration:.44,hitAt:.5}, - {damage:12,knockback:210,reach:165,duration:.56,hitAt:.55} - ]; - // Sky Piercer: an ice bolt fired from the raised lance on a rising line (`rise` = vertical/horizontal speed ratio), - // leaving at chest height (`y` px above the feet). It still catches a grounded rival within about 240 px and a - // jumping rival much farther away: an anti-air poke. - const piercer = { speed:900, rise:.25, y:105 }; - // Skyfall Lances: three giant ice lances dive from the sky 0.38 s apart (inside the 0.42 s hurt stun). Each one is - // aimed at the rival's feet when it is called and takes `flight` s to land, with a small shatter where it lands. - // A standing rival takes all three (48); keep moving to make them land behind you. - const skyfall = { cutinDuration:.78, calls:[.8,1.18,1.56], flight:.55, height:520, back:260, shatter:70, size:170, duration:2.4 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.5,knockback:130,projectile:true,speed:piercer.speed,range:240,hitAt:.55}; - // Stilt Charge: a long, fast lance-first charge on the springy heron legs. - if(name==='skill2')return {name,type:name,damage:24,duration:.72,knockback:300,reach:150,dash:560,hitAt:.58}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Isolde={balance,names,combo,piercer,skyfall,move,start,refund}; -})(); diff --git a/menu.js b/menu.js index 5b48abf..c556f38 100644 --- a/menu.js +++ b/menu.js @@ -3,19 +3,7 @@ 'use strict'; const root=document.querySelector('#front-menu'),game=window.__game; const fighters={ - arco:{name:'ARCO',tag:'THE AETHER ARM',race:'MECHA',portrait:'assets/ui/arco-avatar.webp',art:'assets/menu/arco-select.webp',detail:'Steel resolve. Unbreakable spirit.',basic:'IRON CHAIN',ultimate:'HELIOS SQUADRON',style:'Brawler / drone summon',color:'#8ae3d3'}, - fenr:{name:'FENR',tag:'THE WOLF RANGER',race:'DEMI-HUMAN',portrait:'assets/fenr/ui/portrait-human.webp',art:'assets/menu/fenr-select.webp',detail:'The wild never bows.',basic:'RANGER CHAIN',ultimate:'FERAL AWAKENING',style:'Agile / werewolf transformation',color:'#eab27a'}, - ...(window.Mira&&window.MIRA_MANIFEST?{mira:{name:'MIRA',tag:'THE CANDY PILOT',race:'MECHA',portrait:'assets/mira/ui/portrait.webp',art:'assets/menu/mira-select.webp',detail:'Small pilot. Big robot. Bigger fireworks.',basic:'MITTEN CHAIN',ultimate:'ROCKET PARADE',style:'Heavy mech / rocket barrage',color:'#d9b4ff'}}:{}), - ...(window.Cora&&window.CORA_MANIFEST?{cora:{name:'CORA',tag:'THE RAVEN DANCER',race:'DEMI-HUMAN',portrait:'assets/cora/ui/portrait.webp',art:'assets/menu/cora-select.webp',detail:'Every feather is a blade.',basic:'FEATHER WALTZ',ultimate:'NIGHT MURMURATION',style:'Agile / raven swarm',color:'#c4a6ff'}}:{}), - ...(window.Naja&&window.NAJA_MANIFEST?{naja:{name:'NAJA',tag:'THE DUNE COBRA',race:'DEMI-HUMAN',portrait:'assets/naja/ui/portrait.webp',art:'assets/menu/naja-select.webp',detail:'Sways like sand. Strikes like venom.',basic:'VIPER LASH',ultimate:'DUNE SERPENT',style:'Mid-range / urumi whip & sand serpent',color:'#d9b77a'}}:{}), - ...(window.Haldor&&window.HALDOR_MANIFEST?{haldor:{name:'HALDOR',tag:'THE WALKING FORGE',race:'MECHA',portrait:'assets/haldor/ui/portrait.webp',art:'assets/menu/haldor-select.webp',detail:'Old forge master. Walking furnace. Heavy hammer.',basic:'FORGE CHAIN',ultimate:'FORGE QUAKE',style:'Heavy tank / steam forge hammer',color:'#d9803f'}}:{}), - ...(window.Zanni&&window.ZANNI_MANIFEST?{zanni:{name:'ZANNI',tag:'THE CLOCKWORK JESTER',race:'MECHA',portrait:'assets/zanni/ui/portrait.webp',art:'assets/menu/zanni-select.webp',detail:'Arms that stretch. Jokes that sting.',basic:'SCISSOR JAB',ultimate:'GRAND FINALE',style:'Trickster / extending scissor-arm strikes and bladed rings',color:'#c9d64a'}}:{}), - ...(window.Isolde&&window.ISOLDE_MANIFEST?{isolde:{name:'ISOLDE',tag:'THE WHITE STRIDER',race:'MECHA',portrait:'assets/isolde/ui/portrait.webp',art:'assets/menu/isolde-select.webp',detail:'Long legs, longer lance, zero mercy.',basic:'LANCE LINE',ultimate:'SKYFALL LANCES',style:'Long-range lancer / stilt-leg charges',color:'#9fd4ff'}}:{}), - ...(window.Rhea&&window.RHEA_MANIFEST?{rhea:{name:'RHEA',tag:'THE LITTLE ORRERY',race:'MECHA',portrait:'assets/rhea/ui/portrait.webp',art:'assets/menu/rhea-select.webp',detail:'Homework done. Planets armed. Class dismissed.',basic:'ORBIT STRIKE',ultimate:'GRAND ORRERY',style:'Zoner / orbiting orrery spheres',color:'#c7485e'}}:{}), ...(window.Browo&&window.BROWO_MANIFEST?{browo:{name:'BRO WO',tag:'THE PALM RANGER',race:'HUMAN',portrait:'assets/browo/ui/portrait.webp',art:'assets/menu/browo-select.webp',detail:'Steady boots. Wide hat. Whole forests, then a rampage.',basic:'TINJU SAFARI',ultimate:'HUTAN SAWIT',style:'Bruiser / palm trees and area slam',color:'#c9b87a'}}:{}), - ...(window.Solan&&window.SOLAN_MANIFEST?{solan:{name:'SOLAN',tag:'THE SUNMANE',race:'DEMI-HUMAN',portrait:'assets/solan/ui/portrait.webp',art:'assets/menu/solan-select.webp',detail:'Golden mane, heavy blade, louder roar.',basic:'SUNBLADE',ultimate:'SUNMANE ROAR',style:'Powerhouse / greatsword and roar',color:'#f2b632'}}:{}), - ...(window.Nib&&window.NIB_MANIFEST?{nib:{name:'NIB',tag:'THE ROOFTOP POST',race:'DEMI-HUMAN',portrait:'assets/nib/ui/portrait.webp',art:'assets/menu/nib-select.webp',detail:'Every letter delivered. Every punch, too.',basic:'BATON FLURRY',ultimate:'SPECIAL DELIVERY',style:'Rushdown / twin courier batons',color:'#8fd4ff'}}:{}), - ...(window.Edda&&window.EDDA_MANIFEST?{edda:{name:'EDDA',tag:'THE SHELL SAGE',race:'DEMI-HUMAN',portrait:'assets/edda/ui/portrait.webp',art:'assets/menu/edda-select.webp',detail:'Slow to anger, impossible to knock down.',basic:'STAFF FORMS',ultimate:'ELDER TORTOISE',style:'Counter defender / staff and shell guard',color:'#8fe3b4'}}:{}) }; // Data-driven fighters (window.FIGHTERS, one entry per assets//manifest.js) join the roster automatically. for(const [id,f] of Object.entries(window.FIGHTERS||{}))fighters[id]={name:f.name,tag:f.tag,race:f.race,portrait:'assets/'+id+'/ui/portrait.webp',art:f.select,detail:f.detail,basic:f.names[0],ultimate:f.names[3],style:f.style,color:f.color}; @@ -39,7 +27,8 @@ const roster=[...opened,...Array.from({length:Math.max(0,12-opened.length)},(_,i)=>'locked-'+i)]; // lockIn: the pending step change while a confirmed fighter flashes 3 times (PICK_FLASH s each); input waits for it. const PICK_FLASH=.3;let lockIn=null,lockTicks=[]; - let screen='home',step=0,mode='versus',player='arco',enemy='fenr',hover='arco',stage='bellora',level='medium',result=null,interacted=false,lastSound=0; + const ids=Object.keys(fighters); + let screen='home',step=0,mode='versus',player=ids[0],enemy=ids[1]||ids[0],hover=ids[0],stage='bellora',level='medium',result=null,interacted=false,lastSound=0; const reducedMotion=window.matchMedia?.('(prefers-reduced-motion: reduce)'); let backgroundEnabled=!reducedMotion?.matches,backgroundVideo=null,videoPlayToken=0; const backgroundToggle=document.querySelector('#menu-video-toggle'); @@ -101,7 +90,7 @@ sfx('pick',true);game.announceSelection(hover);root.dataset.picking='true'; root.querySelector(`[data-fighter="${hover}"]`)?.classList.add('picked');root.querySelector(step===0?'#player-preview':'#enemy-preview')?.classList.add('picked'); lockTicks=[1,2].map(i=>setTimeout(()=>sfx('blink',true),i*PICK_FLASH*1000)); - lockIn=setTimeout(()=>{lockIn=null;delete root.dataset.picking;if(step===0){player=hover;step=1;hover=player==='arco'?'fenr':'arco';}else{enemy=hover;screen='arena';step=2;}render();},3*PICK_FLASH*1000); + lockIn=setTimeout(()=>{lockIn=null;delete root.dataset.picking;if(step===0){player=hover;step=1;hover=ids.find(x=>x!==player)||player;}else{enemy=hover;screen='arena';step=2;}render();},3*PICK_FLASH*1000); } function back(){if(lockIn)return;game.stopAnnouncer();sfx('back',true);if(screen==='arena'){screen='select';step=1;hover=enemy;}else if(screen==='select'&&step===1){step=0;hover=player;}else screen='home';render();} function start(){if(game.startMatch({player,enemy,stage,level,mode})){document.querySelector('#arena').focus();}else {const error=root.querySelector('#setup-error');if(error)error.textContent='Aset belum siap. Tunggu sebentar lalu coba lagi.';sfx('locked',true);}} diff --git a/mira.js b/mira.js deleted file mode 100644 index 885e6ef..0000000 --- a/mira.js +++ /dev/null @@ -1,29 +0,0 @@ -/* Shared MIRA moves (pilot girl + lilac robot): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, rockets:12, rocketDamage:4, basicRefund:.05 }; - const names = ['MITTEN CHAIN','STAR POPPER','CANDY CRASH','ROCKET PARADE']; - // Reach follows the measured fist emitters of the 182 px atlas (assets/mira/emitters.json): jab 98, hook 80, hammer 56 px. - const combo = [ - {damage:6,knockback:75,reach:100,duration:.36,hitAt:.5}, - {damage:8,knockback:100,reach:85,duration:.42,hitAt:.5}, - {damage:12,knockback:180,reach:82,duration:.52,hitAt:.55} - ]; - // Rocket Parade timeline (seconds from cast). Launches stream from alternating pods; impacts ripple 0.032 s - // apart so all 12 land inside one hurt window (player invulnerability only starts after hurt ends). - const parade = { cutinDuration:.78, launchStart:.40, launchGap:.05, impactStart:1.40, impactGap:.032, duration:2.3 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.48,knockback:140,projectile:true,speed:760,hitAt:.5}; - if(name==='skill2')return {name,type:name,damage:24,duration:.68,knockback:220,reach:128,dash:240,hitAt:.56}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Mira={balance,names,combo,parade,move,start,refund}; -})(); diff --git a/naja.js b/naja.js deleted file mode 100644 index 45fdf50..0000000 --- a/naja.js +++ /dev/null @@ -1,33 +0,0 @@ -/* Shared NAJA moves (cobra demi-human, urumi whip-sword): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, biteDamage:16, basicRefund:.05 }; - const names = ['VIPER LASH','SAND FANG','URUMI CYCLONE','DUNE SERPENT']; - // The urumi gives NAJA the longest basic reach in the roster (tips measured at 161/161/196 px; the hit reach sits - // inside the tip); the chain is a touch slower to compensate. - const combo = [ - {damage:6,knockback:75,reach:135,duration:.38,hitAt:.5}, - {damage:8,knockback:100,reach:130,duration:.44,hitAt:.5}, - {damage:12,knockback:180,reach:160,duration:.56,hitAt:.55} - ]; - // Dune Serpent: a sand ripple leaves her palm at `follow` s, chases the rival at `speed` px/s (faster than a run) and - // locks `telegraph` s before each strike, then a giant sand cobra erupts there. Three strikes x 16 (48). The column - // is too tall to jump; stepping out of the locked ripple dodges it. A rival more than ~800 px away escapes the first bite. - const serpent = { cutinDuration:.78, strikes:[1.25,1.65,2.05], follow:.1, speed:900, telegraph:.42, radius:70, height:240, rise:.45, duration:2.7 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - // Sand Fang: a low sand wave along the floor, 16 like other I skills. Any small jump clears it. - if(name==='skill1')return {name,type:name,damage:16,duration:.5,knockback:120,projectile:true,ground:true,speed:620,hitAt:.55}; - // Urumi Cyclone: the blade spins all the way around her and hits in front and behind. - if(name==='skill2')return {name,type:name,damage:24,duration:.66,knockback:260,reach:150,area:true,around:true,hitAt:.55}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Naja={balance,names,combo,serpent,move,start,refund}; -})(); diff --git a/nib.js b/nib.js deleted file mode 100644 index 569b31a..0000000 --- a/nib.js +++ /dev/null @@ -1,35 +0,0 @@ -/* Shared NIB moves (mouse demi-human courier, twin batons): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, planeDamage:16, basicRefund:.05 }; - const names = ['BATON FLURRY','EXPRESS LETTER','ROOFTOP SLIP','SPECIAL DELIVERY']; - // The fastest chain in the roster with the shortest reach (baton tips measured at 107/80/101 px in emitters.json); - // small knockback keeps him close. - const combo = [ - {damage:6,knockback:55,reach:95,duration:.3,hitAt:.5}, - {damage:8,knockback:75,reach:75,duration:.34,hitAt:.5}, - {damage:12,knockback:170,reach:95,duration:.46,hitAt:.55} - ]; - // Express Letter: the fastest projectile in the roster, but it only flies `range` px. - const letter = { speed:1100, range:400 }; - // Rooftop Slip: a very fast low dash strike; when it connects NIB slips past the rival and turns to face them. - const slip = { dash:650, behind:70 }; - // Special Delivery: three paper-plane parcels leave the satchel 0.38 s apart (inside the 0.42 s hurt stun) and home - // in on the rival at `speed` px/s, turning at most `turn` rad/s. Each hits once for 16 (48). A late sidestep or jump - // makes a plane overshoot, and it gives up after `life` s. - const delivery = { cutinDuration:.78, releases:[.8,1.18,1.56], speed:620, turn:3.2, life:2.2, size:96, duration:2.6 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.45,knockback:110,projectile:true,speed:letter.speed,range:letter.range,hitAt:.55}; - if(name==='skill2')return {name,type:name,damage:24,duration:.6,knockback:160,reach:100,dash:slip.dash,slip:true,hitAt:.45}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Nib={balance,names,combo,letter,slip,delivery,move,start,refund}; -})(); diff --git a/precache.js b/precache.js index cc19ccf..5b1aa7e 100644 --- a/precache.js +++ b/precache.js @@ -1,2 +1,2 @@ -/* Generated by tools/build_dist.mjs: runtime files [path, bytes, sha1] for preload.js and sw.js. Do not edit. */ -self.AETHER_PRECACHE = {"version":"7cd7de58ae91","total":33861851,"files":[["index.html",12682,"d65f84207532"],["mobile.html",3704,"225e36d7d946"],["style.css",25732,"f7b4911d63c1"],["menu.css",28728,"45a1fea806f6"],["preload.js",4166,"a69988b1fe61"],["game.js",170044,"641abb004541"],["menu.js",24312,"a1326a3f5c1c"],["match.js",4262,"4968339c22d4"],["announcer.js",3135,"12d9e83e83d1"],["touch.js",4896,"843a3f092171"],["fenr.js",2941,"6dd8746d0c8f"],["mira.js",2052,"6f4414b0fd75"],["cora.js",2302,"74444cce4384"],["naja.js",2509,"2b8de54cfe73"],["haldor.js",2677,"720ee4de987e"],["zanni.js",2799,"06141ea78ce2"],["isolde.js",2635,"acfbce8a5f82"],["rhea.js",2656,"c792766df1cd"],["solan.js",2701,"65c9c0b3be4b"],["nib.js",2524,"97eb63f05fcf"],["edda.js",2832,"4feab9b48cda"],["assets/ui/drone.png",18724,"474894562b64"],["assets/menu/locked.svg",697,"acb96b08bdc2"],["assets/audio/announcer/arco_wins.mp3",23031,"4e3734fb863a"],["assets/audio/announcer/cora_wins.mp3",21359,"ed104161e99f"],["assets/audio/announcer/double_ko.mp3",24285,"5b0ba10cfa89"],["assets/audio/announcer/draw.mp3",17598,"eb92b764316c"],["assets/audio/announcer/edda_wins.mp3",17598,"325542899ab8"],["assets/audio/announcer/fenr_wins.mp3",24285,"9fe9cb3a833b"],["assets/audio/announcer/fight.mp3",17598,"8a64a7e3d192"],["assets/audio/announcer/haldor_wins.mp3",21359,"797be497cccb"],["assets/audio/announcer/isolde_wins.mp3",24285,"d50703c1287a"],["assets/audio/announcer/ko.mp3",11328,"f3106c569e34"],["assets/audio/announcer/manifest.js",3383,"b7101298c2b0"],["assets/audio/announcer/mira_wins.mp3",26793,"33d1e0f8ded3"],["assets/audio/announcer/naja_wins.mp3",23031,"fda44264a05b"],["assets/audio/announcer/nib_wins.mp3",23031,"0790031653fd"],["assets/audio/announcer/rhea_wins.mp3",21359,"c62a5d27ce5b"],["assets/audio/announcer/round_1.mp3",17598,"fdcce639d88d"],["assets/audio/announcer/round_2.mp3",35570,"2598ef54b8c4"],["assets/audio/announcer/round_3.mp3",21359,"83ec7e4ec306"],["assets/audio/announcer/select_arco.mp3",15090,"b0856ea865dc"],["assets/audio/announcer/select_cora.mp3",15090,"3669ff4be89c"],["assets/audio/announcer/select_edda.mp3",16344,"c7b6a9a9175f"],["assets/audio/announcer/select_fenr.mp3",17598,"a7770529a39c"],["assets/audio/announcer/select_haldor.mp3",18852,"ae21c9d5c3d0"],["assets/audio/announcer/select_isolde.mp3",11328,"2baee6922fc2"],["assets/audio/announcer/select_mira.mp3",21359,"21bb3ca4e22f"],["assets/audio/announcer/select_naja.mp3",18852,"1bd57158cba1"],["assets/audio/announcer/select_nib.mp3",15090,"5a8ff37811c4"],["assets/audio/announcer/select_rhea.mp3",16344,"1a098bdd4489"],["assets/audio/announcer/select_solan.mp3",15090,"00cd3d422862"],["assets/audio/announcer/select_zanni.mp3",18852,"af46d57d9cb8"],["assets/audio/announcer/solan_wins.mp3",22612,"9b605ba42f1d"],["assets/audio/announcer/time_up.mp3",20106,"e59e9a60345e"],["assets/audio/announcer/zanni_wins.mp3",24284,"438a81d03242"],["assets/audio/arco-ultimate-dylan.mp3",36824,"0d6136cbf82a"],["assets/audio/music/midday-showdown.mp3",1571832,"65d22abb18d9"],["assets/cora/audio/cora-ultimate-anika.mp3",28882,"497a73251c21"],["assets/cora/audio/cora_wins.mp3",21359,"ed104161e99f"],["assets/cora/audio/select_cora.mp3",15090,"3669ff4be89c"],["assets/cora/manifest.js",11440,"8b4660138027"],["assets/cora/run/sprite-sheet-alpha.webp",1500730,"f3a41842ac41"],["assets/cora/ui/cutin.webp",189114,"7e272f03bad6"],["assets/cora/ui/fx-feather.webp",5044,"e7eb665a13f2"],["assets/cora/ui/fx-gust.webp",14152,"c28b6d68f27d"],["assets/cora/ui/fx-raven.webp",10750,"dd8dd61b3440"],["assets/cora/ui/icon-basic.webp",21044,"0e4033475768"],["assets/cora/ui/icon-skill1.webp",17310,"30c0d7b1ab06"],["assets/cora/ui/icon-skill2.webp",19240,"242a5f1b6f75"],["assets/cora/ui/icon-ultimate.webp",28518,"ad50e2965363"],["assets/cora/ui/portrait.webp",37954,"99888687708d"],["assets/edda/audio/edda-ultimate.mp3",23030,"fa1d125a2477"],["assets/edda/audio/edda_wins.mp3",17598,"325542899ab8"],["assets/edda/audio/select_edda.mp3",16344,"c7b6a9a9175f"],["assets/edda/manifest.js",12097,"09198409baae"],["assets/edda/run/sprite-sheet-alpha.webp",1595536,"65a5f15d5b63"],["assets/edda/ui/cutin.webp",264670,"b7ae1481b87e"],["assets/edda/ui/fx-ripple.webp",6940,"aec084176256"],["assets/edda/ui/fx-shell.webp",17640,"04805c01ce8b"],["assets/edda/ui/fx-stomp.webp",13468,"0e850f78f460"],["assets/edda/ui/fx-stone.webp",7698,"d7aef6ed78ec"],["assets/edda/ui/fx-tortoise.webp",60852,"38d379cc8edc"],["assets/edda/ui/icon-basic.webp",26148,"7b6c2d5812a4"],["assets/edda/ui/icon-skill1.webp",20836,"425f5004fc1b"],["assets/edda/ui/icon-skill2.webp",23314,"b4bcd5746cf2"],["assets/edda/ui/icon-ultimate.webp",31242,"29c09a7392b7"],["assets/edda/ui/portrait.webp",34176,"eef0b3e18d5b"],["assets/fenr/audio/fenr-ultimate-holden.mp3",23031,"4d15d464b495"],["assets/fenr/human/manifest.js",11411,"70446f69a35c"],["assets/fenr/human/run/sprite-sheet-alpha.webp",1486412,"0d6f47bb4cb5"],["assets/fenr/ui/cutin.webp",119558,"538658b309df"],["assets/fenr/ui/fx-bite.webp",8948,"b257d8dad484"],["assets/fenr/ui/fx-claw.webp",7178,"780d656a1837"],["assets/fenr/ui/fx-gale.webp",4970,"54bbac66f730"],["assets/fenr/ui/fx-howl.webp",10784,"3837b651a7a6"],["assets/fenr/ui/fx-rush.webp",10026,"ee5f015089dd"],["assets/fenr/ui/fx-transform.webp",15202,"aa9e6402f320"],["assets/fenr/ui/icon-human-basic.webp",11026,"a51720ccc2a1"],["assets/fenr/ui/icon-human-skill1.webp",6122,"028f0e547941"],["assets/fenr/ui/icon-human-skill2.webp",9938,"a04cc8d9767b"],["assets/fenr/ui/icon-ultimate.webp",14998,"bc755f2f7468"],["assets/fenr/ui/icon-wolf-basic.webp",15864,"54aeb1d66b05"],["assets/fenr/ui/icon-wolf-skill1.webp",10442,"0d5ada7ae5d2"],["assets/fenr/ui/icon-wolf-skill2.webp",8652,"a83241200084"],["assets/fenr/ui/portrait-human.webp",24324,"db4f7dbaea08"],["assets/fenr/ui/portrait-wolf.webp",27618,"3593d886c6e6"],["assets/fenr/wolf/manifest.js",11436,"1cebdd992920"],["assets/fenr/wolf/run/sprite-sheet-alpha.webp",2360632,"c884ad55b290"],["assets/fonts/Rajdhani-Bold.ttf",400680,"fb82c1992ff1"],["assets/fonts/Rajdhani-Medium.ttf",384348,"7837ff8a9aea"],["assets/haldor/audio/haldor-ultimate.mp3",20106,"3be059e79b78"],["assets/haldor/audio/haldor_wins.mp3",21359,"797be497cccb"],["assets/haldor/audio/select_haldor.mp3",18852,"ae21c9d5c3d0"],["assets/haldor/manifest.js",11455,"3f37b108ff62"],["assets/haldor/run/sprite-sheet-alpha.webp",1950620,"058f28bc666d"],["assets/haldor/ui/cutin.webp",226036,"63414893dd24"],["assets/haldor/ui/fx-quake.webp",12184,"c948acf2f3d3"],["assets/haldor/ui/fx-slag.webp",11300,"ead5ca7fc990"],["assets/haldor/ui/fx-splash.webp",9562,"657a5895d023"],["assets/haldor/ui/fx-steam.webp",6432,"3139a435db74"],["assets/haldor/ui/icon-basic.webp",28334,"582f2db1f96c"],["assets/haldor/ui/icon-skill1.webp",16502,"13259e085c92"],["assets/haldor/ui/icon-skill2.webp",23904,"a0e53a6758ce"],["assets/haldor/ui/icon-ultimate.webp",31006,"ae9317a6b879"],["assets/haldor/ui/portrait.webp",46308,"cbd54572adfa"],["assets/isolde/audio/isolde-ultimate.mp3",30972,"dbda1e78418a"],["assets/isolde/audio/isolde_wins.mp3",24285,"d50703c1287a"],["assets/isolde/audio/select_isolde.mp3",11328,"2baee6922fc2"],["assets/isolde/manifest.js",11797,"994e9e8cd364"],["assets/isolde/run/sprite-sheet-alpha.webp",1550448,"ca6ff6b4838a"],["assets/isolde/ui/cutin.webp",226498,"e9685c940967"],["assets/isolde/ui/fx-frost.webp",8318,"e07ad936ebcb"],["assets/isolde/ui/fx-piercer.webp",6690,"5a43bb26d4af"],["assets/isolde/ui/fx-shatter.webp",15232,"fe5605238ccc"],["assets/isolde/ui/fx-skyfall.webp",7412,"511cf5f5a9e7"],["assets/isolde/ui/icon-basic.webp",14166,"a2511738024f"],["assets/isolde/ui/icon-skill1.webp",20634,"c2045c76e0fc"],["assets/isolde/ui/icon-skill2.webp",23448,"f2b7d4ddbb03"],["assets/isolde/ui/icon-ultimate.webp",26876,"2febf3ff9891"],["assets/isolde/ui/portrait.webp",41656,"1eb9e10cc34c"],["assets/mecha/manifest.js",13266,"b0a07e14b7de"],["assets/mecha/run/sprite-sheet-alpha.webp",1140340,"02dfd7fc3f38"],["assets/menu/arco-select.webp",83804,"e70d678cc558"],["assets/menu/azure-harbor.webp",116560,"e9b00d01e676"],["assets/menu/cora-select.webp",85066,"8f496a9ae04f"],["assets/menu/edda-select.webp",98000,"f39253607637"],["assets/menu/elderwood.webp",130386,"ec28da7499fb"],["assets/menu/fenr-select.webp",84330,"df00d7b0f6d8"],["assets/menu/haldor-select.webp",110328,"4d4fada3a51d"],["assets/menu/home-art.webp",188424,"3cccd1c9793b"],["assets/menu/home-factions-loop.mp4",1417101,"d48036ae3888"],["assets/menu/home-factions.webp",148524,"2068721bc197"],["assets/menu/isolde-select.webp",119740,"832756d46ab1"],["assets/menu/mira-select.webp",89058,"02d78848bbc2"],["assets/menu/moonrise.webp",68134,"750461b81b3b"],["assets/menu/naja-select.webp",130418,"2644be3a0d1a"],["assets/menu/nib-select.webp",77832,"4a7fa17c0260"],["assets/menu/rhea-select.webp",107980,"e32b08a6c5ef"],["assets/menu/solan-select.webp",112452,"07dbf6341e75"],["assets/menu/sunspire.webp",49268,"54b11853a23a"],["assets/menu/zanni-select.webp",117976,"cf94f9dfdf69"],["assets/mira/audio/mira-ultimate-luna.mp3",23448,"a3b8a3c98a55"],["assets/mira/audio/mira_wins.mp3",26793,"33d1e0f8ded3"],["assets/mira/audio/select_mira.mp3",21359,"21bb3ca4e22f"],["assets/mira/manifest.js",11852,"949fbc2bd69b"],["assets/mira/run/sprite-sheet-alpha.webp",2237726,"5b0fc6c20310"],["assets/mira/ui/cutin.webp",209146,"dc5267bcdaa2"],["assets/mira/ui/fx-burst.webp",17352,"c037a0dd7366"],["assets/mira/ui/fx-crash.webp",13328,"2dea28410a25"],["assets/mira/ui/fx-rocket.webp",6158,"16d752cb026a"],["assets/mira/ui/fx-star.webp",6094,"33cba4f3ff5d"],["assets/mira/ui/icon-basic.webp",17856,"7dde5f96605a"],["assets/mira/ui/icon-skill1.webp",15306,"56f108fe44e1"],["assets/mira/ui/icon-skill2.webp",25404,"8aee74746fca"],["assets/mira/ui/icon-ultimate.webp",25152,"0ce76bda51e8"],["assets/mira/ui/portrait.webp",38620,"47f194e28e65"],["assets/naja/audio/naja-ultimate-soraya.mp3",21359,"17e4fa97f21f"],["assets/naja/audio/naja_wins.mp3",23031,"fda44264a05b"],["assets/naja/audio/select_naja.mp3",18852,"1bd57158cba1"],["assets/naja/manifest.js",11430,"a64c68965bdd"],["assets/naja/run/sprite-sheet-alpha.webp",1621460,"e33344d6ec66"],["assets/naja/ui/cutin.webp",304792,"a428e2dea484"],["assets/naja/ui/fx-cyclone.webp",14950,"8c9904e41ca3"],["assets/naja/ui/fx-ripple.webp",8958,"616e8df82f51"],["assets/naja/ui/fx-sandwave.webp",9302,"950297d2078b"],["assets/naja/ui/fx-serpent.webp",65082,"a4961a5a6d83"],["assets/naja/ui/icon-basic.webp",27428,"b09d339b7902"],["assets/naja/ui/icon-skill1.webp",24914,"1eff7bf3b7ac"],["assets/naja/ui/icon-skill2.webp",28412,"2f7b77ad45ab"],["assets/naja/ui/icon-ultimate.webp",29388,"7f65e2beeeb1"],["assets/naja/ui/portrait.webp",38558,"267273db6455"],["assets/nib/audio/nib-ultimate.mp3",20523,"c6739b0ebbf4"],["assets/nib/audio/nib_wins.mp3",23031,"0790031653fd"],["assets/nib/audio/select_nib.mp3",15090,"5a8ff37811c4"],["assets/nib/manifest.js",11785,"7a0a8737e951"],["assets/nib/run/sprite-sheet-alpha.webp",1145842,"5f86108718a0"],["assets/nib/ui/cutin.webp",185052,"3e8cbacd4ee0"],["assets/nib/ui/fx-letter.webp",4924,"4d4b9beaffad"],["assets/nib/ui/fx-plane.webp",4572,"6980a21f4c9e"],["assets/nib/ui/fx-slip.webp",22866,"f4958eca0680"],["assets/nib/ui/fx-stamp.webp",19112,"f6c29056da94"],["assets/nib/ui/icon-basic.webp",22936,"5c92b6e449ac"],["assets/nib/ui/icon-skill1.webp",12434,"ab66b1ea938f"],["assets/nib/ui/icon-skill2.webp",19034,"6c0d868dcb91"],["assets/nib/ui/icon-ultimate.webp",18786,"27e0aed42406"],["assets/nib/ui/portrait.webp",28462,"70ce54866552"],["assets/rhea/audio/rhea-ultimate.mp3",21359,"01cf69da4373"],["assets/rhea/audio/rhea_wins.mp3",21359,"c62a5d27ce5b"],["assets/rhea/audio/select_rhea.mp3",16344,"1a098bdd4489"],["assets/rhea/manifest.js",11682,"e63b96027b54"],["assets/rhea/run/sprite-sheet-alpha.webp",1274018,"6e9f0d3688ef"],["assets/rhea/ui/cutin.webp",209154,"9a0bcc505ec6"],["assets/rhea/ui/fx-burst.webp",19276,"03174ca5e988"],["assets/rhea/ui/fx-drift.webp",9482,"a5710703920f"],["assets/rhea/ui/fx-planet.webp",17248,"dce69d012b10"],["assets/rhea/ui/fx-well.webp",21730,"ceb6bbe12c2f"],["assets/rhea/ui/icon-basic.webp",17416,"a6742865805c"],["assets/rhea/ui/icon-skill1.webp",12188,"9cf259e64ebb"],["assets/rhea/ui/icon-skill2.webp",24152,"67af3820a177"],["assets/rhea/ui/icon-ultimate.webp",26232,"8eff1ad0166d"],["assets/rhea/ui/portrait.webp",38584,"fd26b4900737"],["assets/showcase/edda/portrait.webp",34176,"eef0b3e18d5b"],["assets/showcase/haldor/portrait.webp",46308,"cbd54572adfa"],["assets/showcase/isolde/portrait.webp",41656,"1eb9e10cc34c"],["assets/showcase/naja/portrait.webp",38558,"267273db6455"],["assets/showcase/nib/portrait.webp",28462,"70ce54866552"],["assets/showcase/rhea/portrait.webp",38584,"fd26b4900737"],["assets/showcase/showcase.js",150,"a475b33f051e"],["assets/showcase/solan/portrait.webp",42714,"910bf43ac688"],["assets/showcase/zanni/portrait.webp",33856,"64b5171fa23b"],["assets/solan/audio/select_solan.mp3",15090,"00cd3d422862"],["assets/solan/audio/solan-ultimate.mp3",21359,"d7297cacb9b1"],["assets/solan/audio/solan_wins-raw.mp3",26793,"40b664047993"],["assets/solan/audio/solan_wins.mp3",22612,"9b605ba42f1d"],["assets/solan/manifest.js",11759,"79e98e0a6fa4"],["assets/solan/run/sprite-sheet-alpha.webp",1812930,"78c268a484ea"],["assets/solan/ui/cutin.webp",221154,"6d3c03c440aa"],["assets/solan/ui/fx-crescent.webp",10074,"47ae65f41c30"],["assets/solan/ui/fx-impact.webp",12828,"18039e218472"],["assets/solan/ui/fx-roar.webp",16002,"e7bde0da0471"],["assets/solan/ui/fx-sunburst.webp",17286,"f46b512520da"],["assets/solan/ui/icon-basic.webp",21426,"abfecbd48e41"],["assets/solan/ui/icon-skill1.webp",16616,"c49e42b3e5f3"],["assets/solan/ui/icon-skill2.webp",24528,"922918cf670e"],["assets/solan/ui/icon-ultimate.webp",26478,"6d53f01bbd42"],["assets/solan/ui/portrait.webp",42714,"910bf43ac688"],["assets/stage-config.js",330,"5f4c562a5196"],["assets/stage.webp",84514,"35061ed6fae8"],["assets/ui/arco-avatar.webp",28238,"4c06b6cad40a"],["assets/ui/attack.webp",6744,"bd2b590d635e"],["assets/ui/drone-config.js",196,"8eb1127440e6"],["assets/ui/dummy-avatar.webp",22410,"d3fbe1234b69"],["assets/ui/icons-check.webp",32114,"e27fecadcda7"],["assets/ui/skill1.webp",8908,"3228c3690fb8"],["assets/ui/skill2.webp",9788,"dceb3d2b71cd"],["assets/ui/squadron-icon.webp",6466,"ddedba88f295"],["assets/ui/ultimate-cutin.webp",126218,"599145541b00"],["assets/ui/ultimate.webp",7504,"770631fda059"],["assets/zanni/audio/select_zanni.mp3",18852,"af46d57d9cb8"],["assets/zanni/audio/zanni-ultimate.mp3",17598,"28ec07653ad7"],["assets/zanni/audio/zanni_wins-raw.mp3",34316,"f8b324451dae"],["assets/zanni/audio/zanni_wins.mp3",24284,"438a81d03242"],["assets/zanni/manifest.js",11595,"ffa0d66d7bfd"],["assets/zanni/run/sprite-sheet-alpha.webp",1555686,"a60752c47112"],["assets/zanni/ui/cutin.webp",206256,"338aaa7bf671"],["assets/zanni/ui/fx-bigring.webp",24056,"f8be338393bf"],["assets/zanni/ui/fx-confetti.webp",16344,"3b85c104a23c"],["assets/zanni/ui/fx-ring.webp",14902,"bd879ed06ac4"],["assets/zanni/ui/fx-snatch.webp",19366,"18e9773549a2"],["assets/zanni/ui/icon-basic.webp",25846,"099711ea0e34"],["assets/zanni/ui/icon-skill1.webp",17230,"37d8ade539b7"],["assets/zanni/ui/icon-skill2.webp",19002,"07dc5d0b85fd"],["assets/zanni/ui/icon-ultimate.webp",28306,"ef268c6e6011"],["assets/zanni/ui/portrait.webp",33856,"64b5171fa23b"]]}; +/* Generated by tools/build_dist.mjs (regenerated by hand for Konoha Fighting): runtime files [path, bytes, sha1] for preload.js and sw.js. Do not edit. */ +self.AETHER_PRECACHE = {"version":"4014c1bf8e52","total":111433745,"files":[["index.html",11996,"ec19aa2228c0"],["mobile.html",3638,"920bc9372dca"],["style.css",25814,"413539b8eaca"],["menu.css",28655,"006133147876"],["preload.js",4100,"b042759fb485"],["game.js",217269,"f47763c6e4be"],["menu.js",21009,"1aea1071b966"],["match.js",4217,"99ac57c18f9d"],["announcer.js",3087,"43ec8295c5f4"],["touch.js",4816,"124342a02504"],["fenr.js",2903,"30635da02da7"],["browo.js",5523,"1e4295ff3d92"],["assets/anice/form-atlas-preview.png",523803,"e2f9a1d16c87"],["assets/anice/form/.run.sg-rwlock",0,"da39a3ee5e6b"],["assets/anice/form/base/archive/v1/option-1.png",1517097,"8f9540d9ace6"],["assets/anice/form/base/archive/v1/option-1.png.json",2645,"969ae5b26672"],["assets/anice/form/base/archive/v1/option-1.png.raw.png",1504438,"320e452b99dc"],["assets/anice/form/base/archive/v1/option-2.png",1827294,"db7448050893"],["assets/anice/form/base/archive/v1/option-2.png.json",2626,"14b0f632a795"],["assets/anice/form/base/archive/v1/option-2.png.raw.png",1784824,"60fcae6d07f9"],["assets/anice/form/base/archive/v1/option-3.png",1639574,"0e18833155ad"],["assets/anice/form/base/archive/v1/option-3.png.json",2636,"47ea3328d440"],["assets/anice/form/base/archive/v1/option-3.png.raw.png",1636399,"1db83871cc89"],["assets/anice/form/base/archive/v1/options.png",2507749,"6726a85acfc7"],["assets/anice/form/base/base-selected.png",1483240,"84bd53d5a433"],["assets/anice/form/base/option-1.png",11627,"3e097584f079"],["assets/anice/form/base/option-1.png.json",3599,"6fe52e48ccfe"],["assets/anice/form/base/option-1.png.raw.png",1446461,"2278f366ceca"],["assets/anice/form/base/option-2.png",7471,"ad8ceb03872f"],["assets/anice/form/base/option-2.png.json",3571,"459fe15cc3da"],["assets/anice/form/base/option-2.png.raw.png",1526354,"5cf734f1b989"],["assets/anice/form/base/option-3.png",2293,"17894c0de473"],["assets/anice/form/base/option-3.png.json",3880,"0aedd66b884d"],["assets/anice/form/base/option-3.png.raw.png",1854990,"db0337afef6f"],["assets/anice/form/base/options.png",1995965,"23073b077c9a"],["assets/anice/form/manifest-data.json",11439,"8adc9ccb6585"],["assets/anice/form/raw-original/attack1.png",1776741,"67c02af37971"],["assets/anice/form/raw-original/attack2.png",1743998,"44f05583e321"],["assets/anice/form/raw-original/attack3.png",1812903,"fceed3095943"],["assets/anice/form/raw-original/crouch.png",1758921,"cc3d438b3b36"],["assets/anice/form/raw-original/doublejump.png",1541177,"dc8cb2e24381"],["assets/anice/form/raw-original/down.png",1408036,"b9484cf7714c"],["assets/anice/form/raw-original/hurt.png",1873472,"67edc62ef8b2"],["assets/anice/form/raw-original/idle.png",1954495,"246477b268de"],["assets/anice/form/raw-original/jump.png",1517620,"21a54815c9ea"],["assets/anice/form/raw-original/recover.png",1652128,"cbf3847271c1"],["assets/anice/form/raw-original/run.png",1688794,"fbc3aac18f41"],["assets/anice/form/raw-original/skill1.png",1710663,"43907aec110e"],["assets/anice/form/raw-original/skill2.png",1803887,"ca85b69cb844"],["assets/anice/form/raw-original/ultimate.png",1820417,"0873a0288920"],["assets/anice/form/raw-original/walk.png",1857428,"74eb2bef659f"],["assets/anice/form/request.json",5124,"1ece473392f1"],["assets/anice/form/run/base-source.png",1483240,"84bd53d5a433"],["assets/anice/form/run/frames/attack1/frame-0.png",33140,"f99a7da2dc6c"],["assets/anice/form/run/frames/attack1/frame-1.png",36087,"c500d8a97a53"],["assets/anice/form/run/frames/attack1/frame-2.png",36390,"8b06a42b43da"],["assets/anice/form/run/frames/attack1/frame-3.png",34535,"de1b2fdc7879"],["assets/anice/form/run/frames/attack2/frame-0.png",34536,"511cfc04437c"],["assets/anice/form/run/frames/attack2/frame-1.png",32551,"cec475240550"],["assets/anice/form/run/frames/attack2/frame-2.png",33875,"acce0f8535a8"],["assets/anice/form/run/frames/attack2/frame-3.png",33989,"37fb97bdc763"],["assets/anice/form/run/frames/attack3/frame-0.png",38125,"301da39915f1"],["assets/anice/form/run/frames/attack3/frame-1.png",33109,"099d97032068"],["assets/anice/form/run/frames/attack3/frame-2.png",33138,"afae31b10115"],["assets/anice/form/run/frames/attack3/frame-3.png",39274,"aa2f1c4dacb1"],["assets/anice/form/run/frames/crouch/frame-0.png",38721,"631c068fab2e"],["assets/anice/form/run/frames/crouch/frame-1.png",35793,"8bfccc92679b"],["assets/anice/form/run/frames/crouch/frame-2.png",39339,"441dd5023ce3"],["assets/anice/form/run/frames/crouch/frame-3.png",36011,"c26863d8918a"],["assets/anice/form/run/frames/doublejump/frame-0.png",22253,"9207eea342d2"],["assets/anice/form/run/frames/down/frame-0.png",22517,"4ee0ac50f8ff"],["assets/anice/form/run/frames/down/frame-1.png",21177,"5c33628e42a8"],["assets/anice/form/run/frames/down/frame-2.png",19016,"0184b66fd501"],["assets/anice/form/run/frames/down/frame-3.png",15756,"ab4122afe6cc"],["assets/anice/form/run/frames/frames-manifest.json",19028,"afe9cd9ecd54"],["assets/anice/form/run/frames/hurt/frame-0.png",40952,"8e837adb7646"],["assets/anice/form/run/frames/hurt/frame-1.png",40762,"6f5ee1db8c58"],["assets/anice/form/run/frames/hurt/frame-2.png",38106,"955859d60542"],["assets/anice/form/run/frames/hurt/frame-3.png",40005,"d52dac1e905b"],["assets/anice/form/run/frames/idle/frame-0.png",45325,"b842bf30d16a"],["assets/anice/form/run/frames/idle/frame-1.png",42793,"f3dbb5da514d"],["assets/anice/form/run/frames/idle/frame-2.png",45082,"3bb020a81fdd"],["assets/anice/form/run/frames/idle/frame-3.png",42770,"667766625f2f"],["assets/anice/form/run/frames/jump/frame-0.png",35837,"e97587bbe0e0"],["assets/anice/form/run/frames/recover/frame-0.png",27262,"3a87b3ea35eb"],["assets/anice/form/run/frames/recover/frame-1.png",29814,"be9a1e10c1cb"],["assets/anice/form/run/frames/recover/frame-2.png",29200,"031968075e83"],["assets/anice/form/run/frames/recover/frame-3.png",35111,"a1fdc02a2ea5"],["assets/anice/form/run/frames/run/frame-0.png",33909,"54cd7e89a594"],["assets/anice/form/run/frames/run/frame-1.png",30196,"29d4e2f5feca"],["assets/anice/form/run/frames/run/frame-2.png",33164,"7e1903235e20"],["assets/anice/form/run/frames/run/frame-3.png",30863,"0c3a672467d9"],["assets/anice/form/run/frames/skill1/frame-0.png",30487,"474246bb7bea"],["assets/anice/form/run/frames/skill1/frame-1.png",33087,"55549110b7af"],["assets/anice/form/run/frames/skill1/frame-2.png",33111,"6715986ee764"],["assets/anice/form/run/frames/skill1/frame-3.png",33015,"f4c351cbd2ed"],["assets/anice/form/run/frames/skill2/frame-0.png",36512,"03d71fca8dfd"],["assets/anice/form/run/frames/skill2/frame-1.png",35294,"61bacc4cce00"],["assets/anice/form/run/frames/skill2/frame-2.png",35581,"576ee56d5228"],["assets/anice/form/run/frames/skill2/frame-3.png",38813,"9f01de7a6ce5"],["assets/anice/form/run/frames/ultimate/frame-0.png",35236,"6e4eb960f6c0"],["assets/anice/form/run/frames/ultimate/frame-1.png",42229,"a527397ed828"],["assets/anice/form/run/frames/ultimate/frame-2.png",36386,"0dc6272b6f80"],["assets/anice/form/run/frames/ultimate/frame-3.png",36806,"69c9a4fdd9b2"],["assets/anice/form/run/frames/walk/frame-0.png",42251,"673cf067572e"],["assets/anice/form/run/frames/walk/frame-1.png",33611,"616c4d680a56"],["assets/anice/form/run/frames/walk/frame-2.png",43013,"d3a858daabe6"],["assets/anice/form/run/frames/walk/frame-3.png",38248,"5ad74eed2cf9"],["assets/anice/form/run/manifest.json",10081,"6894101505b3"],["assets/anice/form/run/prompts/attack1.txt",5450,"13d7adb2d7ce"],["assets/anice/form/run/prompts/attack2.txt",5438,"e97e3aee91ef"],["assets/anice/form/run/prompts/attack3.txt",5457,"590e88ce7afb"],["assets/anice/form/run/prompts/crouch.txt",5455,"98c7fd46c695"],["assets/anice/form/run/prompts/doublejump.txt",5481,"959308347bdb"],["assets/anice/form/run/prompts/down.txt",5459,"1a88b1553196"],["assets/anice/form/run/prompts/hurt.txt",5443,"10d5865a5168"],["assets/anice/form/run/prompts/idle.txt",5444,"abe0cc2e9367"],["assets/anice/form/run/prompts/jump.txt",5753,"41035598e70b"],["assets/anice/form/run/prompts/recover.txt",5477,"9c82b0101c73"],["assets/anice/form/run/prompts/run.txt",5752,"a71d33b02971"],["assets/anice/form/run/prompts/skill1.txt",5474,"dfe94d0c4cb9"],["assets/anice/form/run/prompts/skill2.txt",5456,"3f7d56867034"],["assets/anice/form/run/prompts/ultimate.txt",5527,"e8524dbbbac4"],["assets/anice/form/run/prompts/walk.txt",5752,"8c1c24876c2a"],["assets/anice/form/run/raw/attack1.png",188886,"0ba1cb6418d9"],["assets/anice/form/run/raw/attack1.png.raw.png",1776741,"67c02af37971"],["assets/anice/form/run/raw/attack2.png",184487,"11a722af7b49"],["assets/anice/form/run/raw/attack2.png.raw.png",1743998,"44f05583e321"],["assets/anice/form/run/raw/attack3.png",191696,"b07264dc32dc"],["assets/anice/form/run/raw/attack3.png.raw.png",1812903,"fceed3095943"],["assets/anice/form/run/raw/crouch.png",189618,"f4acd309c560"],["assets/anice/form/run/raw/crouch.png.raw.png",1758921,"cc3d438b3b36"],["assets/anice/form/run/raw/doublejump.png",28253,"6ac90804a20e"],["assets/anice/form/run/raw/doublejump.png.raw.png",1541177,"dc8cb2e24381"],["assets/anice/form/run/raw/down.png",147913,"0216c200ce8d"],["assets/anice/form/run/raw/down.png.raw.png",1408036,"b9484cf7714c"],["assets/anice/form/run/raw/hurt.png",197855,"22eadda3e2be"],["assets/anice/form/run/raw/hurt.png.raw.png",1873472,"67edc62ef8b2"],["assets/anice/form/run/raw/idle.png",210336,"2bb05abf9520"],["assets/anice/form/run/raw/idle.png.raw.png",1954495,"246477b268de"],["assets/anice/form/run/raw/jump.png",49770,"da818bb6e10e"],["assets/anice/form/run/raw/jump.png.raw.png",1517620,"21a54815c9ea"],["assets/anice/form/run/raw/recover.png",175576,"37e4739c82b4"],["assets/anice/form/run/raw/recover.png.raw.png",1652128,"cbf3847271c1"],["assets/anice/form/run/raw/run.png",179791,"d3ccae4e151c"],["assets/anice/form/run/raw/run.png.raw.png",1688794,"fbc3aac18f41"],["assets/anice/form/run/raw/skill1.png",181431,"f7d1a171ef94"],["assets/anice/form/run/raw/skill1.png.raw.png",1710663,"43907aec110e"],["assets/anice/form/run/raw/skill2.png",191221,"1943aac3f230"],["assets/anice/form/run/raw/skill2.png.raw.png",1803887,"ca85b69cb844"],["assets/anice/form/run/raw/ultimate.png",193199,"110740fd02de"],["assets/anice/form/run/raw/ultimate.png.raw.png",1820417,"0873a0288920"],["assets/anice/form/run/raw/walk.png",199924,"e923498e11f0"],["assets/anice/form/run/raw/walk.png.raw.png",1857428,"74eb2bef659f"],["assets/anice/form/run/reports/gen-set/attack1.json",6357,"012eaf94bd32"],["assets/anice/form/run/reports/gen-set/attack2.json",6345,"aedf8009d22e"],["assets/anice/form/run/reports/gen-set/attack3.json",6364,"9c5a185d5d9d"],["assets/anice/form/run/reports/gen-set/crouch.json",6359,"fe761f6c3a4b"],["assets/anice/form/run/reports/gen-set/doublejump.json",6397,"a458eda6862a"],["assets/anice/form/run/reports/gen-set/down.json",6357,"21a9eadc532c"],["assets/anice/form/run/reports/gen-set/hurt.json",6340,"76b617d43c45"],["assets/anice/form/run/reports/gen-set/idle.json",6342,"725c666c86db"],["assets/anice/form/run/reports/gen-set/jump.json",6655,"3834a000a317"],["assets/anice/form/run/reports/gen-set/recover.json",6384,"d4f2b35bb666"],["assets/anice/form/run/reports/gen-set/run.json",6652,"9d82f3d45604"],["assets/anice/form/run/reports/gen-set/set.report.json",858,"24b9d01a0994"],["assets/anice/form/run/reports/gen-set/skill1.json",6377,"c9b34a67ac6a"],["assets/anice/form/run/reports/gen-set/skill2.json",6360,"ed31c7a39d33"],["assets/anice/form/run/reports/gen-set/table.md",120,"b4620595846d"],["assets/anice/form/run/reports/gen-set/ultimate.json",6437,"d31be6ceb5f3"],["assets/anice/form/run/reports/gen-set/walk.json",6655,"fbfae1d0df57"],["assets/anice/form/run/sprite-request.json",5992,"b4e3fae2f456"],["assets/anice/form/run/sprite-sheet-alpha.png",1841119,"a7e5f8a0e893"],["assets/anice/form/run/sprite-sheet-alpha.report.json",14928,"6b9d63400ff1"],["assets/anice/form/run/sprite-sheet-alpha.webp",1363320,"3762ce677116"],["assets/anice/manifest.js",25215,"20eae2a0a515"],["assets/anice/run/sprite-sheet-alpha.webp",933198,"4fb2cd5820fd"],["assets/anice/ui/cutin-mode.webp",381008,"fed063c899f7"],["assets/anice/ui/cutin.webp",200842,"1fa39d1c9ca4"],["assets/anice/ui/fx-burst.webp",142064,"14ee91dba90e"],["assets/anice/ui/fx-impact.webp",16644,"c24b27799758"],["assets/anice/ui/fx-nano.webp",80992,"5740f5a80f75"],["assets/anice/ui/fx-nanoblast.webp",46472,"a1afa4bece15"],["assets/anice/ui/fx-podium.webp",84750,"19836aa8e6d5"],["assets/anice/ui/fx-tackle.webp",78640,"bfb7736dad93"],["assets/anice/ui/fx-words.webp",67296,"52a66cefabce"],["assets/anice/ui/icon-basic.webp",27784,"bf77858fa893"],["assets/anice/ui/icon-mode-skill1.webp",36626,"b48253629667"],["assets/anice/ui/icon-mode-skill2.webp",42382,"a3e42aa81355"],["assets/anice/ui/icon-mode-ultimate.webp",40962,"e07e3fcefe02"],["assets/anice/ui/icon-skill1.webp",27550,"8100a94969e9"],["assets/anice/ui/icon-skill2.webp",27416,"63f3eb5cfa99"],["assets/anice/ui/icon-ultimate.webp",29408,"fe832c87be0e"],["assets/anice/ui/portrait.webp",31204,"04876d7cf2d7"],["assets/audio/announcer/arco_wins.mp3",23031,"4e3734fb863a"],["assets/audio/announcer/double_ko.mp3",24285,"5b0ba10cfa89"],["assets/audio/announcer/draw.mp3",17598,"eb92b764316c"],["assets/audio/announcer/fenr_wins.mp3",24285,"9fe9cb3a833b"],["assets/audio/announcer/fight.mp3",17598,"8a64a7e3d192"],["assets/audio/announcer/ko.mp3",11328,"f3106c569e34"],["assets/audio/announcer/manifest.js",1478,"df99fff86510"],["assets/audio/announcer/round_1.mp3",17598,"fdcce639d88d"],["assets/audio/announcer/round_2.mp3",35570,"2598ef54b8c4"],["assets/audio/announcer/round_3.mp3",21359,"83ec7e4ec306"],["assets/audio/announcer/select_arco.mp3",15090,"b0856ea865dc"],["assets/audio/announcer/select_fenr.mp3",17598,"a7770529a39c"],["assets/audio/announcer/time_up.mp3",20106,"e59e9a60345e"],["assets/audio/arco-ultimate-dylan.mp3",36824,"0d6136cbf82a"],["assets/audio/music/midday-showdown.mp3",1571832,"65d22abb18d9"],["assets/browo/manifest.js",11367,"0059f584090e"],["assets/browo/run/sprite-sheet-alpha.webp",1034754,"b9298446ad0c"],["assets/browo/ui/cutin-fire.webp",400460,"4f0ee94bcc60"],["assets/browo/ui/cutin.webp",410306,"d11a6fa4e1c3"],["assets/browo/ui/fx-burntree.webp",108312,"fbbbe24e8ac5"],["assets/browo/ui/fx-impact.webp",15564,"3aeb4063798e"],["assets/browo/ui/fx-sawit.webp",111080,"9ee0c3ac2f35"],["assets/browo/ui/fx-sunburst.webp",47934,"59684833a729"],["assets/browo/ui/fx-tornado.webp",138990,"224d165f7c5e"],["assets/browo/ui/fx-truck.webp",53508,"674f1bf52fb8"],["assets/browo/ui/icon-basic.webp",31632,"dff834ddda1d"],["assets/browo/ui/icon-rage-skill1.webp",38234,"c098d1a0cb5a"],["assets/browo/ui/icon-rage-skill2.webp",41992,"efc7b8a053d3"],["assets/browo/ui/icon-rage-ultimate.webp",39076,"6720839976cc"],["assets/browo/ui/icon-skill1.webp",39968,"a7c877917434"],["assets/browo/ui/icon-skill2.webp",31528,"f5bbc58a5ecc"],["assets/browo/ui/icon-ultimate.webp",38878,"5128489c945a"],["assets/browo/ui/portrait.webp",44684,"4bb5c0c5ecee"],["assets/ethanolman/manifest.js",13894,"e40c1faebddc"],["assets/ethanolman/run/sprite-sheet-alpha.webp",885038,"1c058021275b"],["assets/ethanolman/ui/cutin-mode.webp",466514,"1e17fb1eca55"],["assets/ethanolman/ui/cutin.webp",468960,"7de0ef8ca909"],["assets/ethanolman/ui/fx-blast.webp",165684,"15e65b1dadca"],["assets/ethanolman/ui/fx-burst.webp",125934,"0fac6678b182"],["assets/ethanolman/ui/fx-fireflow.webp",55662,"7026e8fa0442"],["assets/ethanolman/ui/fx-firepillar.webp",92556,"97aabac66799"],["assets/ethanolman/ui/fx-flood.webp",103472,"c437d832d1ad"],["assets/ethanolman/ui/fx-impact.webp",16930,"c15448d4f325"],["assets/ethanolman/ui/fx-splash.webp",157048,"32aff8cf663e"],["assets/ethanolman/ui/fx-wave.webp",54982,"473d5a746675"],["assets/ethanolman/ui/icon-basic.webp",34308,"6c4939cd2b42"],["assets/ethanolman/ui/icon-mode-skill1.webp",41852,"8ed215cd9fce"],["assets/ethanolman/ui/icon-mode-skill2.webp",44852,"68d69cf3e7dc"],["assets/ethanolman/ui/icon-mode-ultimate.webp",41016,"ac84b45e6512"],["assets/ethanolman/ui/icon-skill1.webp",38200,"4d8ea6fadb3e"],["assets/ethanolman/ui/icon-skill2.webp",34536,"cdf037f2d3f8"],["assets/ethanolman/ui/icon-ultimate.webp",40840,"380c19c26c36"],["assets/ethanolman/ui/portrait.webp",64936,"5eb8a1ac6b78"],["assets/fenr/audio/fenr-ultimate-holden.mp3",23031,"4d15d464b495"],["assets/fenr/human/manifest.js",11409,"fb5294ec1ce2"],["assets/fenr/human/run/sprite-sheet-alpha.webp",1486412,"0d6f47bb4cb5"],["assets/fenr/ui/cutin.webp",119558,"538658b309df"],["assets/fenr/ui/fx-bite.webp",8948,"b257d8dad484"],["assets/fenr/ui/fx-claw.webp",7178,"780d656a1837"],["assets/fenr/ui/fx-gale.webp",4970,"54bbac66f730"],["assets/fenr/ui/fx-howl.webp",10784,"3837b651a7a6"],["assets/fenr/ui/fx-rush.webp",10026,"ee5f015089dd"],["assets/fenr/ui/fx-transform.webp",15202,"aa9e6402f320"],["assets/fenr/ui/icon-human-basic.webp",11026,"a51720ccc2a1"],["assets/fenr/ui/icon-human-skill1.webp",6122,"028f0e547941"],["assets/fenr/ui/icon-human-skill2.webp",9938,"a04cc8d9767b"],["assets/fenr/ui/icon-ultimate.webp",14998,"bc755f2f7468"],["assets/fenr/ui/icon-wolf-basic.webp",15864,"54aeb1d66b05"],["assets/fenr/ui/icon-wolf-skill1.webp",10442,"0d5ada7ae5d2"],["assets/fenr/ui/icon-wolf-skill2.webp",8652,"a83241200084"],["assets/fenr/ui/portrait-human.webp",24324,"db4f7dbaea08"],["assets/fenr/ui/portrait-wolf.webp",27618,"3593d886c6e6"],["assets/fenr/wolf/manifest.js",11434,"cac1df6e1fe5"],["assets/fenr/wolf/run/sprite-sheet-alpha.webp",2360632,"c884ad55b290"],["assets/fonts/OFL.txt",4373,"061a0eb53e23"],["assets/fonts/Rajdhani-Bold.ttf",400680,"fb82c1992ff1"],["assets/fonts/Rajdhani-Medium.ttf",384348,"7837ff8a9aea"],["assets/gufron/manifest.js",13997,"bbb036cb8c22"],["assets/gufron/run/sprite-sheet-alpha.webp",952108,"f42f605027dd"],["assets/gufron/ui/cutin-mode.webp",385766,"547b288052c0"],["assets/gufron/ui/cutin.webp",376720,"bf17c8ef5576"],["assets/gufron/ui/fx-ant.webp",38064,"be9b39d4c04f"],["assets/gufron/ui/fx-antswarm.webp",44740,"cb4114217442"],["assets/gufron/ui/fx-burst.webp",132316,"c782bd4d854e"],["assets/gufron/ui/fx-giantant.webp",64786,"a2f603bfcbb6"],["assets/gufron/ui/fx-impact.webp",20724,"17c67b4d4699"],["assets/gufron/ui/fx-soundchain.webp",85598,"d4bdf799227e"],["assets/gufron/ui/fx-soundwave.webp",50296,"d578e131dae7"],["assets/gufron/ui/icon-basic.webp",33562,"6571eaa205c7"],["assets/gufron/ui/icon-mode-skill1.webp",39900,"c6f18a761bb1"],["assets/gufron/ui/icon-mode-skill2.webp",37666,"a9322f5d86aa"],["assets/gufron/ui/icon-mode-ultimate.webp",40038,"3d77d1409749"],["assets/gufron/ui/icon-skill1.webp",36430,"a5314f21e323"],["assets/gufron/ui/icon-skill2.webp",32212,"79fad79ff3ff"],["assets/gufron/ui/icon-ultimate.webp",39842,"9f145a38783e"],["assets/gufron/ui/portrait.webp",54520,"a1fab006ecd2"],["assets/mecha/manifest.js",13264,"6a57bf63b6e7"],["assets/mecha/run/sprite-sheet-alpha.webp",1140340,"02dfd7fc3f38"],["assets/megachan/manifest.js",13941,"a5d65eb7c9fb"],["assets/megachan/run/sprite-sheet-alpha.webp",1259292,"4ee735a8c199"],["assets/megachan/ui/cutin-mode.webp",361828,"162c7f48ee7e"],["assets/megachan/ui/cutin.webp",402302,"4d3f7c762127"],["assets/megachan/ui/fx-blackbull.webp",101600,"9473ab48136e"],["assets/megachan/ui/fx-bull.webp",71072,"e5cf32972bda"],["assets/megachan/ui/fx-bullflame.webp",62998,"4490c7e2930d"],["assets/megachan/ui/fx-burst.webp",140028,"49affed34a69"],["assets/megachan/ui/fx-firewave.webp",92234,"85ecc5b7c2d6"],["assets/megachan/ui/fx-hellbull.webp",88778,"f4bc116724f0"],["assets/megachan/ui/fx-impact.webp",18462,"6aecf90dfbe2"],["assets/megachan/ui/fx-soundwave.webp",52582,"95ef89ffc01f"],["assets/megachan/ui/icon-basic.webp",34370,"eb2234f905c9"],["assets/megachan/ui/icon-mode-skill1.webp",42356,"52f383e9f608"],["assets/megachan/ui/icon-mode-skill2.webp",35454,"f9e93e263bba"],["assets/megachan/ui/icon-mode-ultimate.webp",42464,"e9ff7e94a1a6"],["assets/megachan/ui/icon-skill1.webp",38852,"7ffd61cc9fab"],["assets/megachan/ui/icon-skill2.webp",35164,"836d4a372a92"],["assets/megachan/ui/icon-ultimate.webp",36534,"c600915ad2ac"],["assets/megachan/ui/portrait.webp",50208,"480c53efe5cf"],["assets/menu/anice-select.webp",84138,"2df5ad3aedec"],["assets/menu/azure-harbor.webp",116560,"e9b00d01e676"],["assets/menu/browo-select.webp",152000,"5b47b5c28cb2"],["assets/menu/elderwood.webp",130386,"ec28da7499fb"],["assets/menu/ethanolman-select.webp",110500,"338a537affa4"],["assets/menu/gufron-select.webp",141964,"556cea81f8bf"],["assets/menu/home-art.webp",188424,"3cccd1c9793b"],["assets/menu/home-factions-loop.mp4",1417101,"d48036ae3888"],["assets/menu/home-factions.webp",148524,"2068721bc197"],["assets/menu/locked.svg",768,"f3a3b427476c"],["assets/menu/megachan-select.webp",132458,"3183d7f39d7f"],["assets/menu/moonrise.webp",68134,"750461b81b3b"],["assets/menu/soloman-select.webp",110436,"d3f3ca73f203"],["assets/menu/sonofsolo-select.webp",89842,"f53866cb83d1"],["assets/menu/sunspire.webp",49268,"54b11853a23a"],["assets/soloman/manifest.js",13766,"35683e03761f"],["assets/soloman/run/sprite-sheet-alpha.webp",270610,"bcd4fd6cd6cb"],["assets/soloman/ui/cutin-mode.webp",365344,"c4c9c5dade73"],["assets/soloman/ui/cutin.webp",342288,"f74857a51a2a"],["assets/soloman/ui/fx-bigcar.webp",52920,"e338f3395245"],["assets/soloman/ui/fx-burst.webp",145262,"c7a4932ccbba"],["assets/soloman/ui/fx-car.webp",39348,"4b22dec17ae2"],["assets/soloman/ui/fx-impact.webp",18322,"37c84bd2ac07"],["assets/soloman/ui/fx-sarong.webp",80564,"d0efd9e6a754"],["assets/soloman/ui/fx-sarongstorm.webp",99630,"42feb9ba487e"],["assets/soloman/ui/icon-basic.webp",32998,"6c714fe220d3"],["assets/soloman/ui/icon-mode-skill1.webp",36614,"928acd22ab7d"],["assets/soloman/ui/icon-mode-skill2.webp",38390,"c3c8d5585157"],["assets/soloman/ui/icon-mode-ultimate.webp",38516,"82acaa3f5fd7"],["assets/soloman/ui/icon-skill1.webp",37222,"71e07a8fbde7"],["assets/soloman/ui/icon-skill2.webp",32592,"1684118d154c"],["assets/soloman/ui/icon-ultimate.webp",35204,"19eb66421733"],["assets/soloman/ui/portrait.webp",41504,"54af30bea16e"],["assets/sonofsolo/manifest.js",13987,"38b5634551cb"],["assets/sonofsolo/run/sprite-sheet-alpha.webp",794606,"d58e1110f2a1"],["assets/sonofsolo/ui/cutin-mode.webp",391760,"2c85475e78c0"],["assets/sonofsolo/ui/cutin.webp",372392,"18daa717980c"],["assets/sonofsolo/ui/fx-acidspray.webp",68430,"b368c4e8e418"],["assets/sonofsolo/ui/fx-bigpuddle.webp",34698,"550d00a48dfc"],["assets/sonofsolo/ui/fx-burst.webp",130608,"a59d08d91234"],["assets/sonofsolo/ui/fx-drop.webp",29396,"8808a822b5a0"],["assets/sonofsolo/ui/fx-flask.webp",36436,"e6df5128a9f5"],["assets/sonofsolo/ui/fx-impact.webp",21714,"f47cc13724fa"],["assets/sonofsolo/ui/fx-puddle.webp",25912,"1e2f93f15c65"],["assets/sonofsolo/ui/fx-soundwave.webp",70540,"dd1b34d135e5"],["assets/sonofsolo/ui/icon-basic.webp",32010,"a8939a2ff541"],["assets/sonofsolo/ui/icon-mode-skill1.webp",38246,"6adc58839078"],["assets/sonofsolo/ui/icon-mode-skill2.webp",36994,"5365bb50e06d"],["assets/sonofsolo/ui/icon-mode-ultimate.webp",37964,"a81dde34bbe7"],["assets/sonofsolo/ui/icon-skill1.webp",32678,"39f613bfb04d"],["assets/sonofsolo/ui/icon-skill2.webp",28192,"b847849c77a3"],["assets/sonofsolo/ui/icon-ultimate.webp",36286,"8e9c83500b0b"],["assets/sonofsolo/ui/portrait.webp",42766,"53f5f4b7532e"],["assets/stage-config.js",329,"a1a1d7579894"],["assets/stage.webp",84514,"35061ed6fae8"],["assets/ui/arco-avatar.webp",28238,"4c06b6cad40a"],["assets/ui/attack.webp",6744,"bd2b590d635e"],["assets/ui/drone-config.js",195,"f7e8e6490fc4"],["assets/ui/drone.png",18724,"474894562b64"],["assets/ui/dummy-avatar.webp",22410,"d3fbe1234b69"],["assets/ui/icons-check.webp",32114,"e27fecadcda7"],["assets/ui/skill1.webp",8908,"3228c3690fb8"],["assets/ui/skill2.webp",9788,"dceb3d2b71cd"],["assets/ui/squadron-icon.webp",6466,"ddedba88f295"],["assets/ui/ultimate-cutin.webp",126218,"599145541b00"],["assets/ui/ultimate.webp",7504,"770631fda059"]]}; diff --git a/rhea.js b/rhea.js deleted file mode 100644 index 24a7839..0000000 --- a/rhea.js +++ /dev/null @@ -1,36 +0,0 @@ -/* Shared RHEA moves (teen orrery scholar mecha, spheres on jointed arms): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, planetDamage:16, basicRefund:.05 }; - const names = ['ORBIT STRIKE','PLANET DRIFT','GRAVITY WELL','GRAND ORRERY']; - // The spheres swing out on their jointed arms; reach sits inside the measured spheres (109/80/128 px in emitters.json). - const combo = [ - {damage:6,knockback:75,reach:100,duration:.38,hitAt:.5}, - {damage:8,knockback:100,reach:85,duration:.44,hitAt:.5}, - {damage:12,knockback:190,reach:115,duration:.56,hitAt:.55} - ]; - // Planet Drift: a slow little planet that crosses the whole arena at chest height. Slow enough to walk behind and - // control space with (a zoner's tool); a jump clears it. - const drift = { speed:380, life:3.2 }; - // Gravity Well: a vortex opens `at` px ahead and collapses after `fuse` s, hitting everything within `radius` px - // of its centre. It is a mid-range tool: a rival hugging RHEA is outside it. - const well = { at:230, fuse:.3, radius:95 }; - // Grand Orrery: three giant planets are released 0.38 s apart (inside the 0.42 s hurt stun). Each makes one lap - // around RHEA on an ellipse (rx x ry px) in `lap` s and hits once. A rival inside the orbit takes all three (48), - // front or back; stepping out past the orbit (about 260 px) dodges them. - const orrery = { cutinDuration:.78, releases:[.8,1.18,1.56], lap:.9, rx:230, ry:70, size:120, duration:2.6 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.5,knockback:130,projectile:true,speed:drift.speed,hitAt:.55}; - if(name==='skill2')return {name,type:name,damage:24,duration:.62,knockback:220,reach:well.at+well.radius,well:true,hitAt:.55}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Rhea={balance,names,combo,drift,well,orrery,move,start,refund}; -})(); diff --git a/solan.js b/solan.js deleted file mode 100644 index d2b2908..0000000 --- a/solan.js +++ /dev/null @@ -1,36 +0,0 @@ -/* Shared SOLAN moves (lion demi-human powerhouse, greatsword and roar): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, roarDamage:16, basicRefund:.05 }; - const names = ['SUNBLADE','SOLAR CRESCENT','LEONINE LEAP','SUNMANE ROAR']; - // Heavy greatsword chain: a little quicker than HALDOR's hammer, with big knockback. Reach sits inside the measured - // blade tip (149/95/74 px in emitters.json; the cleave ends on the floor close in front of him). - const combo = [ - {damage:6,knockback:90,reach:130,duration:.4,hitAt:.5}, - {damage:8,knockback:120,reach:100,duration:.46,hitAt:.5}, - {damage:12,knockback:230,reach:95,duration:.6,hitAt:.58} - ]; - // Solar Crescent: a golden crescent slash wave at chest height, `range` px long. - const crescent = { speed:700, range:480 }; - // Leonine Leap: SOLAN springs forward (`dash` px/s) and slams the blade down; everything within `radius` px of the - // impact point on the floor is hit. He does not need to touch the rival. - const leap = { dash:420, radius:120, ahead:70 }; - // Sunmane Roar: three roars 0.38 s apart (inside the 0.42 s hurt stun); each sends a tall sound wave both ways along - // the floor that cannot be jumped (`tall`) and fades after `range` px. A rival inside 480 px takes all three (48); - // getting farther away than that before the roars dodges them. - const roar = { cutinDuration:.78, roars:[.8,1.18,1.56], speed:520, range:480, tall:190, size:210, duration:2.6 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.52,knockback:140,projectile:true,speed:crescent.speed,range:crescent.range,hitAt:.55}; - if(name==='skill2')return {name,type:name,damage:24,duration:.74,knockback:280,reach:leap.ahead+leap.radius,dash:leap.dash,leap:true,hitAt:.6}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Solan={balance,names,combo,crescent,leap,roar,move,start,refund}; -})(); diff --git a/zanni.js b/zanni.js deleted file mode 100644 index caa5656..0000000 --- a/zanni.js +++ /dev/null @@ -1,36 +0,0 @@ -/* Shared ZANNI moves (clockwork jester mecha, scissor-lattice arms and bladed rings): player and AI use the same rules. */ -(() => { - 'use strict'; - const balance = { cooldowns:{skill1:3,skill2:6,ultimate:18}, castTime:.5, finaleDamage:16, basicRefund:.05 }; - const names = ['SCISSOR JAB','RING TOSS','SPRING SNATCH','GRAND FINALE']; - // The telescoping arms give a long, quick chain (tips measured at 144/110/161 px in emitters.json); the hits are the - // standard 6/8/12, with a little less knockback than a sword so the long reach does not push rivals out of the chain. - const combo = [ - {damage:6,knockback:70,reach:125,duration:.36,hitAt:.5}, - {damage:8,knockback:95,reach:100,duration:.42,hitAt:.5}, - {damage:12,knockback:190,reach:140,duration:.54,hitAt:.55} - ]; - // Ring Toss: a bladed ring flies out `range` px, turns and comes back to ZANNI's hand. It hits once, on the way out or - // on the way back, so a rival who jumps the outgoing ring still has to watch the return. - const ring = { speed:820, range:430 }; - // Grand Finale: three giant rings flung forward 0.38 s apart (inside the 0.42 s hurt stun), each flies to the arena edge - // and boomerangs back to ZANNI. One 16-damage hit per ring (48). A rival behind ZANNI at the throw is safe; a jump - // clears a ring (they fly at chest height), but a jumped ring can still hit on its way back. - const finale = { cutinDuration:.78, throws:[.8,1.18,1.56], speed:980, size:150, duration:2.3 }; - function move(name,index=1) { - if(name==='attack')return {name:`attack${index}`,type:'attack',index,...combo[index-1]}; - if(name==='skill1')return {name,type:name,damage:16,duration:.5,knockback:120,projectile:true,boomerang:true,speed:ring.speed,range:ring.range,hitAt:.5}; - // Spring Snatch: the scissor arm shoots out 200 px (the hand is measured at 207 px) and yanks the rival back in front - // of ZANNI (`pull` px), ready for a jab. Close rivals are grabbed as well. - if(name==='skill2')return {name,type:name,damage:24,duration:.7,knockback:0,reach:200,pull:95,hitAt:.5}; - return {name:'ultimate',type:'ultimate',duration:balance.castTime,damage:0,hitAt:1}; - } - function start(a,name,index=1) { - if(a.action||a.state==='hurt'||a.state==='down'||a.state==='recover')return false; - if(name!=='attack'&&a.cooldowns[name]>0)return false; - if(name!=='attack')a.cooldowns[name]=balance.cooldowns[name]; - a.action={...move(name,index),t:0,fired:false,queued:0};a.state=a.action.name;a.stateTime=0;return true; - } - function refund(a) {for(const name of Object.keys(balance.cooldowns))a.cooldowns[name]=Math.max(0,a.cooldowns[name]-balance.cooldowns[name]*balance.basicRefund);} - window.Zanni={balance,names,combo,ring,finale,move,start,refund}; -})();