From ea5c732c7535bcbe8045b8cb9d2b02550c2dc00f Mon Sep 17 00:00:00 2001 From: GDColon Date: Mon, 4 Jan 2021 10:21:58 -0500 Subject: [PATCH] Assets overhaul + demon list + several misc updates I held back on pushing this since I wanted to wait for Rob to unblock level downloading, but it's probably gonna be a while since it's (likely) related to an unlisted level exploit Anyways I totally overhauled how the assets work, and you can also browse through all the files by going to gdbrowser.com/assets, because why not I also made many other changes and fixes during this timespan including the addition of the demon list, optimized custom lists along with a ?page param, and other random stuff that needed touching up - Removed Herobrine --- README.md | 32 ++++---- api/download.js | 4 +- api/level.js | 4 +- api/search.js | 47 +++++++++--- assets/css/boomlings.css | 8 +- assets/css/browser.css | 25 +++--- assets/css/iconkit.css | 10 +-- assets/deatheffects/0.png | Bin 0 -> 6706 bytes assets/demonButton.png | Bin 6831 -> 15578 bytes .../{gdfaces => difficulties}/auto-epic.png | Bin .../auto-featured.png | Bin assets/{gdfaces => difficulties}/auto.png | Bin .../demon-easy-epic.png | Bin .../demon-easy-featured.png | Bin .../{gdfaces => difficulties}/demon-easy.png | Bin .../{gdfaces => difficulties}/demon-epic.png | Bin .../demon-extreme-epic.png | Bin .../demon-extreme-featured.png | Bin .../demon-extreme.png | Bin .../demon-featured.png | Bin .../demon-hard-epic.png | Bin .../demon-hard-featured.png | Bin .../{gdfaces => difficulties}/demon-hard.png | Bin .../demon-insane-epic.png | Bin .../demon-insane-featured.png | Bin .../demon-insane.png | Bin .../demon-medium-epic.png | Bin .../demon-medium-featured.png | Bin .../demon-medium.png | Bin assets/{gdfaces => difficulties}/demon.png | Bin .../{gdfaces => difficulties}/easy-epic.png | Bin .../easy-featured.png | Bin assets/{gdfaces => difficulties}/easy.png | Bin .../{gdfaces => difficulties}/hard-epic.png | Bin .../hard-featured.png | Bin assets/{gdfaces => difficulties}/hard.png | Bin .../{gdfaces => difficulties}/harder-epic.png | Bin .../harder-featured.png | Bin assets/{gdfaces => difficulties}/harder.png | Bin .../{gdfaces => difficulties}/insane-epic.png | Bin .../insane-featured.png | Bin assets/{gdfaces => difficulties}/insane.png | Bin .../{gdfaces => difficulties}/normal-epic.png | Bin .../normal-featured.png | Bin assets/{gdfaces => difficulties}/normal.png | Bin .../unrated-epic.png | Bin .../unrated-featured.png | Bin assets/{gdfaces => difficulties}/unrated.png | Bin assets/emptybutton.png | Bin 3138 -> 5758 bytes assets/iconkitbuttons/wave_off - Copy.png | Bin 3091 -> 0 bytes assets/iconkitbuttons/wave_on - Copy.png | Bin 5834 -> 0 bytes assets/{initial => levelstyle}/bg-1.png | Bin assets/{initial => levelstyle}/bg-10.png | Bin assets/{initial => levelstyle}/bg-11.png | Bin assets/{initial => levelstyle}/bg-12.png | Bin assets/{initial => levelstyle}/bg-13.png | Bin assets/{initial => levelstyle}/bg-14.png | Bin assets/{initial => levelstyle}/bg-15.png | Bin assets/{initial => levelstyle}/bg-16.png | Bin assets/{initial => levelstyle}/bg-17.png | Bin assets/{initial => levelstyle}/bg-18.png | Bin assets/{initial => levelstyle}/bg-19.png | Bin assets/{initial => levelstyle}/bg-2.png | Bin assets/{initial => levelstyle}/bg-20.png | Bin assets/{initial => levelstyle}/bg-3.png | Bin assets/{initial => levelstyle}/bg-4.png | Bin assets/{initial => levelstyle}/bg-5.png | Bin assets/{initial => levelstyle}/bg-6.png | Bin assets/{initial => levelstyle}/bg-7.png | Bin assets/{initial => levelstyle}/bg-8.png | Bin assets/{initial => levelstyle}/bg-9.png | Bin assets/{initial => levelstyle}/font-1.png | Bin assets/{initial => levelstyle}/font-10.png | Bin assets/{initial => levelstyle}/font-11.png | Bin assets/{initial => levelstyle}/font-12.png | Bin assets/{initial => levelstyle}/font-2.png | Bin assets/{initial => levelstyle}/font-3.png | Bin assets/{initial => levelstyle}/font-4.png | Bin assets/{initial => levelstyle}/font-5.png | Bin assets/{initial => levelstyle}/font-6.png | Bin assets/{initial => levelstyle}/font-7.png | Bin assets/{initial => levelstyle}/font-8.png | Bin assets/{initial => levelstyle}/font-9.png | Bin assets/{initial => levelstyle}/gr-1.png | Bin assets/{initial => levelstyle}/gr-10.png | Bin assets/{initial => levelstyle}/gr-11.png | Bin assets/{initial => levelstyle}/gr-12.png | Bin assets/{initial => levelstyle}/gr-13.png | Bin assets/{initial => levelstyle}/gr-14.png | Bin assets/{initial => levelstyle}/gr-15.png | Bin assets/{initial => levelstyle}/gr-16.png | Bin assets/{initial => levelstyle}/gr-17.png | Bin assets/{initial => levelstyle}/gr-2.png | Bin assets/{initial => levelstyle}/gr-3.png | Bin assets/{initial => levelstyle}/gr-4.png | Bin assets/{initial => levelstyle}/gr-5.png | Bin assets/{initial => levelstyle}/gr-6.png | Bin assets/{initial => levelstyle}/gr-7.png | Bin assets/{initial => levelstyle}/gr-8.png | Bin assets/{initial => levelstyle}/gr-9.png | Bin assets/{initial => levelstyle}/line-1.png | Bin assets/{initial => levelstyle}/line-2.png | Bin assets/{initial => levelstyle}/mode-2p.png | Bin assets/objects/{obj-arrow.png => arrow.png} | Bin assets/{ => objects}/blocks/black.png | Bin assets/{ => objects}/blocks/brick-color.png | Bin assets/{ => objects}/blocks/brick.png | Bin assets/{ => objects}/blocks/brick2.png | Bin assets/{ => objects}/blocks/brick3.png | Bin assets/{ => objects}/blocks/chipped-color.png | Bin assets/{ => objects}/blocks/chipped.png | Bin assets/{ => objects}/blocks/classic.png | Bin assets/{ => objects}/blocks/color.png | Bin assets/{ => objects}/blocks/cracked.png | Bin assets/{ => objects}/blocks/cracked2.png | Bin assets/{ => objects}/blocks/crystal.png | Bin assets/{ => objects}/blocks/edge.png | Bin assets/{ => objects}/blocks/electric.png | Bin assets/{ => objects}/blocks/electric2.png | Bin assets/{ => objects}/blocks/electric3.png | Bin assets/{ => objects}/blocks/electro.png | Bin assets/{ => objects}/blocks/glass.png | Bin assets/{ => objects}/blocks/grass-color.png | Bin assets/{ => objects}/blocks/grass.png | Bin assets/{ => objects}/blocks/mech-color.png | Bin assets/{ => objects}/blocks/mech-dark.png | Bin assets/{ => objects}/blocks/mech.png | Bin assets/{ => objects}/blocks/moon.png | Bin assets/{ => objects}/blocks/outline.png | Bin assets/{ => objects}/blocks/pattern.png | Bin assets/{ => objects}/blocks/puzzle.png | Bin assets/{ => objects}/blocks/rainbow.png | Bin assets/{ => objects}/blocks/rock.png | Bin assets/{ => objects}/blocks/rock2.png | Bin assets/{ => objects}/blocks/squares-color.png | Bin assets/{ => objects}/blocks/squares.png | Bin .../blocks/the-confusing-one.png | Bin .../{ => objects}/blocks/triangles-color.png | Bin assets/{ => objects}/blocks/triangles.png | Bin assets/{ => objects}/blocks/wavy-color.png | Bin assets/{ => objects}/blocks/wavy.png | Bin assets/{ => objects}/blocks/wood.png | Bin .../{obj-breakable.png => breakable.png} | Bin assets/objects/{obj-cloud.png => cloud.png} | Bin assets/objects/{obj-coin.png => coin.png} | Bin .../{obj-collision.png => collision.png} | Bin assets/objects/{obj-fire.png => fire.png} | Bin assets/objects/{obj-glow.png => glow.png} | Bin assets/objects/{obj-hand.png => hand.png} | Bin .../{obj-invisible.png => invisible.png} | Bin .../objects/{obj-monster.png => monster.png} | Bin .../objects/{orb-black.png => orbs/black.png} | Bin .../objects/{orb-blue.png => orbs/blue.png} | Bin .../objects/{orb-green.png => orbs/green.png} | Bin .../{orb-greenDash.png => orbs/greenDash.png} | Bin .../objects/{orb-pink.png => orbs/pink.png} | Bin .../{orb-pinkDash.png => orbs/pinkDash.png} | Bin assets/objects/{orb-red.png => orbs/red.png} | Bin .../{orb-trigger.png => orbs/trigger.png} | Bin .../{orb-yellow.png => orbs/yellow.png} | Bin .../{obj-particle.png => particle.png} | Bin assets/objects/{obj-pickup.png => pickup.png} | Bin assets/objects/{obj-pixel.png => pixel.png} | Bin .../{portal--1x.png => portals/-1x.png} | Bin .../objects/{portal-1x.png => portals/1x.png} | Bin .../objects/{portal-2x.png => portals/2x.png} | Bin .../objects/{portal-3x.png => portals/3x.png} | Bin .../objects/{portal-4x.png => portals/4x.png} | Bin .../{portal-ball.png => portals/ball.png} | Bin .../{portal-big.png => portals/big.png} | Bin .../{portal-cube.png => portals/cube.png} | Bin .../{portal-dual.png => portals/dual.png} | Bin .../{portal-mini.png => portals/mini.png} | Bin .../mirrorOff.png} | Bin .../mirrorOn.png} | Bin .../{portal-robot.png => portals/robot.png} | Bin .../{portal-ship.png => portals/ship.png} | Bin .../{portal-single.png => portals/single.png} | Bin .../{portal-spider.png => portals/spider.png} | Bin .../{portal-ufo.png => portals/ufo.png} | Bin .../{portal-wave.png => portals/wave.png} | Bin assets/objects/{obj-pulse.png => pulse.png} | Bin assets/objects/{obj-saw.png => saw.png} | Bin assets/objects/{obj-spike.png => spike.png} | Bin assets/objects/{obj-text.png => text.png} | Bin .../{trigger-Alpha.png => triggers/Alpha.png} | Bin .../Animate.png} | Bin .../BGEffectOff.png} | Bin .../BGEffectOn.png} | Bin .../CameraOffset.png} | Bin .../CameraStatic.png} | Bin .../CameraZoom.png} | Bin .../Collision.png} | Bin .../{trigger-Color.png => triggers/Color.png} | Bin .../{trigger-Count.png => triggers/Count.png} | Bin .../DisableTrail.png} | Bin .../EnableTrail.png} | Bin .../Follow.png} | Bin .../FollowPlayerY.png} | Bin .../HidePlayer.png} | Bin .../InstantCount.png} | Bin .../LevelEnd.png} | Bin .../{trigger-Move.png => triggers/Move.png} | Bin .../OnDeath.png} | Bin .../Pickup.png} | Bin .../{trigger-Pulse.png => triggers/Pulse.png} | Bin .../Random.png} | Bin .../Reverse.png} | Bin .../Rotate.png} | Bin .../{trigger-Shake.png => triggers/Shake.png} | Bin .../ShowPlayer.png} | Bin .../{trigger-Spawn.png => triggers/Spawn.png} | Bin .../StartPos.png} | Bin .../StartPos2.png} | Bin .../{trigger-Stop.png => triggers/Stop.png} | Bin .../Toggle.png} | Bin .../{trigger-Touch.png => triggers/Touch.png} | Bin .../Transition.png} | Bin .../previewicons}/ball-01.png | Bin .../previewicons}/ball-02.png | Bin .../previewicons}/ball-03.png | Bin .../previewicons}/ball-04.png | Bin .../previewicons}/ball-05.png | Bin .../previewicons}/ball-06.png | Bin .../previewicons}/ball-07.png | Bin .../previewicons}/ball-08.png | Bin .../previewicons}/ball-09.png | Bin .../previewicons}/ball-10.png | Bin .../previewicons}/ball-11.png | Bin .../previewicons}/ball-12.png | Bin .../previewicons}/ball-13.png | Bin .../previewicons}/ball-14.png | Bin .../previewicons}/ball-15.png | Bin .../previewicons}/ball-16.png | Bin .../previewicons}/ball-17.png | Bin .../previewicons}/ball-18.png | Bin .../previewicons}/ball-19.png | Bin .../previewicons}/ball-20.png | Bin .../previewicons}/ball-21.png | Bin .../previewicons}/ball-22.png | Bin .../previewicons}/ball-23.png | Bin .../previewicons}/ball-24.png | Bin .../previewicons}/ball-25.png | Bin .../previewicons}/ball-26.png | Bin .../previewicons}/ball-27.png | Bin .../previewicons}/ball-28.png | Bin .../previewicons}/ball-29.png | Bin .../previewicons}/ball-30.png | Bin .../previewicons}/ball-31.png | Bin .../previewicons}/ball-32.png | Bin .../previewicons}/ball-33.png | Bin .../previewicons}/ball-34.png | Bin .../previewicons}/ball-35.png | Bin .../previewicons}/ball-36.png | Bin .../previewicons}/ball-37.png | Bin .../previewicons}/ball-38.png | Bin .../previewicons}/ball-39.png | Bin .../previewicons}/ball-40.png | Bin .../previewicons}/ball-41.png | Bin .../previewicons}/ball-42.png | Bin .../previewicons}/ball-43.png | Bin .../previewicons}/color_0.png | Bin .../previewicons}/color_1.png | Bin .../previewicons}/color_10.png | Bin .../previewicons}/color_11.png | Bin .../previewicons}/color_12.png | Bin .../previewicons}/color_13.png | Bin .../previewicons}/color_14.png | Bin .../previewicons}/color_15.png | Bin .../previewicons}/color_16.png | Bin .../previewicons}/color_17.png | Bin .../previewicons}/color_18.png | Bin .../previewicons}/color_19.png | Bin .../previewicons}/color_2.png | Bin .../previewicons}/color_20.png | Bin .../previewicons}/color_21.png | Bin .../previewicons}/color_22.png | Bin .../previewicons}/color_23.png | Bin .../previewicons}/color_24.png | Bin .../previewicons}/color_25.png | Bin .../previewicons}/color_26.png | Bin .../previewicons}/color_27.png | Bin .../previewicons}/color_28.png | Bin .../previewicons}/color_29.png | Bin .../previewicons}/color_3.png | Bin .../previewicons}/color_30.png | Bin .../previewicons}/color_31.png | Bin .../previewicons}/color_32.png | Bin .../previewicons}/color_33.png | Bin .../previewicons}/color_34.png | Bin .../previewicons}/color_35.png | Bin .../previewicons}/color_36.png | Bin .../previewicons}/color_37.png | Bin .../previewicons}/color_38.png | Bin .../previewicons}/color_39.png | Bin .../previewicons}/color_4.png | Bin .../previewicons}/color_40.png | Bin .../previewicons}/color_41.png | Bin .../previewicons}/color_5.png | Bin .../previewicons}/color_6.png | Bin .../previewicons}/color_7.png | Bin .../previewicons}/color_8.png | Bin .../previewicons}/color_9.png | Bin .../previewicons}/cube-00.png | Bin .../previewicons}/cube-01.png | Bin .../previewicons}/cube-02.png | Bin .../previewicons}/cube-03.png | Bin .../previewicons}/cube-04.png | Bin .../previewicons}/cube-05.png | Bin .../previewicons}/cube-06.png | Bin .../previewicons}/cube-07.png | Bin .../previewicons}/cube-08.png | Bin .../previewicons}/cube-09.png | Bin .../previewicons}/cube-10.png | Bin .../previewicons}/cube-100.png | Bin .../previewicons}/cube-101.png | Bin .../previewicons}/cube-102.png | Bin .../previewicons}/cube-103.png | Bin .../previewicons}/cube-104.png | Bin .../previewicons}/cube-105.png | Bin .../previewicons}/cube-106.png | Bin .../previewicons}/cube-107.png | Bin .../previewicons}/cube-108.png | Bin .../previewicons}/cube-109.png | Bin .../previewicons}/cube-11.png | Bin .../previewicons}/cube-110.png | Bin .../previewicons}/cube-111.png | Bin .../previewicons}/cube-112.png | Bin .../previewicons}/cube-113.png | Bin .../previewicons}/cube-114.png | Bin .../previewicons}/cube-115.png | Bin .../previewicons}/cube-116.png | Bin .../previewicons}/cube-117.png | Bin .../previewicons}/cube-118.png | Bin .../previewicons}/cube-119.png | Bin .../previewicons}/cube-12.png | Bin .../previewicons}/cube-120.png | Bin .../previewicons}/cube-121.png | Bin .../previewicons}/cube-122.png | Bin .../previewicons}/cube-123.png | Bin .../previewicons}/cube-124.png | Bin .../previewicons}/cube-125.png | Bin .../previewicons}/cube-126.png | Bin .../previewicons}/cube-127.png | Bin .../previewicons}/cube-128.png | Bin .../previewicons}/cube-129.png | Bin .../previewicons}/cube-13.png | Bin .../previewicons}/cube-130.png | Bin .../previewicons}/cube-131.png | Bin .../previewicons}/cube-132.png | Bin .../previewicons}/cube-133.png | Bin .../previewicons}/cube-134.png | Bin .../previewicons}/cube-135.png | Bin .../previewicons}/cube-136.png | Bin .../previewicons}/cube-137.png | Bin .../previewicons}/cube-138.png | Bin .../previewicons}/cube-139.png | Bin .../previewicons}/cube-14.png | Bin .../previewicons}/cube-140.png | Bin .../previewicons}/cube-141.png | Bin .../previewicons}/cube-142.png | Bin .../previewicons}/cube-15.png | Bin .../previewicons}/cube-16.png | Bin .../previewicons}/cube-17.png | Bin .../previewicons}/cube-18.png | Bin .../previewicons}/cube-19.png | Bin .../previewicons}/cube-20.png | Bin .../previewicons}/cube-21.png | Bin .../previewicons}/cube-22.png | Bin .../previewicons}/cube-23.png | Bin .../previewicons}/cube-24.png | Bin .../previewicons}/cube-25.png | Bin .../previewicons}/cube-26.png | Bin .../previewicons}/cube-27.png | Bin .../previewicons}/cube-28.png | Bin .../previewicons}/cube-29.png | Bin .../previewicons}/cube-30.png | Bin .../previewicons}/cube-31.png | Bin .../previewicons}/cube-32.png | Bin .../previewicons}/cube-33.png | Bin .../previewicons}/cube-34.png | Bin .../previewicons}/cube-35.png | Bin .../previewicons}/cube-36.png | Bin .../previewicons}/cube-37.png | Bin .../previewicons}/cube-38.png | Bin .../previewicons}/cube-39.png | Bin .../previewicons}/cube-40.png | Bin .../previewicons}/cube-41.png | Bin .../previewicons}/cube-42.png | Bin .../previewicons}/cube-43.png | Bin .../previewicons}/cube-44.png | Bin .../previewicons}/cube-45.png | Bin .../previewicons}/cube-46.png | Bin .../previewicons}/cube-47.png | Bin .../previewicons}/cube-48.png | Bin .../previewicons}/cube-49.png | Bin .../previewicons}/cube-50.png | Bin .../previewicons}/cube-51.png | Bin .../previewicons}/cube-52.png | Bin .../previewicons}/cube-53.png | Bin .../previewicons}/cube-54.png | Bin .../previewicons}/cube-55.png | Bin .../previewicons}/cube-56.png | Bin .../previewicons}/cube-57.png | Bin .../previewicons}/cube-58.png | Bin .../previewicons}/cube-59.png | Bin .../previewicons}/cube-60.png | Bin .../previewicons}/cube-61.png | Bin .../previewicons}/cube-62.png | Bin .../previewicons}/cube-63.png | Bin .../previewicons}/cube-64.png | Bin .../previewicons}/cube-65.png | Bin .../previewicons}/cube-66.png | Bin .../previewicons}/cube-67.png | Bin .../previewicons}/cube-68.png | Bin .../previewicons}/cube-69.png | Bin .../previewicons}/cube-70.png | Bin .../previewicons}/cube-71.png | Bin .../previewicons}/cube-72.png | Bin .../previewicons}/cube-73.png | Bin .../previewicons}/cube-74.png | Bin .../previewicons}/cube-75.png | Bin .../previewicons}/cube-76.png | Bin .../previewicons}/cube-77.png | Bin .../previewicons}/cube-78.png | Bin .../previewicons}/cube-79.png | Bin .../previewicons}/cube-80.png | Bin .../previewicons}/cube-81.png | Bin .../previewicons}/cube-82.png | Bin .../previewicons}/cube-83.png | Bin .../previewicons}/cube-84.png | Bin .../previewicons}/cube-85.png | Bin .../previewicons}/cube-86.png | Bin .../previewicons}/cube-87.png | Bin .../previewicons}/cube-88.png | Bin .../previewicons}/cube-89.png | Bin .../previewicons}/cube-90.png | Bin .../previewicons}/cube-91.png | Bin .../previewicons}/cube-92.png | Bin .../previewicons}/cube-93.png | Bin .../previewicons}/cube-94.png | Bin .../previewicons}/cube-95.png | Bin .../previewicons}/cube-96.png | Bin .../previewicons}/cube-97.png | Bin .../previewicons}/cube-98.png | Bin .../previewicons}/cube-99.png | Bin .../previewicons}/robot-01.png | Bin .../previewicons}/robot-02.png | Bin .../previewicons}/robot-03.png | Bin .../previewicons}/robot-04.png | Bin .../previewicons}/robot-05.png | Bin .../previewicons}/robot-06.png | Bin .../previewicons}/robot-07.png | Bin .../previewicons}/robot-08.png | Bin .../previewicons}/robot-09.png | Bin .../previewicons}/robot-10.png | Bin .../previewicons}/robot-11.png | Bin .../previewicons}/robot-12.png | Bin .../previewicons}/robot-13.png | Bin .../previewicons}/robot-14.png | Bin .../previewicons}/robot-15.png | Bin .../previewicons}/robot-16.png | Bin .../previewicons}/robot-17.png | Bin .../previewicons}/robot-18.png | Bin .../previewicons}/robot-19.png | Bin .../previewicons}/robot-20.png | Bin .../previewicons}/robot-21.png | Bin .../previewicons}/robot-22.png | Bin .../previewicons}/robot-23.png | Bin .../previewicons}/robot-24.png | Bin .../previewicons}/robot-25.png | Bin .../previewicons}/robot-26.png | Bin .../previewicons}/ship-01.png | Bin .../previewicons}/ship-02.png | Bin .../previewicons}/ship-03.png | Bin .../previewicons}/ship-04.png | Bin .../previewicons}/ship-05.png | Bin .../previewicons}/ship-06.png | Bin .../previewicons}/ship-07.png | Bin .../previewicons}/ship-08.png | Bin .../previewicons}/ship-09.png | Bin .../previewicons}/ship-10.png | Bin .../previewicons}/ship-11.png | Bin .../previewicons}/ship-12.png | Bin .../previewicons}/ship-13.png | Bin .../previewicons}/ship-14.png | Bin .../previewicons}/ship-15.png | Bin .../previewicons}/ship-16.png | Bin .../previewicons}/ship-17.png | Bin .../previewicons}/ship-18.png | Bin .../previewicons}/ship-19.png | Bin .../previewicons}/ship-20.png | Bin .../previewicons}/ship-21.png | Bin .../previewicons}/ship-22.png | Bin .../previewicons}/ship-23.png | Bin .../previewicons}/ship-24.png | Bin .../previewicons}/ship-25.png | Bin .../previewicons}/ship-26.png | Bin .../previewicons}/ship-27.png | Bin .../previewicons}/ship-28.png | Bin .../previewicons}/ship-29.png | Bin .../previewicons}/ship-30.png | Bin .../previewicons}/ship-31.png | Bin .../previewicons}/ship-32.png | Bin .../previewicons}/ship-33.png | Bin .../previewicons}/ship-34.png | Bin .../previewicons}/ship-35.png | Bin .../previewicons}/ship-36.png | Bin .../previewicons}/ship-37.png | Bin .../previewicons}/ship-38.png | Bin .../previewicons}/ship-39.png | Bin .../previewicons}/ship-40.png | Bin .../previewicons}/ship-41.png | Bin .../previewicons}/ship-42.png | Bin .../previewicons}/ship-43.png | Bin .../previewicons}/ship-44.png | Bin .../previewicons}/ship-45.png | Bin .../previewicons}/ship-46.png | Bin .../previewicons}/ship-47.png | Bin .../previewicons}/ship-48.png | Bin .../previewicons}/ship-49.png | Bin .../previewicons}/ship-50.png | Bin .../previewicons}/ship-51.png | Bin .../previewicons}/spider-01.png | Bin .../previewicons}/spider-02.png | Bin .../previewicons}/spider-03.png | Bin .../previewicons}/spider-04.png | Bin .../previewicons}/spider-05.png | Bin .../previewicons}/spider-06.png | Bin .../previewicons}/spider-07.png | Bin .../previewicons}/spider-08.png | Bin .../previewicons}/spider-09.png | Bin .../previewicons}/spider-10.png | Bin .../previewicons}/spider-11.png | Bin .../previewicons}/spider-12.png | Bin .../previewicons}/spider-13.png | Bin .../previewicons}/spider-14.png | Bin .../previewicons}/spider-15.png | Bin .../previewicons}/spider-16.png | Bin .../previewicons}/spider-17.png | Bin .../previewicons}/swing-01.png | Bin .../previewicons}/ufo-01.png | Bin .../previewicons}/ufo-02.png | Bin .../previewicons}/ufo-03.png | Bin .../previewicons}/ufo-04.png | Bin .../previewicons}/ufo-05.png | Bin .../previewicons}/ufo-06.png | Bin .../previewicons}/ufo-07.png | Bin .../previewicons}/ufo-08.png | Bin .../previewicons}/ufo-09.png | Bin .../previewicons}/ufo-10.png | Bin .../previewicons}/ufo-11.png | Bin .../previewicons}/ufo-12.png | Bin .../previewicons}/ufo-13.png | Bin .../previewicons}/ufo-14.png | Bin .../previewicons}/ufo-15.png | Bin .../previewicons}/ufo-16.png | Bin .../previewicons}/ufo-17.png | Bin .../previewicons}/ufo-18.png | Bin .../previewicons}/ufo-19.png | Bin .../previewicons}/ufo-20.png | Bin .../previewicons}/ufo-21.png | Bin .../previewicons}/ufo-22.png | Bin .../previewicons}/ufo-23.png | Bin .../previewicons}/ufo-24.png | Bin .../previewicons}/ufo-25.png | Bin .../previewicons}/ufo-26.png | Bin .../previewicons}/ufo-27.png | Bin .../previewicons}/ufo-28.png | Bin .../previewicons}/ufo-29.png | Bin .../previewicons}/ufo-30.png | Bin .../previewicons}/ufo-31.png | Bin .../previewicons}/ufo-32.png | Bin .../previewicons}/ufo-33.png | Bin .../previewicons}/ufo-34.png | Bin .../previewicons}/ufo-35.png | Bin .../previewicons}/wave-01.png | Bin .../previewicons}/wave-02.png | Bin .../previewicons}/wave-03.png | Bin .../previewicons}/wave-04.png | Bin .../previewicons}/wave-05.png | Bin .../previewicons}/wave-06.png | Bin .../previewicons}/wave-07.png | Bin .../previewicons}/wave-08.png | Bin .../previewicons}/wave-09.png | Bin .../previewicons}/wave-10.png | Bin .../previewicons}/wave-11.png | Bin .../previewicons}/wave-12.png | Bin .../previewicons}/wave-13.png | Bin .../previewicons}/wave-14.png | Bin .../previewicons}/wave-15.png | Bin .../previewicons}/wave-16.png | Bin .../previewicons}/wave-17.png | Bin .../previewicons}/wave-18.png | Bin .../previewicons}/wave-19.png | Bin .../previewicons}/wave-20.png | Bin .../previewicons}/wave-21.png | Bin .../previewicons}/wave-22.png | Bin .../previewicons}/wave-23.png | Bin .../previewicons}/wave-24.png | Bin .../previewicons}/wave-25.png | Bin .../previewicons}/wave-26.png | Bin .../previewicons}/wave-27.png | Bin .../previewicons}/wave-28.png | Bin .../previewicons}/wave-29.png | Bin .../previewicons}/wave-30.png | Bin .../previewicons}/wave-31.png | Bin .../previewicons}/wave-32.png | Bin .../previewicons}/wave-33.png | Bin .../previewicons}/wave-34.png | Bin .../previewicons}/wave-35.png | Bin assets/trophy2.png | Bin 0 -> 4903 bytes assets/trophyButton.png | Bin 0 -> 11298 bytes assets/ulButton.png | Bin 13700 -> 13691 bytes html/analyze.html | 32 ++++---- html/api.html | 20 ++--- html/assets.html | 57 ++++++++++++++ html/boomlings.html | 6 +- html/comingsoon.html | 2 +- html/comments.html | 6 +- html/demon.html | 19 ++--- html/filters.html | 40 +++++----- html/gauntlets.html | 6 +- html/home.html | 10 ++- html/iconkit.html | 24 +++--- html/leaderboard.html | 8 +- html/level.html | 21 ++--- html/levelboard.html | 6 +- html/mappacks.html | 6 +- html/messages.html | 4 +- html/offline.html | 4 +- html/profile.html | 9 +-- html/search.html | 33 +++++--- index.js | 45 ++++++----- misc/credits.json | 17 ++--- {assets => misc}/dragscroll.js | 0 misc/mapPacks.json | 72 ------------------ settings.js | 1 - 638 files changed, 311 insertions(+), 267 deletions(-) create mode 100644 assets/deatheffects/0.png rename assets/{gdfaces => difficulties}/auto-epic.png (100%) rename assets/{gdfaces => difficulties}/auto-featured.png (100%) rename assets/{gdfaces => difficulties}/auto.png (100%) rename assets/{gdfaces => difficulties}/demon-easy-epic.png (100%) rename assets/{gdfaces => difficulties}/demon-easy-featured.png (100%) rename assets/{gdfaces => difficulties}/demon-easy.png (100%) rename assets/{gdfaces => difficulties}/demon-epic.png (100%) rename assets/{gdfaces => difficulties}/demon-extreme-epic.png (100%) rename assets/{gdfaces => difficulties}/demon-extreme-featured.png (100%) rename assets/{gdfaces => difficulties}/demon-extreme.png (100%) rename assets/{gdfaces => difficulties}/demon-featured.png (100%) rename assets/{gdfaces => difficulties}/demon-hard-epic.png (100%) rename assets/{gdfaces => difficulties}/demon-hard-featured.png (100%) rename assets/{gdfaces => difficulties}/demon-hard.png (100%) rename assets/{gdfaces => difficulties}/demon-insane-epic.png (100%) rename assets/{gdfaces => difficulties}/demon-insane-featured.png (100%) rename assets/{gdfaces => difficulties}/demon-insane.png (100%) rename assets/{gdfaces => difficulties}/demon-medium-epic.png (100%) rename assets/{gdfaces => difficulties}/demon-medium-featured.png (100%) rename assets/{gdfaces => difficulties}/demon-medium.png (100%) rename assets/{gdfaces => difficulties}/demon.png (100%) rename assets/{gdfaces => difficulties}/easy-epic.png (100%) rename assets/{gdfaces => difficulties}/easy-featured.png (100%) rename assets/{gdfaces => difficulties}/easy.png (100%) rename assets/{gdfaces => difficulties}/hard-epic.png (100%) rename assets/{gdfaces => difficulties}/hard-featured.png (100%) rename assets/{gdfaces => difficulties}/hard.png (100%) rename assets/{gdfaces => difficulties}/harder-epic.png (100%) rename assets/{gdfaces => difficulties}/harder-featured.png (100%) rename assets/{gdfaces => difficulties}/harder.png (100%) rename assets/{gdfaces => difficulties}/insane-epic.png (100%) rename assets/{gdfaces => difficulties}/insane-featured.png (100%) rename assets/{gdfaces => difficulties}/insane.png (100%) rename assets/{gdfaces => difficulties}/normal-epic.png (100%) rename assets/{gdfaces => difficulties}/normal-featured.png (100%) rename assets/{gdfaces => difficulties}/normal.png (100%) rename assets/{gdfaces => difficulties}/unrated-epic.png (100%) rename assets/{gdfaces => difficulties}/unrated-featured.png (100%) rename assets/{gdfaces => difficulties}/unrated.png (100%) delete mode 100644 assets/iconkitbuttons/wave_off - Copy.png delete mode 100644 assets/iconkitbuttons/wave_on - Copy.png rename assets/{initial => levelstyle}/bg-1.png (100%) rename assets/{initial => levelstyle}/bg-10.png (100%) rename assets/{initial => levelstyle}/bg-11.png (100%) rename assets/{initial => levelstyle}/bg-12.png (100%) rename assets/{initial => levelstyle}/bg-13.png (100%) rename assets/{initial => levelstyle}/bg-14.png (100%) rename assets/{initial => levelstyle}/bg-15.png (100%) rename assets/{initial => levelstyle}/bg-16.png (100%) rename assets/{initial => levelstyle}/bg-17.png (100%) rename assets/{initial => levelstyle}/bg-18.png (100%) rename assets/{initial => levelstyle}/bg-19.png (100%) rename assets/{initial => levelstyle}/bg-2.png (100%) rename assets/{initial => levelstyle}/bg-20.png (100%) rename assets/{initial => levelstyle}/bg-3.png (100%) rename assets/{initial => levelstyle}/bg-4.png (100%) rename assets/{initial => levelstyle}/bg-5.png (100%) rename assets/{initial => levelstyle}/bg-6.png (100%) rename assets/{initial => levelstyle}/bg-7.png (100%) rename assets/{initial => levelstyle}/bg-8.png (100%) rename assets/{initial => levelstyle}/bg-9.png (100%) rename assets/{initial => levelstyle}/font-1.png (100%) rename assets/{initial => levelstyle}/font-10.png (100%) rename assets/{initial => levelstyle}/font-11.png (100%) rename assets/{initial => levelstyle}/font-12.png (100%) rename assets/{initial => levelstyle}/font-2.png (100%) rename assets/{initial => levelstyle}/font-3.png (100%) rename assets/{initial => levelstyle}/font-4.png (100%) rename assets/{initial => levelstyle}/font-5.png (100%) rename assets/{initial => levelstyle}/font-6.png (100%) rename assets/{initial => levelstyle}/font-7.png (100%) rename assets/{initial => levelstyle}/font-8.png (100%) rename assets/{initial => levelstyle}/font-9.png (100%) rename assets/{initial => levelstyle}/gr-1.png (100%) rename assets/{initial => levelstyle}/gr-10.png (100%) rename assets/{initial => levelstyle}/gr-11.png (100%) rename assets/{initial => levelstyle}/gr-12.png (100%) rename assets/{initial => levelstyle}/gr-13.png (100%) rename assets/{initial => levelstyle}/gr-14.png (100%) rename assets/{initial => levelstyle}/gr-15.png (100%) rename assets/{initial => levelstyle}/gr-16.png (100%) rename assets/{initial => levelstyle}/gr-17.png (100%) rename assets/{initial => levelstyle}/gr-2.png (100%) rename assets/{initial => levelstyle}/gr-3.png (100%) rename assets/{initial => levelstyle}/gr-4.png (100%) rename assets/{initial => levelstyle}/gr-5.png (100%) rename assets/{initial => levelstyle}/gr-6.png (100%) rename assets/{initial => levelstyle}/gr-7.png (100%) rename assets/{initial => levelstyle}/gr-8.png (100%) rename assets/{initial => levelstyle}/gr-9.png (100%) rename assets/{initial => levelstyle}/line-1.png (100%) rename assets/{initial => levelstyle}/line-2.png (100%) rename assets/{initial => levelstyle}/mode-2p.png (100%) rename assets/objects/{obj-arrow.png => arrow.png} (100%) rename assets/{ => objects}/blocks/black.png (100%) rename assets/{ => objects}/blocks/brick-color.png (100%) rename assets/{ => objects}/blocks/brick.png (100%) rename assets/{ => objects}/blocks/brick2.png (100%) rename assets/{ => objects}/blocks/brick3.png (100%) rename assets/{ => objects}/blocks/chipped-color.png (100%) rename assets/{ => objects}/blocks/chipped.png (100%) rename assets/{ => objects}/blocks/classic.png (100%) rename assets/{ => objects}/blocks/color.png (100%) rename assets/{ => objects}/blocks/cracked.png (100%) rename assets/{ => objects}/blocks/cracked2.png (100%) rename assets/{ => objects}/blocks/crystal.png (100%) rename assets/{ => objects}/blocks/edge.png (100%) rename assets/{ => objects}/blocks/electric.png (100%) rename assets/{ => objects}/blocks/electric2.png (100%) rename assets/{ => objects}/blocks/electric3.png (100%) rename assets/{ => objects}/blocks/electro.png (100%) rename assets/{ => objects}/blocks/glass.png (100%) rename assets/{ => objects}/blocks/grass-color.png (100%) rename assets/{ => objects}/blocks/grass.png (100%) rename assets/{ => objects}/blocks/mech-color.png (100%) rename assets/{ => objects}/blocks/mech-dark.png (100%) rename assets/{ => objects}/blocks/mech.png (100%) rename assets/{ => objects}/blocks/moon.png (100%) rename assets/{ => objects}/blocks/outline.png (100%) rename assets/{ => objects}/blocks/pattern.png (100%) rename assets/{ => objects}/blocks/puzzle.png (100%) rename assets/{ => objects}/blocks/rainbow.png (100%) rename assets/{ => objects}/blocks/rock.png (100%) rename assets/{ => objects}/blocks/rock2.png (100%) rename assets/{ => objects}/blocks/squares-color.png (100%) rename assets/{ => objects}/blocks/squares.png (100%) rename assets/{ => objects}/blocks/the-confusing-one.png (100%) rename assets/{ => objects}/blocks/triangles-color.png (100%) rename assets/{ => objects}/blocks/triangles.png (100%) rename assets/{ => objects}/blocks/wavy-color.png (100%) rename assets/{ => objects}/blocks/wavy.png (100%) rename assets/{ => objects}/blocks/wood.png (100%) rename assets/objects/{obj-breakable.png => breakable.png} (100%) rename assets/objects/{obj-cloud.png => cloud.png} (100%) rename assets/objects/{obj-coin.png => coin.png} (100%) rename assets/objects/{obj-collision.png => collision.png} (100%) rename assets/objects/{obj-fire.png => fire.png} (100%) rename assets/objects/{obj-glow.png => glow.png} (100%) rename assets/objects/{obj-hand.png => hand.png} (100%) rename assets/objects/{obj-invisible.png => invisible.png} (100%) rename assets/objects/{obj-monster.png => monster.png} (100%) rename assets/objects/{orb-black.png => orbs/black.png} (100%) rename assets/objects/{orb-blue.png => orbs/blue.png} (100%) rename assets/objects/{orb-green.png => orbs/green.png} (100%) rename assets/objects/{orb-greenDash.png => orbs/greenDash.png} (100%) rename assets/objects/{orb-pink.png => orbs/pink.png} (100%) rename assets/objects/{orb-pinkDash.png => orbs/pinkDash.png} (100%) rename assets/objects/{orb-red.png => orbs/red.png} (100%) rename assets/objects/{orb-trigger.png => orbs/trigger.png} (100%) rename assets/objects/{orb-yellow.png => orbs/yellow.png} (100%) rename assets/objects/{obj-particle.png => particle.png} (100%) rename assets/objects/{obj-pickup.png => pickup.png} (100%) rename assets/objects/{obj-pixel.png => pixel.png} (100%) rename assets/objects/{portal--1x.png => portals/-1x.png} (100%) rename assets/objects/{portal-1x.png => portals/1x.png} (100%) rename assets/objects/{portal-2x.png => portals/2x.png} (100%) rename assets/objects/{portal-3x.png => portals/3x.png} (100%) rename assets/objects/{portal-4x.png => portals/4x.png} (100%) rename assets/objects/{portal-ball.png => portals/ball.png} (100%) rename assets/objects/{portal-big.png => portals/big.png} (100%) rename assets/objects/{portal-cube.png => portals/cube.png} (100%) rename assets/objects/{portal-dual.png => portals/dual.png} (100%) rename assets/objects/{portal-mini.png => portals/mini.png} (100%) rename assets/objects/{portal-mirrorOff.png => portals/mirrorOff.png} (100%) rename assets/objects/{portal-mirrorOn.png => portals/mirrorOn.png} (100%) rename assets/objects/{portal-robot.png => portals/robot.png} (100%) rename assets/objects/{portal-ship.png => portals/ship.png} (100%) rename assets/objects/{portal-single.png => portals/single.png} (100%) rename assets/objects/{portal-spider.png => portals/spider.png} (100%) rename assets/objects/{portal-ufo.png => portals/ufo.png} (100%) rename assets/objects/{portal-wave.png => portals/wave.png} (100%) rename assets/objects/{obj-pulse.png => pulse.png} (100%) rename assets/objects/{obj-saw.png => saw.png} (100%) rename assets/objects/{obj-spike.png => spike.png} (100%) rename assets/objects/{obj-text.png => text.png} (100%) rename assets/objects/{trigger-Alpha.png => triggers/Alpha.png} (100%) rename assets/objects/{trigger-Animate.png => triggers/Animate.png} (100%) rename assets/objects/{trigger-BGEffectOff.png => triggers/BGEffectOff.png} (100%) rename assets/objects/{trigger-BGEffectOn.png => triggers/BGEffectOn.png} (100%) rename assets/objects/{trigger-CameraOffset.png => triggers/CameraOffset.png} (100%) rename assets/objects/{trigger-CameraStatic.png => triggers/CameraStatic.png} (100%) rename assets/objects/{trigger-CameraZoom.png => triggers/CameraZoom.png} (100%) rename assets/objects/{trigger-Collision.png => triggers/Collision.png} (100%) rename assets/objects/{trigger-Color.png => triggers/Color.png} (100%) rename assets/objects/{trigger-Count.png => triggers/Count.png} (100%) rename assets/objects/{trigger-DisableTrail.png => triggers/DisableTrail.png} (100%) rename assets/objects/{trigger-EnableTrail.png => triggers/EnableTrail.png} (100%) rename assets/objects/{trigger-Follow.png => triggers/Follow.png} (100%) rename assets/objects/{trigger-FollowPlayerY.png => triggers/FollowPlayerY.png} (100%) rename assets/objects/{trigger-HidePlayer.png => triggers/HidePlayer.png} (100%) rename assets/objects/{trigger-InstantCount.png => triggers/InstantCount.png} (100%) rename assets/objects/{trigger-LevelEnd.png => triggers/LevelEnd.png} (100%) rename assets/objects/{trigger-Move.png => triggers/Move.png} (100%) rename assets/objects/{trigger-OnDeath.png => triggers/OnDeath.png} (100%) rename assets/objects/{trigger-Pickup.png => triggers/Pickup.png} (100%) rename assets/objects/{trigger-Pulse.png => triggers/Pulse.png} (100%) rename assets/objects/{trigger-Random.png => triggers/Random.png} (100%) rename assets/objects/{trigger-Reverse.png => triggers/Reverse.png} (100%) rename assets/objects/{trigger-Rotate.png => triggers/Rotate.png} (100%) rename assets/objects/{trigger-Shake.png => triggers/Shake.png} (100%) rename assets/objects/{trigger-ShowPlayer.png => triggers/ShowPlayer.png} (100%) rename assets/objects/{trigger-Spawn.png => triggers/Spawn.png} (100%) rename assets/objects/{trigger-StartPos.png => triggers/StartPos.png} (100%) rename assets/objects/{trigger-StartPos2.png => triggers/StartPos2.png} (100%) rename assets/objects/{trigger-Stop.png => triggers/Stop.png} (100%) rename assets/objects/{trigger-Toggle.png => triggers/Toggle.png} (100%) rename assets/objects/{trigger-Touch.png => triggers/Touch.png} (100%) rename assets/objects/{trigger-Transition.png => triggers/Transition.png} (100%) rename {icons/preview => assets/previewicons}/ball-01.png (100%) rename {icons/preview => assets/previewicons}/ball-02.png (100%) rename {icons/preview => assets/previewicons}/ball-03.png (100%) rename {icons/preview => assets/previewicons}/ball-04.png (100%) rename {icons/preview => assets/previewicons}/ball-05.png (100%) rename {icons/preview => assets/previewicons}/ball-06.png (100%) rename {icons/preview => assets/previewicons}/ball-07.png (100%) rename {icons/preview => assets/previewicons}/ball-08.png (100%) rename {icons/preview => assets/previewicons}/ball-09.png (100%) rename {icons/preview => assets/previewicons}/ball-10.png (100%) rename {icons/preview => assets/previewicons}/ball-11.png (100%) rename {icons/preview => assets/previewicons}/ball-12.png (100%) rename {icons/preview => assets/previewicons}/ball-13.png (100%) rename {icons/preview => assets/previewicons}/ball-14.png (100%) rename {icons/preview => assets/previewicons}/ball-15.png (100%) rename {icons/preview => assets/previewicons}/ball-16.png (100%) rename {icons/preview => assets/previewicons}/ball-17.png (100%) rename {icons/preview => assets/previewicons}/ball-18.png (100%) rename {icons/preview => assets/previewicons}/ball-19.png (100%) rename {icons/preview => assets/previewicons}/ball-20.png (100%) rename {icons/preview => assets/previewicons}/ball-21.png (100%) rename {icons/preview => assets/previewicons}/ball-22.png (100%) rename {icons/preview => assets/previewicons}/ball-23.png (100%) rename {icons/preview => assets/previewicons}/ball-24.png (100%) rename {icons/preview => assets/previewicons}/ball-25.png (100%) rename {icons/preview => assets/previewicons}/ball-26.png (100%) rename {icons/preview => assets/previewicons}/ball-27.png (100%) rename {icons/preview => assets/previewicons}/ball-28.png (100%) rename {icons/preview => assets/previewicons}/ball-29.png (100%) rename {icons/preview => assets/previewicons}/ball-30.png (100%) rename {icons/preview => assets/previewicons}/ball-31.png (100%) rename {icons/preview => assets/previewicons}/ball-32.png (100%) rename {icons/preview => assets/previewicons}/ball-33.png (100%) rename {icons/preview => assets/previewicons}/ball-34.png (100%) rename {icons/preview => assets/previewicons}/ball-35.png (100%) rename {icons/preview => assets/previewicons}/ball-36.png (100%) rename {icons/preview => assets/previewicons}/ball-37.png (100%) rename {icons/preview => assets/previewicons}/ball-38.png (100%) rename {icons/preview => assets/previewicons}/ball-39.png (100%) rename {icons/preview => assets/previewicons}/ball-40.png (100%) rename {icons/preview => assets/previewicons}/ball-41.png (100%) rename {icons/preview => assets/previewicons}/ball-42.png (100%) rename {icons/preview => assets/previewicons}/ball-43.png (100%) rename {icons/preview => assets/previewicons}/color_0.png (100%) rename {icons/preview => assets/previewicons}/color_1.png (100%) rename {icons/preview => assets/previewicons}/color_10.png (100%) rename {icons/preview => assets/previewicons}/color_11.png (100%) rename {icons/preview => assets/previewicons}/color_12.png (100%) rename {icons/preview => assets/previewicons}/color_13.png (100%) rename {icons/preview => assets/previewicons}/color_14.png (100%) rename {icons/preview => assets/previewicons}/color_15.png (100%) rename {icons/preview => assets/previewicons}/color_16.png (100%) rename {icons/preview => assets/previewicons}/color_17.png (100%) rename {icons/preview => assets/previewicons}/color_18.png (100%) rename {icons/preview => assets/previewicons}/color_19.png (100%) rename {icons/preview => assets/previewicons}/color_2.png (100%) rename {icons/preview => assets/previewicons}/color_20.png (100%) rename {icons/preview => assets/previewicons}/color_21.png (100%) rename {icons/preview => assets/previewicons}/color_22.png (100%) rename {icons/preview => assets/previewicons}/color_23.png (100%) rename {icons/preview => assets/previewicons}/color_24.png (100%) rename {icons/preview => assets/previewicons}/color_25.png (100%) rename {icons/preview => assets/previewicons}/color_26.png (100%) rename {icons/preview => assets/previewicons}/color_27.png (100%) rename {icons/preview => assets/previewicons}/color_28.png (100%) rename {icons/preview => assets/previewicons}/color_29.png (100%) rename {icons/preview => assets/previewicons}/color_3.png (100%) rename {icons/preview => assets/previewicons}/color_30.png (100%) rename {icons/preview => assets/previewicons}/color_31.png (100%) rename {icons/preview => assets/previewicons}/color_32.png (100%) rename {icons/preview => assets/previewicons}/color_33.png (100%) rename {icons/preview => assets/previewicons}/color_34.png (100%) rename {icons/preview => assets/previewicons}/color_35.png (100%) rename {icons/preview => assets/previewicons}/color_36.png (100%) rename {icons/preview => assets/previewicons}/color_37.png (100%) rename {icons/preview => assets/previewicons}/color_38.png (100%) rename {icons/preview => assets/previewicons}/color_39.png (100%) rename {icons/preview => assets/previewicons}/color_4.png (100%) rename {icons/preview => assets/previewicons}/color_40.png (100%) rename {icons/preview => assets/previewicons}/color_41.png (100%) rename {icons/preview => assets/previewicons}/color_5.png (100%) rename {icons/preview => assets/previewicons}/color_6.png (100%) rename {icons/preview => assets/previewicons}/color_7.png (100%) rename {icons/preview => assets/previewicons}/color_8.png (100%) rename {icons/preview => assets/previewicons}/color_9.png (100%) rename {icons/preview => assets/previewicons}/cube-00.png (100%) rename {icons/preview => assets/previewicons}/cube-01.png (100%) rename {icons/preview => assets/previewicons}/cube-02.png (100%) rename {icons/preview => assets/previewicons}/cube-03.png (100%) rename {icons/preview => assets/previewicons}/cube-04.png (100%) rename {icons/preview => assets/previewicons}/cube-05.png (100%) rename {icons/preview => assets/previewicons}/cube-06.png (100%) rename {icons/preview => assets/previewicons}/cube-07.png (100%) rename {icons/preview => assets/previewicons}/cube-08.png (100%) rename {icons/preview => assets/previewicons}/cube-09.png (100%) rename {icons/preview => assets/previewicons}/cube-10.png (100%) rename {icons/preview => assets/previewicons}/cube-100.png (100%) rename {icons/preview => assets/previewicons}/cube-101.png (100%) rename {icons/preview => assets/previewicons}/cube-102.png (100%) rename {icons/preview => assets/previewicons}/cube-103.png (100%) rename {icons/preview => assets/previewicons}/cube-104.png (100%) rename {icons/preview => assets/previewicons}/cube-105.png (100%) rename {icons/preview => assets/previewicons}/cube-106.png (100%) rename {icons/preview => assets/previewicons}/cube-107.png (100%) rename {icons/preview => assets/previewicons}/cube-108.png (100%) rename {icons/preview => assets/previewicons}/cube-109.png (100%) rename {icons/preview => assets/previewicons}/cube-11.png (100%) rename {icons/preview => assets/previewicons}/cube-110.png (100%) rename {icons/preview => assets/previewicons}/cube-111.png (100%) rename {icons/preview => assets/previewicons}/cube-112.png (100%) rename {icons/preview => assets/previewicons}/cube-113.png (100%) rename {icons/preview => assets/previewicons}/cube-114.png (100%) rename {icons/preview => assets/previewicons}/cube-115.png (100%) rename {icons/preview => assets/previewicons}/cube-116.png (100%) rename {icons/preview => assets/previewicons}/cube-117.png (100%) rename {icons/preview => assets/previewicons}/cube-118.png (100%) rename {icons/preview => assets/previewicons}/cube-119.png (100%) rename {icons/preview => assets/previewicons}/cube-12.png (100%) rename {icons/preview => assets/previewicons}/cube-120.png (100%) rename {icons/preview => assets/previewicons}/cube-121.png (100%) rename {icons/preview => assets/previewicons}/cube-122.png (100%) rename {icons/preview => assets/previewicons}/cube-123.png (100%) rename {icons/preview => assets/previewicons}/cube-124.png (100%) rename {icons/preview => assets/previewicons}/cube-125.png (100%) rename {icons/preview => assets/previewicons}/cube-126.png (100%) rename {icons/preview => assets/previewicons}/cube-127.png (100%) rename {icons/preview => assets/previewicons}/cube-128.png (100%) rename {icons/preview => assets/previewicons}/cube-129.png (100%) rename {icons/preview => assets/previewicons}/cube-13.png (100%) rename {icons/preview => assets/previewicons}/cube-130.png (100%) rename {icons/preview => assets/previewicons}/cube-131.png (100%) rename {icons/preview => assets/previewicons}/cube-132.png (100%) rename {icons/preview => assets/previewicons}/cube-133.png (100%) rename {icons/preview => assets/previewicons}/cube-134.png (100%) rename {icons/preview => assets/previewicons}/cube-135.png (100%) rename {icons/preview => assets/previewicons}/cube-136.png (100%) rename {icons/preview => assets/previewicons}/cube-137.png (100%) rename {icons/preview => assets/previewicons}/cube-138.png (100%) rename {icons/preview => assets/previewicons}/cube-139.png (100%) rename {icons/preview => assets/previewicons}/cube-14.png (100%) rename {icons/preview => assets/previewicons}/cube-140.png (100%) rename {icons/preview => assets/previewicons}/cube-141.png (100%) rename {icons/preview => assets/previewicons}/cube-142.png (100%) rename {icons/preview => assets/previewicons}/cube-15.png (100%) rename {icons/preview => assets/previewicons}/cube-16.png (100%) rename {icons/preview => assets/previewicons}/cube-17.png (100%) rename {icons/preview => assets/previewicons}/cube-18.png (100%) rename {icons/preview => assets/previewicons}/cube-19.png (100%) rename {icons/preview => assets/previewicons}/cube-20.png (100%) rename {icons/preview => assets/previewicons}/cube-21.png (100%) rename {icons/preview => assets/previewicons}/cube-22.png (100%) rename {icons/preview => assets/previewicons}/cube-23.png (100%) rename {icons/preview => assets/previewicons}/cube-24.png (100%) rename {icons/preview => assets/previewicons}/cube-25.png (100%) rename {icons/preview => assets/previewicons}/cube-26.png (100%) rename {icons/preview => assets/previewicons}/cube-27.png (100%) rename {icons/preview => assets/previewicons}/cube-28.png (100%) rename {icons/preview => assets/previewicons}/cube-29.png (100%) rename {icons/preview => assets/previewicons}/cube-30.png (100%) rename {icons/preview => assets/previewicons}/cube-31.png (100%) rename {icons/preview => assets/previewicons}/cube-32.png (100%) rename {icons/preview => assets/previewicons}/cube-33.png (100%) rename {icons/preview => assets/previewicons}/cube-34.png (100%) rename {icons/preview => assets/previewicons}/cube-35.png (100%) rename {icons/preview => assets/previewicons}/cube-36.png (100%) rename {icons/preview => assets/previewicons}/cube-37.png (100%) rename {icons/preview => assets/previewicons}/cube-38.png (100%) rename {icons/preview => assets/previewicons}/cube-39.png (100%) rename {icons/preview => assets/previewicons}/cube-40.png (100%) rename {icons/preview => assets/previewicons}/cube-41.png (100%) rename {icons/preview => assets/previewicons}/cube-42.png (100%) rename {icons/preview => assets/previewicons}/cube-43.png (100%) rename {icons/preview => assets/previewicons}/cube-44.png (100%) rename {icons/preview => assets/previewicons}/cube-45.png (100%) rename {icons/preview => assets/previewicons}/cube-46.png (100%) rename {icons/preview => assets/previewicons}/cube-47.png (100%) rename {icons/preview => assets/previewicons}/cube-48.png (100%) rename {icons/preview => assets/previewicons}/cube-49.png (100%) rename {icons/preview => assets/previewicons}/cube-50.png (100%) rename {icons/preview => assets/previewicons}/cube-51.png (100%) rename {icons/preview => assets/previewicons}/cube-52.png (100%) rename {icons/preview => assets/previewicons}/cube-53.png (100%) rename {icons/preview => assets/previewicons}/cube-54.png (100%) rename {icons/preview => assets/previewicons}/cube-55.png (100%) rename {icons/preview => assets/previewicons}/cube-56.png (100%) rename {icons/preview => assets/previewicons}/cube-57.png (100%) rename {icons/preview => assets/previewicons}/cube-58.png (100%) rename {icons/preview => assets/previewicons}/cube-59.png (100%) rename {icons/preview => assets/previewicons}/cube-60.png (100%) rename {icons/preview => assets/previewicons}/cube-61.png (100%) rename {icons/preview => assets/previewicons}/cube-62.png (100%) rename {icons/preview => assets/previewicons}/cube-63.png (100%) rename {icons/preview => assets/previewicons}/cube-64.png (100%) rename {icons/preview => assets/previewicons}/cube-65.png (100%) rename {icons/preview => assets/previewicons}/cube-66.png (100%) rename {icons/preview => assets/previewicons}/cube-67.png (100%) rename {icons/preview => assets/previewicons}/cube-68.png (100%) rename {icons/preview => assets/previewicons}/cube-69.png (100%) rename {icons/preview => assets/previewicons}/cube-70.png (100%) rename {icons/preview => assets/previewicons}/cube-71.png (100%) rename {icons/preview => assets/previewicons}/cube-72.png (100%) rename {icons/preview => assets/previewicons}/cube-73.png (100%) rename {icons/preview => assets/previewicons}/cube-74.png (100%) rename {icons/preview => assets/previewicons}/cube-75.png (100%) rename {icons/preview => assets/previewicons}/cube-76.png (100%) rename {icons/preview => assets/previewicons}/cube-77.png (100%) rename {icons/preview => assets/previewicons}/cube-78.png (100%) rename {icons/preview => assets/previewicons}/cube-79.png (100%) rename {icons/preview => assets/previewicons}/cube-80.png (100%) rename {icons/preview => assets/previewicons}/cube-81.png (100%) rename {icons/preview => assets/previewicons}/cube-82.png (100%) rename {icons/preview => assets/previewicons}/cube-83.png (100%) rename {icons/preview => assets/previewicons}/cube-84.png (100%) rename {icons/preview => assets/previewicons}/cube-85.png (100%) rename {icons/preview => assets/previewicons}/cube-86.png (100%) rename {icons/preview => assets/previewicons}/cube-87.png (100%) rename {icons/preview => assets/previewicons}/cube-88.png (100%) rename {icons/preview => assets/previewicons}/cube-89.png (100%) rename {icons/preview => assets/previewicons}/cube-90.png (100%) rename {icons/preview => assets/previewicons}/cube-91.png (100%) rename {icons/preview => assets/previewicons}/cube-92.png (100%) rename {icons/preview => assets/previewicons}/cube-93.png (100%) rename {icons/preview => assets/previewicons}/cube-94.png (100%) rename {icons/preview => assets/previewicons}/cube-95.png (100%) rename {icons/preview => assets/previewicons}/cube-96.png (100%) rename {icons/preview => assets/previewicons}/cube-97.png (100%) rename {icons/preview => assets/previewicons}/cube-98.png (100%) rename {icons/preview => assets/previewicons}/cube-99.png (100%) rename {icons/preview => assets/previewicons}/robot-01.png (100%) rename {icons/preview => assets/previewicons}/robot-02.png (100%) rename {icons/preview => assets/previewicons}/robot-03.png (100%) rename {icons/preview => assets/previewicons}/robot-04.png (100%) rename {icons/preview => assets/previewicons}/robot-05.png (100%) rename {icons/preview => assets/previewicons}/robot-06.png (100%) rename {icons/preview => assets/previewicons}/robot-07.png (100%) rename {icons/preview => assets/previewicons}/robot-08.png (100%) rename {icons/preview => assets/previewicons}/robot-09.png (100%) rename {icons/preview => assets/previewicons}/robot-10.png (100%) rename {icons/preview => assets/previewicons}/robot-11.png (100%) rename {icons/preview => assets/previewicons}/robot-12.png (100%) rename {icons/preview => assets/previewicons}/robot-13.png (100%) rename {icons/preview => assets/previewicons}/robot-14.png (100%) rename {icons/preview => assets/previewicons}/robot-15.png (100%) rename {icons/preview => assets/previewicons}/robot-16.png (100%) rename {icons/preview => assets/previewicons}/robot-17.png (100%) rename {icons/preview => assets/previewicons}/robot-18.png (100%) rename {icons/preview => assets/previewicons}/robot-19.png (100%) rename {icons/preview => assets/previewicons}/robot-20.png (100%) rename {icons/preview => assets/previewicons}/robot-21.png (100%) rename {icons/preview => assets/previewicons}/robot-22.png (100%) rename {icons/preview => assets/previewicons}/robot-23.png (100%) rename {icons/preview => assets/previewicons}/robot-24.png (100%) rename {icons/preview => assets/previewicons}/robot-25.png (100%) rename {icons/preview => assets/previewicons}/robot-26.png (100%) rename {icons/preview => assets/previewicons}/ship-01.png (100%) rename {icons/preview => assets/previewicons}/ship-02.png (100%) rename {icons/preview => assets/previewicons}/ship-03.png (100%) rename {icons/preview => assets/previewicons}/ship-04.png (100%) rename {icons/preview => assets/previewicons}/ship-05.png (100%) rename {icons/preview => assets/previewicons}/ship-06.png (100%) rename {icons/preview => assets/previewicons}/ship-07.png (100%) rename {icons/preview => assets/previewicons}/ship-08.png (100%) rename {icons/preview => assets/previewicons}/ship-09.png (100%) rename {icons/preview => assets/previewicons}/ship-10.png (100%) rename {icons/preview => assets/previewicons}/ship-11.png (100%) rename {icons/preview => assets/previewicons}/ship-12.png (100%) rename {icons/preview => assets/previewicons}/ship-13.png (100%) rename {icons/preview => assets/previewicons}/ship-14.png (100%) rename {icons/preview => assets/previewicons}/ship-15.png (100%) rename {icons/preview => assets/previewicons}/ship-16.png (100%) rename {icons/preview => assets/previewicons}/ship-17.png (100%) rename {icons/preview => assets/previewicons}/ship-18.png (100%) rename {icons/preview => assets/previewicons}/ship-19.png (100%) rename {icons/preview => assets/previewicons}/ship-20.png (100%) rename {icons/preview => assets/previewicons}/ship-21.png (100%) rename {icons/preview => assets/previewicons}/ship-22.png (100%) rename {icons/preview => assets/previewicons}/ship-23.png (100%) rename {icons/preview => assets/previewicons}/ship-24.png (100%) rename {icons/preview => assets/previewicons}/ship-25.png (100%) rename {icons/preview => assets/previewicons}/ship-26.png (100%) rename {icons/preview => assets/previewicons}/ship-27.png (100%) rename {icons/preview => assets/previewicons}/ship-28.png (100%) rename {icons/preview => assets/previewicons}/ship-29.png (100%) rename {icons/preview => assets/previewicons}/ship-30.png (100%) rename {icons/preview => assets/previewicons}/ship-31.png (100%) rename {icons/preview => assets/previewicons}/ship-32.png (100%) rename {icons/preview => assets/previewicons}/ship-33.png (100%) rename {icons/preview => assets/previewicons}/ship-34.png (100%) rename {icons/preview => assets/previewicons}/ship-35.png (100%) rename {icons/preview => assets/previewicons}/ship-36.png (100%) rename {icons/preview => assets/previewicons}/ship-37.png (100%) rename {icons/preview => assets/previewicons}/ship-38.png (100%) rename {icons/preview => assets/previewicons}/ship-39.png (100%) rename {icons/preview => assets/previewicons}/ship-40.png (100%) rename {icons/preview => assets/previewicons}/ship-41.png (100%) rename {icons/preview => assets/previewicons}/ship-42.png (100%) rename {icons/preview => assets/previewicons}/ship-43.png (100%) rename {icons/preview => assets/previewicons}/ship-44.png (100%) rename {icons/preview => assets/previewicons}/ship-45.png (100%) rename {icons/preview => assets/previewicons}/ship-46.png (100%) rename {icons/preview => assets/previewicons}/ship-47.png (100%) rename {icons/preview => assets/previewicons}/ship-48.png (100%) rename {icons/preview => assets/previewicons}/ship-49.png (100%) rename {icons/preview => assets/previewicons}/ship-50.png (100%) rename {icons/preview => assets/previewicons}/ship-51.png (100%) rename {icons/preview => assets/previewicons}/spider-01.png (100%) rename {icons/preview => assets/previewicons}/spider-02.png (100%) rename {icons/preview => assets/previewicons}/spider-03.png (100%) rename {icons/preview => assets/previewicons}/spider-04.png (100%) rename {icons/preview => assets/previewicons}/spider-05.png (100%) rename {icons/preview => assets/previewicons}/spider-06.png (100%) rename {icons/preview => assets/previewicons}/spider-07.png (100%) rename {icons/preview => assets/previewicons}/spider-08.png (100%) rename {icons/preview => assets/previewicons}/spider-09.png (100%) rename {icons/preview => assets/previewicons}/spider-10.png (100%) rename {icons/preview => assets/previewicons}/spider-11.png (100%) rename {icons/preview => assets/previewicons}/spider-12.png (100%) rename {icons/preview => assets/previewicons}/spider-13.png (100%) rename {icons/preview => assets/previewicons}/spider-14.png (100%) rename {icons/preview => assets/previewicons}/spider-15.png (100%) rename {icons/preview => assets/previewicons}/spider-16.png (100%) rename {icons/preview => assets/previewicons}/spider-17.png (100%) rename {icons/preview => assets/previewicons}/swing-01.png (100%) rename {icons/preview => assets/previewicons}/ufo-01.png (100%) rename {icons/preview => assets/previewicons}/ufo-02.png (100%) rename {icons/preview => assets/previewicons}/ufo-03.png (100%) rename {icons/preview => assets/previewicons}/ufo-04.png (100%) rename {icons/preview => assets/previewicons}/ufo-05.png (100%) rename {icons/preview => assets/previewicons}/ufo-06.png (100%) rename {icons/preview => assets/previewicons}/ufo-07.png (100%) rename {icons/preview => assets/previewicons}/ufo-08.png (100%) rename {icons/preview => assets/previewicons}/ufo-09.png (100%) rename {icons/preview => assets/previewicons}/ufo-10.png (100%) rename {icons/preview => assets/previewicons}/ufo-11.png (100%) rename {icons/preview => assets/previewicons}/ufo-12.png (100%) rename {icons/preview => assets/previewicons}/ufo-13.png (100%) rename {icons/preview => assets/previewicons}/ufo-14.png (100%) rename {icons/preview => assets/previewicons}/ufo-15.png (100%) rename {icons/preview => assets/previewicons}/ufo-16.png (100%) rename {icons/preview => assets/previewicons}/ufo-17.png (100%) rename {icons/preview => assets/previewicons}/ufo-18.png (100%) rename {icons/preview => assets/previewicons}/ufo-19.png (100%) rename {icons/preview => assets/previewicons}/ufo-20.png (100%) rename {icons/preview => assets/previewicons}/ufo-21.png (100%) rename {icons/preview => assets/previewicons}/ufo-22.png (100%) rename {icons/preview => assets/previewicons}/ufo-23.png (100%) rename {icons/preview => assets/previewicons}/ufo-24.png (100%) rename {icons/preview => assets/previewicons}/ufo-25.png (100%) rename {icons/preview => assets/previewicons}/ufo-26.png (100%) rename {icons/preview => assets/previewicons}/ufo-27.png (100%) rename {icons/preview => assets/previewicons}/ufo-28.png (100%) rename {icons/preview => assets/previewicons}/ufo-29.png (100%) rename {icons/preview => assets/previewicons}/ufo-30.png (100%) rename {icons/preview => assets/previewicons}/ufo-31.png (100%) rename {icons/preview => assets/previewicons}/ufo-32.png (100%) rename {icons/preview => assets/previewicons}/ufo-33.png (100%) rename {icons/preview => assets/previewicons}/ufo-34.png (100%) rename {icons/preview => assets/previewicons}/ufo-35.png (100%) rename {icons/preview => assets/previewicons}/wave-01.png (100%) rename {icons/preview => assets/previewicons}/wave-02.png (100%) rename {icons/preview => assets/previewicons}/wave-03.png (100%) rename {icons/preview => assets/previewicons}/wave-04.png (100%) rename {icons/preview => assets/previewicons}/wave-05.png (100%) rename {icons/preview => assets/previewicons}/wave-06.png (100%) rename {icons/preview => assets/previewicons}/wave-07.png (100%) rename {icons/preview => assets/previewicons}/wave-08.png (100%) rename {icons/preview => assets/previewicons}/wave-09.png (100%) rename {icons/preview => assets/previewicons}/wave-10.png (100%) rename {icons/preview => assets/previewicons}/wave-11.png (100%) rename {icons/preview => assets/previewicons}/wave-12.png (100%) rename {icons/preview => assets/previewicons}/wave-13.png (100%) rename {icons/preview => assets/previewicons}/wave-14.png (100%) rename {icons/preview => assets/previewicons}/wave-15.png (100%) rename {icons/preview => assets/previewicons}/wave-16.png (100%) rename {icons/preview => assets/previewicons}/wave-17.png (100%) rename {icons/preview => assets/previewicons}/wave-18.png (100%) rename {icons/preview => assets/previewicons}/wave-19.png (100%) rename {icons/preview => assets/previewicons}/wave-20.png (100%) rename {icons/preview => assets/previewicons}/wave-21.png (100%) rename {icons/preview => assets/previewicons}/wave-22.png (100%) rename {icons/preview => assets/previewicons}/wave-23.png (100%) rename {icons/preview => assets/previewicons}/wave-24.png (100%) rename {icons/preview => assets/previewicons}/wave-25.png (100%) rename {icons/preview => assets/previewicons}/wave-26.png (100%) rename {icons/preview => assets/previewicons}/wave-27.png (100%) rename {icons/preview => assets/previewicons}/wave-28.png (100%) rename {icons/preview => assets/previewicons}/wave-29.png (100%) rename {icons/preview => assets/previewicons}/wave-30.png (100%) rename {icons/preview => assets/previewicons}/wave-31.png (100%) rename {icons/preview => assets/previewicons}/wave-32.png (100%) rename {icons/preview => assets/previewicons}/wave-33.png (100%) rename {icons/preview => assets/previewicons}/wave-34.png (100%) rename {icons/preview => assets/previewicons}/wave-35.png (100%) create mode 100644 assets/trophy2.png create mode 100644 assets/trophyButton.png create mode 100644 html/assets.html rename {assets => misc}/dragscroll.js (100%) delete mode 100644 misc/mapPacks.json diff --git a/README.md b/README.md index 6bf705d..7dcaac4 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,10 @@ I mean, sure. Why not. Just make sure to give credit, obviously. Via the bottom of the homepage, the credits button, or maybe even both if you're feeling extra nice. -Obviously, GDBrowser isn't perfect when it comes to GD private servers, since both requests and responses might be a bit different. Or a LOT, as I learned. +Obviously, GDBrowser isn't perfect when it comes to GD private servers, since both requests and responses might be a bit different. Or a LOT, as I learned. (seriously what's with that?) You can also check out `settings.js` to tweak some additional settings (mainly GDPS related) such as whether to cache things or if timestamps should end with "ago" -GDPS compatibility is still a HUGE work in progress, so pull requests would be greatly appreciated if you manage to make any improvements! - # Folders GDBrowser has a lot of folders. I like to keep things neat. @@ -33,24 +31,16 @@ Assets! Assets everywhere! All the GD stuff was ripped straight from the GD spritesheets via [Absolute's texture splitter hack](https://youtu.be/pYQgIyNhow8). If you want a nice categorized version, [I've done all the dirty work for you.](https://www.mediafire.com/file/4d99bw1zhwcl507/textures.zip/file) -/blocks, /objects and /initial are used for the analysis page. I just put them in seperate folders for extra neatness. - -/gdfaces holds all the difficulty faces - -/css has the CSS stuff. They're in a special folder so browsers won't cache them (in case of updates) - -Figure out what /gauntlets and /iconkitbuttons have. +I'd explain what's in all the subfolders but it's pretty obvious. I tried my best to organize everything nicely. ## Classes -What's a class you ask? I still have no idea. - -Seriously, these things are *confusing* +What's a class you ask? Good question. I guess the best way to put it is uh... super fancy functions??? Level.js parses the server's disgusting response and sends back a nice object with all the level info -XOR.js encrypts/decrypts stuff like GD passwords. I stole the code from somewhere so uh if you wrote it, please don't hunt me down +XOR.js encrypts/decrypts stuff like GD passwords ## HTML The HTML files! Nothing too fancy, since it can all be seen directly from gdbrowser. Note that profile.html and level.html have [[VARIABLES]] (name, id, etc) replaced by the server when they're sent. @@ -64,8 +54,6 @@ parsePlist.js reads GJ_GameSheet02-uhd.plist and magically transforms it into ga forms.json is a list of the different icon forms, their ingame filenames, and their index in responses from the GD servers -/iconkit is a folder for the little grey preview icons on the icon kit - ## Misc Inevitable misc folder @@ -77,22 +65,28 @@ colorProperties.json - Color channel cheatsheet initialProperties.json - Level settings cheatsheet -objectProperties.json - Object property cheatsheet. Low budget version of [AlFas' one](https://github.com/gd-edit/GDAPI/blob/5a338c317b10ba0cb30d6175360c997a8a72502f/GDAPI/GDAPI/Enumerations/GeometryDash/ObjectParameter.cs) +objectProperties.json - Object property cheatsheet. Low budget version of [AlFas' one](https://github.com/AlFasGD/GDAPI/blob/master/GDAPI/GDAPI/Enumerations/GeometryDash/ObjectProperty.cs) objects.json - IDs for portals, orbs, triggers, and misc stuff **Not for level analysis** +colors.json - List of icon colors in RGB format + credits.json - Credits! (shown on the homepage) +dragscroll.js - Used on several pages for drag scrolling + level.json - An array of the official GD tracks, and also difficulty face stuff for level searching +sampleIcons.json - A pool of icons, one of which will randomly appear when visiting the icon kit. Syntax is [Name, ID, Col1, Col2, Glow], + secretStuff.json - GJP goes here, needed for level leaderboards. Not included in the repo for obvious reasons settings.js - Tweak small settings here, mainly for local use or GDPS'es -sizecheck.js - Excecuted on most pages, used for the 'page isn't wide enough' message, back button, and a few other things +sizecheck.js - Excecuted on most pages. Used for the 'page isn't wide enough' message, back button, and a few other things --- -happy painting and god bless. \ No newline at end of file +happy gdbrowsing and god bless. \ No newline at end of file diff --git a/api/download.js b/api/download.js index 6f5224b..c99903a 100644 --- a/api/download.js +++ b/api/download.js @@ -97,10 +97,10 @@ module.exports = async (app, req, res, api, ID, analyze) => { } else if (level.difficulty == "Extreme Demon") { - request.get('https://www.pointercrate.com/api/v1/demons/?name=' + level.name.trim(), function (err, resp, demonList) { + request.get('https://www.pointercrate.com/api/v2/demons/?name=' + level.name.trim(), function (err, resp, demonList) { if (err) return sendLevel() let demon = JSON.parse(demonList) - if (demon[0] && demon[0].position <= 150) level.demonList = demon[0].position + if (demon[0] && demon[0].position) level.demonList = demon[0].position return sendLevel() }) } diff --git a/api/level.js b/api/level.js index 091fa45..3fcd394 100644 --- a/api/level.js +++ b/api/level.js @@ -69,10 +69,10 @@ module.exports = async (app, req, res, api, analyze) => { } if (level.difficulty == "Extreme Demon") { - request.get('http://www.pointercrate.com/api/v1/demons/?name=' + level.name.trim(), function (err, resp, demonList) { + request.get('http://www.pointercrate.com/api/v2/demons/?name=' + level.name.trim(), function (err, resp, demonList) { if (err) return sendLevel() let demon = JSON.parse(demonList) - if (demon[0] && demon[0].position <= 150) level.demonList = demon[0].position + if (demon[0] && demon[0].position) level.demonList = demon[0].position return sendLevel() }) } diff --git a/api/search.js b/api/search.js index 63b17b6..fd61cc1 100644 --- a/api/search.js +++ b/api/search.js @@ -1,11 +1,23 @@ const request = require('request') const levels = require('../misc/level.json').music const Level = require('../classes/Level.js') +let demonList = {list: [], lastUpdated: 0} module.exports = async (app, req, res) => { if (app.offline) return res.send("-1") + let demonMode = req.query.hasOwnProperty("demonlist") || req.query.hasOwnProperty("demonList") || req.query.type == "demonlist" || req.query.type == "demonList" + if (demonMode) { + if (!demonList.list.length || demonList.lastUpdated + 600000 < Date.now()) { // 10 minute cache + return request.get('http://www.pointercrate.com/api/v2/demons/listed/?limit=100', function (err, resp, list) { + if (err) return res.send("-1") + demonList = {list: JSON.parse(list).map(x => x.level_id), lastUpdated: Date.now()} + return app.run.search(app, req, res) + }) + } + } + let amount = 10; let count = +req.query.count if (count && count > 0) { @@ -37,22 +49,24 @@ module.exports = async (app, req, res) => { count: amount } - if (req.query.gauntlet || req.query.hasOwnProperty("mappack") || req.query.hasOwnProperty("list") || req.query.type == "saved") filters.type = 10 - if (req.query.songID && filters.customSong == 0 && levels.find(x => req.query.songID.toLowerCase() == x[0].toLowerCase())) { filters.song = levels.findIndex(x => req.query.songID.toLowerCase() == x[0].toLowerCase()) } if (req.query.type) { let filterCheck = req.query.type.toLowerCase() - if (filterCheck == 'mostdownloaded') filters.type = 1 - if (filterCheck == 'mostliked') filters.type = 2 - if (filterCheck == 'trending') filters.type = 3 - if (filterCheck == 'recent') filters.type = 4 - if (filterCheck == 'featured') filters.type = 6 - if (filterCheck == 'magic') filters.type = 7 - if (filterCheck == 'awarded' || filterCheck == 'starred') filters.type = 11 - if (filterCheck == 'halloffame' || filterCheck == 'hof') filters.type = 16 + switch(filterCheck) { + case 'mostdownloaded': filters.type = 1; break; + case 'mostliked': filters.type = 2; break; + case 'trending': filters.type = 3; break; + case 'recent': filters.type = 4; break; + case 'featured': filters.type = 6; break; + case 'magic': filters.type = 7; break; + case 'awarded': filters.type = 11; break; + case 'starred': filters.type = 11; break; + case 'halloffame': filters.type = 16; break; + case 'hof': filters.type = 16; break; + } } if (req.query.hasOwnProperty("user")) { @@ -65,6 +79,15 @@ module.exports = async (app, req, res) => { if (req.query.hasOwnProperty("creators")) filters.type = 12 if (req.params.text == "*") delete filters.str + + let listSize = 10 + if (demonMode || req.query.gauntlet || ["mappack", "list", "saved"].some(x => req.query.hasOwnProperty(x))) { + filters.type = 10 + filters.str = demonMode ? demonList.list : filters.str.split(",") + listSize = filters.str.length + filters.str = filters.str.slice(filters.page*amount, filters.page*amount + amount).join() + filters.page = 0 + } request.post(app.endpoint + 'getGJLevels21.php', req.gdParams(filters), async function(err, resp, body) { @@ -118,8 +141,8 @@ module.exports = async (app, req, res) => { } else if (filters.type == 10) { // custom page stuff - level.results = levelArray.length - level.pages = amount ? +Math.ceil(levelArray.length / amount) : 1 + level.results = listSize + level.pages = +Math.ceil(listSize / (amount || 10)) } else { // normal page stuff diff --git a/assets/css/boomlings.css b/assets/css/boomlings.css index 7b21044..ec369fd 100644 --- a/assets/css/boomlings.css +++ b/assets/css/boomlings.css @@ -1,5 +1,5 @@ -@font-face { font-family: Pusab; src: url('./../assets/Pusab.ttf') } -@font-face { font-family: Kaine; src: url('./../assets/boomlings/Kaine.ttf') } +@font-face { font-family: Pusab; src: url('../../assets/Pusab.ttf') } +@font-face { font-family: Kaine; src: url('../../assets/boomlings/Kaine.ttf') } body { margin: 0; @@ -139,7 +139,7 @@ h2 { #borderbox { border: 1.6vh solid; - border-image: url('./../assets/boomlings/border.png') 10% round; + border-image: url('../../assets/boomlings/border.png') 10% round; border-radius: 3vh; width: 110vh; height: 75%; @@ -179,7 +179,7 @@ h2 { border: 2.5vh solid transparent; border-radius: 3vh; background-color: #995533; - border-image: url('./../assets/brownbox.png') 10% round; + border-image: url('../../assets/brownbox.png') 10% round; } @-moz-keyframes spin { diff --git a/assets/css/browser.css b/assets/css/browser.css index d7c9df0..d17e855 100644 --- a/assets/css/browser.css +++ b/assets/css/browser.css @@ -1,4 +1,4 @@ -@font-face {font-family: Pusab; src: url('./../assets/Pusab.ttf')} +@font-face {font-family: Pusab; src: url('../../assets/Pusab.ttf')} body { margin: 0; @@ -118,7 +118,7 @@ img, .noSelect { cursor: default; } -.outOfOrder { +.outOfOrder, .darkDiff { filter: brightness(50%); } @@ -236,7 +236,7 @@ input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:foc .gdcheckbox { vertical-align: middle; display: inline-block; - background-image: url(../assets/check-off.png); + background-image: url(../../assets/check-off.png); background-repeat: no-repeat; background-size: contain; padding-right: 20%; @@ -244,7 +244,7 @@ input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:foc } input[type=checkbox]:checked + label.gdcheckbox { - background-image: url(../assets/check-on.png); + background-image: url(../../assets/check-on.png); } ::placeholder { @@ -315,14 +315,14 @@ input::-webkit-inner-spin-button { border: 2.5vh solid transparent; border-radius: 3vh; background-color: #995533; - border-image: url('./../assets/brownbox.png') 10% round; + border-image: url('../../assets/brownbox.png') 10% round; } .blueBox { border: 2.5vh solid transparent; border-radius: 3vh; background-color: #334499; - border-image: url('./../assets/bluebox.png') 10% round; + border-image: url('../../assets/bluebox.png') 10% round; } .fancybox { @@ -331,7 +331,7 @@ input::-webkit-inner-spin-button { border: 3.5vh solid transparent; border-radius: 3vh; background-color: #001931; - border-image: url('./../assets/fancybox.png') 10% stretch; + border-image: url('../../assets/fancybox.png') 10% stretch; border-image-slice: 65; } @@ -341,14 +341,14 @@ input::-webkit-inner-spin-button { .epicbox { border: 3.5vh solid transparent; - border-image: url('./../assets/epicbox.png') 20% stretch; + border-image: url('../../assets/epicbox.png') 20% stretch; border-image-slice: 85 77; border-image-width: 9.5vh; } .leaderboardBox { border: 3.5vh solid transparent; - border-image: url('./../assets/leaderboardbox.png') 20% stretch; + border-image: url('../../assets/leaderboardbox.png') 20% stretch; border-image-slice: 85 77; border-image-width: 9.5vh; } @@ -387,6 +387,7 @@ input::-webkit-inner-spin-button { margin-left: 0.8%; margin-right: 0.8%; filter: brightness(50%); + text-align: center; } .diffDiv img { @@ -394,13 +395,13 @@ input::-webkit-inner-spin-button { } .demonDiff { - margin-left: 2%; - margin-right: 2%; + margin-left: 1.93%; + margin-right: 1.93%; text-align: center; } .demonDiff .smallTextWoo { - margin-top: 3%; + margin-top: 3.5%; font-size: 2.7vh; } diff --git a/assets/css/iconkit.css b/assets/css/iconkit.css index da324d7..abedfa1 100644 --- a/assets/css/iconkit.css +++ b/assets/css/iconkit.css @@ -1,5 +1,5 @@ @import url('https://fonts.googleapis.com/css?family=Roboto'); -@font-face {font-family: Pusab; src: url('./../assets/Pusab.ttf')} +@font-face {font-family: Pusab; src: url('../../assets/Pusab.ttf')} .gdButton { cursor: pointer; @@ -291,7 +291,7 @@ input:focus, select:focus, textarea:focus, button:focus { } .iconSelected { - border-image: url('./../assets/select.png') 10 stretch !important; + border-image: url('../../assets/select.png') 10 stretch !important; } .iconTabButton, .glowToggle, .copyForm { @@ -418,7 +418,7 @@ input:focus, select:focus, textarea:focus, button:focus { border: 17px solid transparent; border-radius: 25px; background-color: #995533; - border-image: url('./../assets/brownbox.png') 10% round; + border-image: url('../../assets/brownbox.png') 10% round; } .xButton { @@ -455,7 +455,7 @@ input[type=checkbox] { .gdcheckbox { vertical-align: middle; display: inline-block; - background-image: url(../assets/check-off.png); + background-image: url(../../assets/check-off.png); background-repeat: no-repeat; background-size: contain; padding-right: 40px; @@ -465,7 +465,7 @@ input[type=checkbox] { } input[type=checkbox]:checked + label.gdcheckbox { - background-image: url(../assets/check-on.png); + background-image: url(../../assets/check-on.png); } .bounce { diff --git a/assets/deatheffects/0.png b/assets/deatheffects/0.png new file mode 100644 index 0000000000000000000000000000000000000000..4780262bc024ef723e2a0a3f0eafc9c21bf3ec13 GIT binary patch literal 6706 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 literal 6831 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 diff --git a/assets/gdfaces/auto-epic.png b/assets/difficulties/auto-epic.png similarity index 100% rename from assets/gdfaces/auto-epic.png rename to assets/difficulties/auto-epic.png diff --git a/assets/gdfaces/auto-featured.png b/assets/difficulties/auto-featured.png similarity index 100% rename from assets/gdfaces/auto-featured.png rename to assets/difficulties/auto-featured.png diff --git a/assets/gdfaces/auto.png b/assets/difficulties/auto.png similarity index 100% rename from assets/gdfaces/auto.png rename to assets/difficulties/auto.png diff --git a/assets/gdfaces/demon-easy-epic.png b/assets/difficulties/demon-easy-epic.png similarity index 100% rename from assets/gdfaces/demon-easy-epic.png rename to assets/difficulties/demon-easy-epic.png diff --git a/assets/gdfaces/demon-easy-featured.png b/assets/difficulties/demon-easy-featured.png similarity index 100% rename from assets/gdfaces/demon-easy-featured.png rename to assets/difficulties/demon-easy-featured.png diff --git a/assets/gdfaces/demon-easy.png b/assets/difficulties/demon-easy.png similarity index 100% rename from assets/gdfaces/demon-easy.png rename to assets/difficulties/demon-easy.png diff --git a/assets/gdfaces/demon-epic.png b/assets/difficulties/demon-epic.png similarity index 100% rename from assets/gdfaces/demon-epic.png rename to assets/difficulties/demon-epic.png diff --git a/assets/gdfaces/demon-extreme-epic.png b/assets/difficulties/demon-extreme-epic.png similarity index 100% rename from assets/gdfaces/demon-extreme-epic.png rename to assets/difficulties/demon-extreme-epic.png diff --git a/assets/gdfaces/demon-extreme-featured.png b/assets/difficulties/demon-extreme-featured.png similarity index 100% rename from assets/gdfaces/demon-extreme-featured.png rename to assets/difficulties/demon-extreme-featured.png diff --git a/assets/gdfaces/demon-extreme.png b/assets/difficulties/demon-extreme.png similarity index 100% rename from assets/gdfaces/demon-extreme.png rename to assets/difficulties/demon-extreme.png diff --git a/assets/gdfaces/demon-featured.png b/assets/difficulties/demon-featured.png similarity index 100% rename from assets/gdfaces/demon-featured.png rename to assets/difficulties/demon-featured.png diff --git a/assets/gdfaces/demon-hard-epic.png b/assets/difficulties/demon-hard-epic.png similarity index 100% rename from assets/gdfaces/demon-hard-epic.png rename to assets/difficulties/demon-hard-epic.png diff --git a/assets/gdfaces/demon-hard-featured.png b/assets/difficulties/demon-hard-featured.png similarity index 100% rename from assets/gdfaces/demon-hard-featured.png rename to assets/difficulties/demon-hard-featured.png diff --git a/assets/gdfaces/demon-hard.png b/assets/difficulties/demon-hard.png similarity index 100% rename from assets/gdfaces/demon-hard.png rename to assets/difficulties/demon-hard.png diff --git a/assets/gdfaces/demon-insane-epic.png b/assets/difficulties/demon-insane-epic.png similarity index 100% rename from assets/gdfaces/demon-insane-epic.png rename to assets/difficulties/demon-insane-epic.png diff --git a/assets/gdfaces/demon-insane-featured.png b/assets/difficulties/demon-insane-featured.png similarity index 100% rename from assets/gdfaces/demon-insane-featured.png rename to assets/difficulties/demon-insane-featured.png diff --git a/assets/gdfaces/demon-insane.png b/assets/difficulties/demon-insane.png similarity index 100% rename from assets/gdfaces/demon-insane.png rename to assets/difficulties/demon-insane.png diff --git a/assets/gdfaces/demon-medium-epic.png b/assets/difficulties/demon-medium-epic.png similarity index 100% rename from assets/gdfaces/demon-medium-epic.png rename to assets/difficulties/demon-medium-epic.png diff --git a/assets/gdfaces/demon-medium-featured.png b/assets/difficulties/demon-medium-featured.png similarity index 100% rename from assets/gdfaces/demon-medium-featured.png rename to assets/difficulties/demon-medium-featured.png diff --git a/assets/gdfaces/demon-medium.png b/assets/difficulties/demon-medium.png similarity index 100% rename from assets/gdfaces/demon-medium.png rename to assets/difficulties/demon-medium.png diff --git a/assets/gdfaces/demon.png b/assets/difficulties/demon.png similarity index 100% rename from assets/gdfaces/demon.png rename to assets/difficulties/demon.png diff --git a/assets/gdfaces/easy-epic.png b/assets/difficulties/easy-epic.png similarity index 100% rename from assets/gdfaces/easy-epic.png rename to assets/difficulties/easy-epic.png diff --git a/assets/gdfaces/easy-featured.png b/assets/difficulties/easy-featured.png similarity index 100% rename from assets/gdfaces/easy-featured.png rename to assets/difficulties/easy-featured.png diff --git a/assets/gdfaces/easy.png b/assets/difficulties/easy.png similarity index 100% rename from assets/gdfaces/easy.png rename to assets/difficulties/easy.png diff --git a/assets/gdfaces/hard-epic.png b/assets/difficulties/hard-epic.png similarity index 100% rename from assets/gdfaces/hard-epic.png rename to assets/difficulties/hard-epic.png diff --git a/assets/gdfaces/hard-featured.png b/assets/difficulties/hard-featured.png similarity index 100% rename from assets/gdfaces/hard-featured.png rename to assets/difficulties/hard-featured.png diff --git a/assets/gdfaces/hard.png b/assets/difficulties/hard.png similarity index 100% rename from assets/gdfaces/hard.png rename to assets/difficulties/hard.png diff --git a/assets/gdfaces/harder-epic.png b/assets/difficulties/harder-epic.png similarity index 100% rename from assets/gdfaces/harder-epic.png rename to assets/difficulties/harder-epic.png diff --git a/assets/gdfaces/harder-featured.png b/assets/difficulties/harder-featured.png similarity index 100% rename from assets/gdfaces/harder-featured.png rename to assets/difficulties/harder-featured.png diff --git a/assets/gdfaces/harder.png b/assets/difficulties/harder.png similarity index 100% rename from assets/gdfaces/harder.png rename to assets/difficulties/harder.png diff --git a/assets/gdfaces/insane-epic.png b/assets/difficulties/insane-epic.png similarity index 100% rename from assets/gdfaces/insane-epic.png rename to assets/difficulties/insane-epic.png diff --git a/assets/gdfaces/insane-featured.png b/assets/difficulties/insane-featured.png similarity index 100% rename from assets/gdfaces/insane-featured.png rename to assets/difficulties/insane-featured.png diff --git a/assets/gdfaces/insane.png b/assets/difficulties/insane.png similarity index 100% rename from assets/gdfaces/insane.png rename to assets/difficulties/insane.png diff --git a/assets/gdfaces/normal-epic.png b/assets/difficulties/normal-epic.png similarity index 100% rename from assets/gdfaces/normal-epic.png rename to assets/difficulties/normal-epic.png diff --git a/assets/gdfaces/normal-featured.png b/assets/difficulties/normal-featured.png similarity index 100% rename from assets/gdfaces/normal-featured.png rename to assets/difficulties/normal-featured.png diff --git a/assets/gdfaces/normal.png b/assets/difficulties/normal.png similarity index 100% rename from assets/gdfaces/normal.png rename to assets/difficulties/normal.png diff --git a/assets/gdfaces/unrated-epic.png b/assets/difficulties/unrated-epic.png similarity index 100% rename from assets/gdfaces/unrated-epic.png rename to assets/difficulties/unrated-epic.png diff --git a/assets/gdfaces/unrated-featured.png b/assets/difficulties/unrated-featured.png similarity index 100% rename from assets/gdfaces/unrated-featured.png rename to assets/difficulties/unrated-featured.png diff --git a/assets/gdfaces/unrated.png b/assets/difficulties/unrated.png similarity index 100% rename from assets/gdfaces/unrated.png rename to assets/difficulties/unrated.png diff --git a/assets/emptybutton.png b/assets/emptybutton.png index 927ab96777db225b546bb45b67721f6d0c5bc57b..29373790ab91fa71b82f4d71a0a52fe47d1f431c 100644 GIT binary patch delta 5752 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 z®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 W^H)znU;LBO?Jhf5S6bfq&;I~66*1@l diff --git a/assets/iconkitbuttons/wave_on - Copy.png b/assets/iconkitbuttons/wave_on - Copy.png deleted file mode 100644 index 2e706cfb55ebb328abee067ac1e1fa7358cf6f2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5834 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 diff --git a/assets/initial/bg-1.png b/assets/levelstyle/bg-1.png similarity index 100% rename from assets/initial/bg-1.png rename to assets/levelstyle/bg-1.png diff --git a/assets/initial/bg-10.png b/assets/levelstyle/bg-10.png similarity index 100% rename from assets/initial/bg-10.png rename to assets/levelstyle/bg-10.png diff --git a/assets/initial/bg-11.png b/assets/levelstyle/bg-11.png similarity index 100% rename from assets/initial/bg-11.png rename to assets/levelstyle/bg-11.png diff --git a/assets/initial/bg-12.png b/assets/levelstyle/bg-12.png similarity index 100% rename from assets/initial/bg-12.png rename to assets/levelstyle/bg-12.png diff --git a/assets/initial/bg-13.png b/assets/levelstyle/bg-13.png similarity index 100% rename from assets/initial/bg-13.png rename to assets/levelstyle/bg-13.png diff --git a/assets/initial/bg-14.png b/assets/levelstyle/bg-14.png similarity index 100% rename from assets/initial/bg-14.png rename to assets/levelstyle/bg-14.png diff --git a/assets/initial/bg-15.png b/assets/levelstyle/bg-15.png similarity index 100% rename from assets/initial/bg-15.png rename to assets/levelstyle/bg-15.png diff --git a/assets/initial/bg-16.png b/assets/levelstyle/bg-16.png similarity index 100% rename from assets/initial/bg-16.png rename to assets/levelstyle/bg-16.png diff --git a/assets/initial/bg-17.png b/assets/levelstyle/bg-17.png similarity index 100% rename from assets/initial/bg-17.png rename to assets/levelstyle/bg-17.png diff --git a/assets/initial/bg-18.png b/assets/levelstyle/bg-18.png similarity index 100% rename from assets/initial/bg-18.png rename to assets/levelstyle/bg-18.png diff --git a/assets/initial/bg-19.png b/assets/levelstyle/bg-19.png similarity index 100% rename from assets/initial/bg-19.png rename to assets/levelstyle/bg-19.png diff --git a/assets/initial/bg-2.png b/assets/levelstyle/bg-2.png similarity index 100% rename from assets/initial/bg-2.png rename to assets/levelstyle/bg-2.png diff --git a/assets/initial/bg-20.png b/assets/levelstyle/bg-20.png similarity index 100% rename from assets/initial/bg-20.png rename to assets/levelstyle/bg-20.png diff --git a/assets/initial/bg-3.png b/assets/levelstyle/bg-3.png similarity index 100% rename from assets/initial/bg-3.png rename to assets/levelstyle/bg-3.png diff --git a/assets/initial/bg-4.png b/assets/levelstyle/bg-4.png similarity index 100% rename from assets/initial/bg-4.png rename to assets/levelstyle/bg-4.png diff --git a/assets/initial/bg-5.png b/assets/levelstyle/bg-5.png similarity index 100% rename from assets/initial/bg-5.png rename to assets/levelstyle/bg-5.png diff --git a/assets/initial/bg-6.png b/assets/levelstyle/bg-6.png similarity index 100% rename from assets/initial/bg-6.png rename to assets/levelstyle/bg-6.png diff --git a/assets/initial/bg-7.png b/assets/levelstyle/bg-7.png similarity index 100% rename from assets/initial/bg-7.png rename to assets/levelstyle/bg-7.png diff --git a/assets/initial/bg-8.png b/assets/levelstyle/bg-8.png similarity index 100% rename from assets/initial/bg-8.png rename to assets/levelstyle/bg-8.png diff --git a/assets/initial/bg-9.png b/assets/levelstyle/bg-9.png similarity index 100% rename from assets/initial/bg-9.png rename to assets/levelstyle/bg-9.png diff --git a/assets/initial/font-1.png b/assets/levelstyle/font-1.png similarity index 100% rename from assets/initial/font-1.png rename to assets/levelstyle/font-1.png diff --git a/assets/initial/font-10.png b/assets/levelstyle/font-10.png similarity index 100% rename from assets/initial/font-10.png rename to assets/levelstyle/font-10.png diff --git a/assets/initial/font-11.png b/assets/levelstyle/font-11.png similarity index 100% rename from assets/initial/font-11.png rename to assets/levelstyle/font-11.png diff --git a/assets/initial/font-12.png b/assets/levelstyle/font-12.png similarity index 100% rename from assets/initial/font-12.png rename to assets/levelstyle/font-12.png diff --git a/assets/initial/font-2.png b/assets/levelstyle/font-2.png similarity index 100% rename from assets/initial/font-2.png rename to assets/levelstyle/font-2.png diff --git a/assets/initial/font-3.png b/assets/levelstyle/font-3.png similarity index 100% rename from assets/initial/font-3.png rename to assets/levelstyle/font-3.png diff --git a/assets/initial/font-4.png b/assets/levelstyle/font-4.png similarity index 100% rename from assets/initial/font-4.png rename to assets/levelstyle/font-4.png diff --git a/assets/initial/font-5.png b/assets/levelstyle/font-5.png similarity index 100% rename from assets/initial/font-5.png rename to assets/levelstyle/font-5.png diff --git a/assets/initial/font-6.png b/assets/levelstyle/font-6.png similarity index 100% rename from assets/initial/font-6.png rename to assets/levelstyle/font-6.png diff --git a/assets/initial/font-7.png b/assets/levelstyle/font-7.png similarity index 100% rename from assets/initial/font-7.png rename to assets/levelstyle/font-7.png diff --git a/assets/initial/font-8.png b/assets/levelstyle/font-8.png similarity index 100% rename from assets/initial/font-8.png rename to assets/levelstyle/font-8.png diff --git a/assets/initial/font-9.png b/assets/levelstyle/font-9.png similarity index 100% rename from assets/initial/font-9.png rename to assets/levelstyle/font-9.png diff --git a/assets/initial/gr-1.png b/assets/levelstyle/gr-1.png similarity index 100% rename from assets/initial/gr-1.png rename to assets/levelstyle/gr-1.png diff --git a/assets/initial/gr-10.png b/assets/levelstyle/gr-10.png similarity index 100% rename from assets/initial/gr-10.png rename to assets/levelstyle/gr-10.png diff --git a/assets/initial/gr-11.png b/assets/levelstyle/gr-11.png similarity index 100% rename from assets/initial/gr-11.png rename to assets/levelstyle/gr-11.png diff --git a/assets/initial/gr-12.png b/assets/levelstyle/gr-12.png similarity index 100% rename from assets/initial/gr-12.png rename to assets/levelstyle/gr-12.png diff --git a/assets/initial/gr-13.png b/assets/levelstyle/gr-13.png similarity index 100% rename from assets/initial/gr-13.png rename to assets/levelstyle/gr-13.png diff --git a/assets/initial/gr-14.png b/assets/levelstyle/gr-14.png similarity index 100% rename from assets/initial/gr-14.png rename to assets/levelstyle/gr-14.png diff --git a/assets/initial/gr-15.png b/assets/levelstyle/gr-15.png similarity index 100% rename from assets/initial/gr-15.png rename to assets/levelstyle/gr-15.png diff --git a/assets/initial/gr-16.png b/assets/levelstyle/gr-16.png similarity index 100% rename from assets/initial/gr-16.png rename to assets/levelstyle/gr-16.png diff --git a/assets/initial/gr-17.png b/assets/levelstyle/gr-17.png similarity index 100% rename from assets/initial/gr-17.png rename to assets/levelstyle/gr-17.png diff --git a/assets/initial/gr-2.png b/assets/levelstyle/gr-2.png similarity index 100% rename from assets/initial/gr-2.png rename to assets/levelstyle/gr-2.png diff --git a/assets/initial/gr-3.png b/assets/levelstyle/gr-3.png similarity index 100% rename from assets/initial/gr-3.png rename to assets/levelstyle/gr-3.png diff --git a/assets/initial/gr-4.png b/assets/levelstyle/gr-4.png similarity index 100% rename from assets/initial/gr-4.png rename to assets/levelstyle/gr-4.png diff --git a/assets/initial/gr-5.png b/assets/levelstyle/gr-5.png similarity index 100% rename from assets/initial/gr-5.png rename to assets/levelstyle/gr-5.png diff --git a/assets/initial/gr-6.png b/assets/levelstyle/gr-6.png similarity index 100% rename from assets/initial/gr-6.png rename to assets/levelstyle/gr-6.png diff --git a/assets/initial/gr-7.png b/assets/levelstyle/gr-7.png similarity index 100% rename from assets/initial/gr-7.png rename to assets/levelstyle/gr-7.png diff --git a/assets/initial/gr-8.png b/assets/levelstyle/gr-8.png similarity index 100% rename from assets/initial/gr-8.png rename to assets/levelstyle/gr-8.png diff --git a/assets/initial/gr-9.png b/assets/levelstyle/gr-9.png similarity index 100% rename from assets/initial/gr-9.png rename to assets/levelstyle/gr-9.png diff --git a/assets/initial/line-1.png b/assets/levelstyle/line-1.png similarity index 100% rename from assets/initial/line-1.png rename to assets/levelstyle/line-1.png diff --git a/assets/initial/line-2.png b/assets/levelstyle/line-2.png similarity index 100% rename from assets/initial/line-2.png rename to assets/levelstyle/line-2.png diff --git a/assets/initial/mode-2p.png b/assets/levelstyle/mode-2p.png similarity index 100% rename from assets/initial/mode-2p.png rename to assets/levelstyle/mode-2p.png diff --git a/assets/objects/obj-arrow.png b/assets/objects/arrow.png similarity index 100% rename from assets/objects/obj-arrow.png rename to assets/objects/arrow.png diff --git a/assets/blocks/black.png b/assets/objects/blocks/black.png similarity index 100% rename from assets/blocks/black.png rename to assets/objects/blocks/black.png diff --git a/assets/blocks/brick-color.png b/assets/objects/blocks/brick-color.png similarity index 100% rename from assets/blocks/brick-color.png rename to assets/objects/blocks/brick-color.png diff --git a/assets/blocks/brick.png b/assets/objects/blocks/brick.png similarity index 100% rename from assets/blocks/brick.png rename to assets/objects/blocks/brick.png diff --git a/assets/blocks/brick2.png b/assets/objects/blocks/brick2.png similarity index 100% rename from assets/blocks/brick2.png rename to assets/objects/blocks/brick2.png diff --git a/assets/blocks/brick3.png b/assets/objects/blocks/brick3.png similarity index 100% rename from assets/blocks/brick3.png rename to assets/objects/blocks/brick3.png diff --git a/assets/blocks/chipped-color.png b/assets/objects/blocks/chipped-color.png similarity index 100% rename from assets/blocks/chipped-color.png rename to assets/objects/blocks/chipped-color.png diff --git a/assets/blocks/chipped.png b/assets/objects/blocks/chipped.png similarity index 100% rename from assets/blocks/chipped.png rename to assets/objects/blocks/chipped.png diff --git a/assets/blocks/classic.png b/assets/objects/blocks/classic.png similarity index 100% rename from assets/blocks/classic.png rename to assets/objects/blocks/classic.png diff --git a/assets/blocks/color.png b/assets/objects/blocks/color.png similarity index 100% rename from assets/blocks/color.png rename to assets/objects/blocks/color.png diff --git a/assets/blocks/cracked.png b/assets/objects/blocks/cracked.png similarity index 100% rename from assets/blocks/cracked.png rename to assets/objects/blocks/cracked.png diff --git a/assets/blocks/cracked2.png b/assets/objects/blocks/cracked2.png similarity index 100% rename from assets/blocks/cracked2.png rename to assets/objects/blocks/cracked2.png diff --git a/assets/blocks/crystal.png b/assets/objects/blocks/crystal.png similarity index 100% rename from assets/blocks/crystal.png rename to assets/objects/blocks/crystal.png diff --git a/assets/blocks/edge.png b/assets/objects/blocks/edge.png similarity index 100% rename from assets/blocks/edge.png rename to assets/objects/blocks/edge.png diff --git a/assets/blocks/electric.png b/assets/objects/blocks/electric.png similarity index 100% rename from assets/blocks/electric.png rename to assets/objects/blocks/electric.png diff --git a/assets/blocks/electric2.png b/assets/objects/blocks/electric2.png similarity index 100% rename from assets/blocks/electric2.png rename to assets/objects/blocks/electric2.png diff --git a/assets/blocks/electric3.png b/assets/objects/blocks/electric3.png similarity index 100% rename from assets/blocks/electric3.png rename to assets/objects/blocks/electric3.png diff --git a/assets/blocks/electro.png b/assets/objects/blocks/electro.png similarity index 100% rename from assets/blocks/electro.png rename to assets/objects/blocks/electro.png diff --git a/assets/blocks/glass.png b/assets/objects/blocks/glass.png similarity index 100% rename from assets/blocks/glass.png rename to assets/objects/blocks/glass.png diff --git a/assets/blocks/grass-color.png b/assets/objects/blocks/grass-color.png similarity index 100% rename from assets/blocks/grass-color.png rename to assets/objects/blocks/grass-color.png diff --git a/assets/blocks/grass.png b/assets/objects/blocks/grass.png similarity index 100% rename from assets/blocks/grass.png rename to assets/objects/blocks/grass.png diff --git a/assets/blocks/mech-color.png b/assets/objects/blocks/mech-color.png similarity index 100% rename from assets/blocks/mech-color.png rename to assets/objects/blocks/mech-color.png diff --git a/assets/blocks/mech-dark.png b/assets/objects/blocks/mech-dark.png similarity index 100% rename from assets/blocks/mech-dark.png rename to assets/objects/blocks/mech-dark.png diff --git a/assets/blocks/mech.png b/assets/objects/blocks/mech.png similarity index 100% rename from assets/blocks/mech.png rename to assets/objects/blocks/mech.png diff --git a/assets/blocks/moon.png b/assets/objects/blocks/moon.png similarity index 100% rename from assets/blocks/moon.png rename to assets/objects/blocks/moon.png diff --git a/assets/blocks/outline.png b/assets/objects/blocks/outline.png similarity index 100% rename from assets/blocks/outline.png rename to assets/objects/blocks/outline.png diff --git a/assets/blocks/pattern.png b/assets/objects/blocks/pattern.png similarity index 100% rename from assets/blocks/pattern.png rename to assets/objects/blocks/pattern.png diff --git a/assets/blocks/puzzle.png b/assets/objects/blocks/puzzle.png similarity index 100% rename from assets/blocks/puzzle.png rename to assets/objects/blocks/puzzle.png diff --git a/assets/blocks/rainbow.png b/assets/objects/blocks/rainbow.png similarity index 100% rename from assets/blocks/rainbow.png rename to assets/objects/blocks/rainbow.png diff --git a/assets/blocks/rock.png b/assets/objects/blocks/rock.png similarity index 100% rename from assets/blocks/rock.png rename to assets/objects/blocks/rock.png diff --git a/assets/blocks/rock2.png b/assets/objects/blocks/rock2.png similarity index 100% rename from assets/blocks/rock2.png rename to assets/objects/blocks/rock2.png diff --git a/assets/blocks/squares-color.png b/assets/objects/blocks/squares-color.png similarity index 100% rename from assets/blocks/squares-color.png rename to assets/objects/blocks/squares-color.png diff --git a/assets/blocks/squares.png b/assets/objects/blocks/squares.png similarity index 100% rename from assets/blocks/squares.png rename to assets/objects/blocks/squares.png diff --git a/assets/blocks/the-confusing-one.png b/assets/objects/blocks/the-confusing-one.png similarity index 100% rename from assets/blocks/the-confusing-one.png rename to assets/objects/blocks/the-confusing-one.png diff --git a/assets/blocks/triangles-color.png b/assets/objects/blocks/triangles-color.png similarity index 100% rename from assets/blocks/triangles-color.png rename to assets/objects/blocks/triangles-color.png diff --git a/assets/blocks/triangles.png b/assets/objects/blocks/triangles.png similarity index 100% rename from assets/blocks/triangles.png rename to assets/objects/blocks/triangles.png diff --git a/assets/blocks/wavy-color.png b/assets/objects/blocks/wavy-color.png similarity index 100% rename from assets/blocks/wavy-color.png rename to assets/objects/blocks/wavy-color.png diff --git a/assets/blocks/wavy.png b/assets/objects/blocks/wavy.png similarity index 100% rename from assets/blocks/wavy.png rename to assets/objects/blocks/wavy.png diff --git a/assets/blocks/wood.png b/assets/objects/blocks/wood.png similarity index 100% rename from assets/blocks/wood.png rename to assets/objects/blocks/wood.png diff --git a/assets/objects/obj-breakable.png b/assets/objects/breakable.png similarity index 100% rename from assets/objects/obj-breakable.png rename to assets/objects/breakable.png diff --git a/assets/objects/obj-cloud.png b/assets/objects/cloud.png similarity index 100% rename from assets/objects/obj-cloud.png rename to assets/objects/cloud.png diff --git a/assets/objects/obj-coin.png b/assets/objects/coin.png similarity index 100% rename from assets/objects/obj-coin.png rename to assets/objects/coin.png diff --git a/assets/objects/obj-collision.png b/assets/objects/collision.png similarity index 100% rename from assets/objects/obj-collision.png rename to assets/objects/collision.png diff --git a/assets/objects/obj-fire.png b/assets/objects/fire.png similarity index 100% rename from assets/objects/obj-fire.png rename to assets/objects/fire.png diff --git a/assets/objects/obj-glow.png b/assets/objects/glow.png similarity index 100% rename from assets/objects/obj-glow.png rename to assets/objects/glow.png diff --git a/assets/objects/obj-hand.png b/assets/objects/hand.png similarity index 100% rename from assets/objects/obj-hand.png rename to assets/objects/hand.png diff --git a/assets/objects/obj-invisible.png b/assets/objects/invisible.png similarity index 100% rename from assets/objects/obj-invisible.png rename to assets/objects/invisible.png diff --git a/assets/objects/obj-monster.png b/assets/objects/monster.png similarity index 100% rename from assets/objects/obj-monster.png rename to assets/objects/monster.png diff --git a/assets/objects/orb-black.png b/assets/objects/orbs/black.png similarity index 100% rename from assets/objects/orb-black.png rename to assets/objects/orbs/black.png diff --git a/assets/objects/orb-blue.png b/assets/objects/orbs/blue.png similarity index 100% rename from assets/objects/orb-blue.png rename to assets/objects/orbs/blue.png diff --git a/assets/objects/orb-green.png b/assets/objects/orbs/green.png similarity index 100% rename from assets/objects/orb-green.png rename to assets/objects/orbs/green.png diff --git a/assets/objects/orb-greenDash.png b/assets/objects/orbs/greenDash.png similarity index 100% rename from assets/objects/orb-greenDash.png rename to assets/objects/orbs/greenDash.png diff --git a/assets/objects/orb-pink.png b/assets/objects/orbs/pink.png similarity index 100% rename from assets/objects/orb-pink.png rename to assets/objects/orbs/pink.png diff --git a/assets/objects/orb-pinkDash.png b/assets/objects/orbs/pinkDash.png similarity index 100% rename from assets/objects/orb-pinkDash.png rename to assets/objects/orbs/pinkDash.png diff --git a/assets/objects/orb-red.png b/assets/objects/orbs/red.png similarity index 100% rename from assets/objects/orb-red.png rename to assets/objects/orbs/red.png diff --git a/assets/objects/orb-trigger.png b/assets/objects/orbs/trigger.png similarity index 100% rename from assets/objects/orb-trigger.png rename to assets/objects/orbs/trigger.png diff --git a/assets/objects/orb-yellow.png b/assets/objects/orbs/yellow.png similarity index 100% rename from assets/objects/orb-yellow.png rename to assets/objects/orbs/yellow.png diff --git a/assets/objects/obj-particle.png b/assets/objects/particle.png similarity index 100% rename from assets/objects/obj-particle.png rename to assets/objects/particle.png diff --git a/assets/objects/obj-pickup.png b/assets/objects/pickup.png similarity index 100% rename from assets/objects/obj-pickup.png rename to assets/objects/pickup.png diff --git a/assets/objects/obj-pixel.png b/assets/objects/pixel.png similarity index 100% rename from assets/objects/obj-pixel.png rename to assets/objects/pixel.png diff --git a/assets/objects/portal--1x.png b/assets/objects/portals/-1x.png similarity index 100% rename from assets/objects/portal--1x.png rename to assets/objects/portals/-1x.png diff --git a/assets/objects/portal-1x.png b/assets/objects/portals/1x.png similarity index 100% rename from assets/objects/portal-1x.png rename to assets/objects/portals/1x.png diff --git a/assets/objects/portal-2x.png b/assets/objects/portals/2x.png similarity index 100% rename from assets/objects/portal-2x.png rename to assets/objects/portals/2x.png diff --git a/assets/objects/portal-3x.png b/assets/objects/portals/3x.png similarity index 100% rename from assets/objects/portal-3x.png rename to assets/objects/portals/3x.png diff --git a/assets/objects/portal-4x.png b/assets/objects/portals/4x.png similarity index 100% rename from assets/objects/portal-4x.png rename to assets/objects/portals/4x.png diff --git a/assets/objects/portal-ball.png b/assets/objects/portals/ball.png similarity index 100% rename from assets/objects/portal-ball.png rename to assets/objects/portals/ball.png diff --git a/assets/objects/portal-big.png b/assets/objects/portals/big.png similarity index 100% rename from assets/objects/portal-big.png rename to assets/objects/portals/big.png diff --git a/assets/objects/portal-cube.png b/assets/objects/portals/cube.png similarity index 100% rename from assets/objects/portal-cube.png rename to assets/objects/portals/cube.png diff --git a/assets/objects/portal-dual.png b/assets/objects/portals/dual.png similarity index 100% rename from assets/objects/portal-dual.png rename to assets/objects/portals/dual.png diff --git a/assets/objects/portal-mini.png b/assets/objects/portals/mini.png similarity index 100% rename from assets/objects/portal-mini.png rename to assets/objects/portals/mini.png diff --git a/assets/objects/portal-mirrorOff.png b/assets/objects/portals/mirrorOff.png similarity index 100% rename from assets/objects/portal-mirrorOff.png rename to assets/objects/portals/mirrorOff.png diff --git a/assets/objects/portal-mirrorOn.png b/assets/objects/portals/mirrorOn.png similarity index 100% rename from assets/objects/portal-mirrorOn.png rename to assets/objects/portals/mirrorOn.png diff --git a/assets/objects/portal-robot.png b/assets/objects/portals/robot.png similarity index 100% rename from assets/objects/portal-robot.png rename to assets/objects/portals/robot.png diff --git a/assets/objects/portal-ship.png b/assets/objects/portals/ship.png similarity index 100% rename from assets/objects/portal-ship.png rename to assets/objects/portals/ship.png diff --git a/assets/objects/portal-single.png b/assets/objects/portals/single.png similarity index 100% rename from assets/objects/portal-single.png rename to assets/objects/portals/single.png diff --git a/assets/objects/portal-spider.png b/assets/objects/portals/spider.png similarity index 100% rename from assets/objects/portal-spider.png rename to assets/objects/portals/spider.png diff --git a/assets/objects/portal-ufo.png b/assets/objects/portals/ufo.png similarity index 100% rename from assets/objects/portal-ufo.png rename to assets/objects/portals/ufo.png diff --git a/assets/objects/portal-wave.png b/assets/objects/portals/wave.png similarity index 100% rename from assets/objects/portal-wave.png rename to assets/objects/portals/wave.png diff --git a/assets/objects/obj-pulse.png b/assets/objects/pulse.png similarity index 100% rename from assets/objects/obj-pulse.png rename to assets/objects/pulse.png diff --git a/assets/objects/obj-saw.png b/assets/objects/saw.png similarity index 100% rename from assets/objects/obj-saw.png rename to assets/objects/saw.png diff --git a/assets/objects/obj-spike.png b/assets/objects/spike.png similarity index 100% rename from assets/objects/obj-spike.png rename to assets/objects/spike.png diff --git a/assets/objects/obj-text.png b/assets/objects/text.png similarity index 100% rename from assets/objects/obj-text.png rename to assets/objects/text.png diff --git a/assets/objects/trigger-Alpha.png b/assets/objects/triggers/Alpha.png similarity index 100% rename from assets/objects/trigger-Alpha.png rename to assets/objects/triggers/Alpha.png diff --git a/assets/objects/trigger-Animate.png b/assets/objects/triggers/Animate.png similarity index 100% rename from assets/objects/trigger-Animate.png rename to assets/objects/triggers/Animate.png diff --git a/assets/objects/trigger-BGEffectOff.png b/assets/objects/triggers/BGEffectOff.png similarity index 100% rename from assets/objects/trigger-BGEffectOff.png rename to assets/objects/triggers/BGEffectOff.png diff --git a/assets/objects/trigger-BGEffectOn.png b/assets/objects/triggers/BGEffectOn.png similarity index 100% rename from assets/objects/trigger-BGEffectOn.png rename to assets/objects/triggers/BGEffectOn.png diff --git a/assets/objects/trigger-CameraOffset.png b/assets/objects/triggers/CameraOffset.png similarity index 100% rename from assets/objects/trigger-CameraOffset.png rename to assets/objects/triggers/CameraOffset.png diff --git a/assets/objects/trigger-CameraStatic.png b/assets/objects/triggers/CameraStatic.png similarity index 100% rename from assets/objects/trigger-CameraStatic.png rename to assets/objects/triggers/CameraStatic.png diff --git a/assets/objects/trigger-CameraZoom.png b/assets/objects/triggers/CameraZoom.png similarity index 100% rename from assets/objects/trigger-CameraZoom.png rename to assets/objects/triggers/CameraZoom.png diff --git a/assets/objects/trigger-Collision.png b/assets/objects/triggers/Collision.png similarity index 100% rename from assets/objects/trigger-Collision.png rename to assets/objects/triggers/Collision.png diff --git a/assets/objects/trigger-Color.png b/assets/objects/triggers/Color.png similarity index 100% rename from assets/objects/trigger-Color.png rename to assets/objects/triggers/Color.png diff --git a/assets/objects/trigger-Count.png b/assets/objects/triggers/Count.png similarity index 100% rename from assets/objects/trigger-Count.png rename to assets/objects/triggers/Count.png diff --git a/assets/objects/trigger-DisableTrail.png b/assets/objects/triggers/DisableTrail.png similarity index 100% rename from assets/objects/trigger-DisableTrail.png rename to assets/objects/triggers/DisableTrail.png diff --git a/assets/objects/trigger-EnableTrail.png b/assets/objects/triggers/EnableTrail.png similarity index 100% rename from assets/objects/trigger-EnableTrail.png rename to assets/objects/triggers/EnableTrail.png diff --git a/assets/objects/trigger-Follow.png b/assets/objects/triggers/Follow.png similarity index 100% rename from assets/objects/trigger-Follow.png rename to assets/objects/triggers/Follow.png diff --git a/assets/objects/trigger-FollowPlayerY.png b/assets/objects/triggers/FollowPlayerY.png similarity index 100% rename from assets/objects/trigger-FollowPlayerY.png rename to assets/objects/triggers/FollowPlayerY.png diff --git a/assets/objects/trigger-HidePlayer.png b/assets/objects/triggers/HidePlayer.png similarity index 100% rename from assets/objects/trigger-HidePlayer.png rename to assets/objects/triggers/HidePlayer.png diff --git a/assets/objects/trigger-InstantCount.png b/assets/objects/triggers/InstantCount.png similarity index 100% rename from assets/objects/trigger-InstantCount.png rename to assets/objects/triggers/InstantCount.png diff --git a/assets/objects/trigger-LevelEnd.png b/assets/objects/triggers/LevelEnd.png similarity index 100% rename from assets/objects/trigger-LevelEnd.png rename to assets/objects/triggers/LevelEnd.png diff --git a/assets/objects/trigger-Move.png b/assets/objects/triggers/Move.png similarity index 100% rename from assets/objects/trigger-Move.png rename to assets/objects/triggers/Move.png diff --git a/assets/objects/trigger-OnDeath.png b/assets/objects/triggers/OnDeath.png similarity index 100% rename from assets/objects/trigger-OnDeath.png rename to assets/objects/triggers/OnDeath.png diff --git a/assets/objects/trigger-Pickup.png b/assets/objects/triggers/Pickup.png similarity index 100% rename from assets/objects/trigger-Pickup.png rename to assets/objects/triggers/Pickup.png diff --git a/assets/objects/trigger-Pulse.png b/assets/objects/triggers/Pulse.png similarity index 100% rename from assets/objects/trigger-Pulse.png rename to assets/objects/triggers/Pulse.png diff --git a/assets/objects/trigger-Random.png b/assets/objects/triggers/Random.png similarity index 100% rename from assets/objects/trigger-Random.png rename to assets/objects/triggers/Random.png diff --git a/assets/objects/trigger-Reverse.png b/assets/objects/triggers/Reverse.png similarity index 100% rename from assets/objects/trigger-Reverse.png rename to assets/objects/triggers/Reverse.png diff --git a/assets/objects/trigger-Rotate.png b/assets/objects/triggers/Rotate.png similarity index 100% rename from assets/objects/trigger-Rotate.png rename to assets/objects/triggers/Rotate.png diff --git a/assets/objects/trigger-Shake.png b/assets/objects/triggers/Shake.png similarity index 100% rename from assets/objects/trigger-Shake.png rename to assets/objects/triggers/Shake.png diff --git a/assets/objects/trigger-ShowPlayer.png b/assets/objects/triggers/ShowPlayer.png similarity index 100% rename from assets/objects/trigger-ShowPlayer.png rename to assets/objects/triggers/ShowPlayer.png diff --git a/assets/objects/trigger-Spawn.png b/assets/objects/triggers/Spawn.png similarity index 100% rename from assets/objects/trigger-Spawn.png rename to assets/objects/triggers/Spawn.png diff --git a/assets/objects/trigger-StartPos.png b/assets/objects/triggers/StartPos.png similarity index 100% rename from assets/objects/trigger-StartPos.png rename to assets/objects/triggers/StartPos.png diff --git a/assets/objects/trigger-StartPos2.png b/assets/objects/triggers/StartPos2.png similarity index 100% rename from assets/objects/trigger-StartPos2.png rename to assets/objects/triggers/StartPos2.png diff --git a/assets/objects/trigger-Stop.png b/assets/objects/triggers/Stop.png similarity index 100% rename from assets/objects/trigger-Stop.png rename to assets/objects/triggers/Stop.png diff --git a/assets/objects/trigger-Toggle.png b/assets/objects/triggers/Toggle.png similarity index 100% rename from assets/objects/trigger-Toggle.png rename to assets/objects/triggers/Toggle.png diff --git a/assets/objects/trigger-Touch.png b/assets/objects/triggers/Touch.png similarity index 100% rename from assets/objects/trigger-Touch.png rename to assets/objects/triggers/Touch.png diff --git a/assets/objects/trigger-Transition.png b/assets/objects/triggers/Transition.png similarity index 100% rename from assets/objects/trigger-Transition.png rename to assets/objects/triggers/Transition.png diff --git a/icons/preview/ball-01.png b/assets/previewicons/ball-01.png similarity index 100% rename from icons/preview/ball-01.png rename to assets/previewicons/ball-01.png diff --git a/icons/preview/ball-02.png b/assets/previewicons/ball-02.png similarity index 100% rename from icons/preview/ball-02.png rename to assets/previewicons/ball-02.png diff --git a/icons/preview/ball-03.png b/assets/previewicons/ball-03.png similarity index 100% rename from icons/preview/ball-03.png rename to assets/previewicons/ball-03.png diff --git a/icons/preview/ball-04.png b/assets/previewicons/ball-04.png similarity index 100% rename from icons/preview/ball-04.png rename to assets/previewicons/ball-04.png diff --git a/icons/preview/ball-05.png b/assets/previewicons/ball-05.png similarity index 100% rename from icons/preview/ball-05.png rename to assets/previewicons/ball-05.png diff --git a/icons/preview/ball-06.png b/assets/previewicons/ball-06.png similarity index 100% rename from icons/preview/ball-06.png rename to assets/previewicons/ball-06.png diff --git a/icons/preview/ball-07.png b/assets/previewicons/ball-07.png similarity index 100% rename from icons/preview/ball-07.png rename to assets/previewicons/ball-07.png diff --git a/icons/preview/ball-08.png b/assets/previewicons/ball-08.png similarity index 100% rename from icons/preview/ball-08.png rename to assets/previewicons/ball-08.png diff --git a/icons/preview/ball-09.png b/assets/previewicons/ball-09.png similarity index 100% rename from icons/preview/ball-09.png rename to assets/previewicons/ball-09.png diff --git a/icons/preview/ball-10.png b/assets/previewicons/ball-10.png similarity index 100% rename from icons/preview/ball-10.png rename to assets/previewicons/ball-10.png diff --git a/icons/preview/ball-11.png b/assets/previewicons/ball-11.png similarity index 100% rename from icons/preview/ball-11.png rename to assets/previewicons/ball-11.png diff --git a/icons/preview/ball-12.png b/assets/previewicons/ball-12.png similarity index 100% rename from icons/preview/ball-12.png rename to assets/previewicons/ball-12.png diff --git a/icons/preview/ball-13.png b/assets/previewicons/ball-13.png similarity index 100% rename from icons/preview/ball-13.png rename to assets/previewicons/ball-13.png diff --git a/icons/preview/ball-14.png b/assets/previewicons/ball-14.png similarity index 100% rename from icons/preview/ball-14.png rename to assets/previewicons/ball-14.png diff --git a/icons/preview/ball-15.png b/assets/previewicons/ball-15.png similarity index 100% rename from icons/preview/ball-15.png rename to assets/previewicons/ball-15.png diff --git a/icons/preview/ball-16.png b/assets/previewicons/ball-16.png similarity index 100% rename from icons/preview/ball-16.png rename to assets/previewicons/ball-16.png diff --git a/icons/preview/ball-17.png b/assets/previewicons/ball-17.png similarity index 100% rename from icons/preview/ball-17.png rename to assets/previewicons/ball-17.png diff --git a/icons/preview/ball-18.png b/assets/previewicons/ball-18.png similarity index 100% rename from icons/preview/ball-18.png rename to assets/previewicons/ball-18.png diff --git a/icons/preview/ball-19.png b/assets/previewicons/ball-19.png similarity index 100% rename from icons/preview/ball-19.png rename to assets/previewicons/ball-19.png diff --git a/icons/preview/ball-20.png b/assets/previewicons/ball-20.png similarity index 100% rename from icons/preview/ball-20.png rename to assets/previewicons/ball-20.png diff --git a/icons/preview/ball-21.png b/assets/previewicons/ball-21.png similarity index 100% rename from icons/preview/ball-21.png rename to assets/previewicons/ball-21.png diff --git a/icons/preview/ball-22.png b/assets/previewicons/ball-22.png similarity index 100% rename from icons/preview/ball-22.png rename to assets/previewicons/ball-22.png diff --git a/icons/preview/ball-23.png b/assets/previewicons/ball-23.png similarity index 100% rename from icons/preview/ball-23.png rename to assets/previewicons/ball-23.png diff --git a/icons/preview/ball-24.png b/assets/previewicons/ball-24.png similarity index 100% rename from icons/preview/ball-24.png rename to assets/previewicons/ball-24.png diff --git a/icons/preview/ball-25.png b/assets/previewicons/ball-25.png similarity index 100% rename from icons/preview/ball-25.png rename to assets/previewicons/ball-25.png diff --git a/icons/preview/ball-26.png b/assets/previewicons/ball-26.png similarity index 100% rename from icons/preview/ball-26.png rename to assets/previewicons/ball-26.png diff --git a/icons/preview/ball-27.png b/assets/previewicons/ball-27.png similarity index 100% rename from icons/preview/ball-27.png rename to assets/previewicons/ball-27.png diff --git a/icons/preview/ball-28.png b/assets/previewicons/ball-28.png similarity index 100% rename from icons/preview/ball-28.png rename to assets/previewicons/ball-28.png diff --git a/icons/preview/ball-29.png b/assets/previewicons/ball-29.png similarity index 100% rename from icons/preview/ball-29.png rename to assets/previewicons/ball-29.png diff --git a/icons/preview/ball-30.png b/assets/previewicons/ball-30.png similarity index 100% rename from icons/preview/ball-30.png rename to assets/previewicons/ball-30.png diff --git a/icons/preview/ball-31.png b/assets/previewicons/ball-31.png similarity index 100% rename from icons/preview/ball-31.png rename to assets/previewicons/ball-31.png diff --git a/icons/preview/ball-32.png b/assets/previewicons/ball-32.png similarity index 100% rename from icons/preview/ball-32.png rename to assets/previewicons/ball-32.png diff --git a/icons/preview/ball-33.png b/assets/previewicons/ball-33.png similarity index 100% rename from icons/preview/ball-33.png rename to assets/previewicons/ball-33.png diff --git a/icons/preview/ball-34.png b/assets/previewicons/ball-34.png similarity index 100% rename from icons/preview/ball-34.png rename to assets/previewicons/ball-34.png diff --git a/icons/preview/ball-35.png b/assets/previewicons/ball-35.png similarity index 100% rename from icons/preview/ball-35.png rename to assets/previewicons/ball-35.png diff --git a/icons/preview/ball-36.png b/assets/previewicons/ball-36.png similarity index 100% rename from icons/preview/ball-36.png rename to assets/previewicons/ball-36.png diff --git a/icons/preview/ball-37.png b/assets/previewicons/ball-37.png similarity index 100% rename from icons/preview/ball-37.png rename to assets/previewicons/ball-37.png diff --git a/icons/preview/ball-38.png b/assets/previewicons/ball-38.png similarity index 100% rename from icons/preview/ball-38.png rename to assets/previewicons/ball-38.png diff --git a/icons/preview/ball-39.png b/assets/previewicons/ball-39.png similarity index 100% rename from icons/preview/ball-39.png rename to assets/previewicons/ball-39.png diff --git a/icons/preview/ball-40.png b/assets/previewicons/ball-40.png similarity index 100% rename from icons/preview/ball-40.png rename to assets/previewicons/ball-40.png diff --git a/icons/preview/ball-41.png b/assets/previewicons/ball-41.png similarity index 100% rename from icons/preview/ball-41.png rename to assets/previewicons/ball-41.png diff --git a/icons/preview/ball-42.png b/assets/previewicons/ball-42.png similarity index 100% rename from icons/preview/ball-42.png rename to assets/previewicons/ball-42.png diff --git a/icons/preview/ball-43.png b/assets/previewicons/ball-43.png similarity index 100% rename from icons/preview/ball-43.png rename to assets/previewicons/ball-43.png diff --git a/icons/preview/color_0.png b/assets/previewicons/color_0.png similarity index 100% rename from icons/preview/color_0.png rename to assets/previewicons/color_0.png diff --git a/icons/preview/color_1.png b/assets/previewicons/color_1.png similarity index 100% rename from icons/preview/color_1.png rename to assets/previewicons/color_1.png diff --git a/icons/preview/color_10.png b/assets/previewicons/color_10.png similarity index 100% rename from icons/preview/color_10.png rename to assets/previewicons/color_10.png diff --git a/icons/preview/color_11.png b/assets/previewicons/color_11.png similarity index 100% rename from icons/preview/color_11.png rename to assets/previewicons/color_11.png diff --git a/icons/preview/color_12.png b/assets/previewicons/color_12.png similarity index 100% rename from icons/preview/color_12.png rename to assets/previewicons/color_12.png diff --git a/icons/preview/color_13.png b/assets/previewicons/color_13.png similarity index 100% rename from icons/preview/color_13.png rename to assets/previewicons/color_13.png diff --git a/icons/preview/color_14.png b/assets/previewicons/color_14.png similarity index 100% rename from icons/preview/color_14.png rename to assets/previewicons/color_14.png diff --git a/icons/preview/color_15.png b/assets/previewicons/color_15.png similarity index 100% rename from icons/preview/color_15.png rename to assets/previewicons/color_15.png diff --git a/icons/preview/color_16.png b/assets/previewicons/color_16.png similarity index 100% rename from icons/preview/color_16.png rename to assets/previewicons/color_16.png diff --git a/icons/preview/color_17.png b/assets/previewicons/color_17.png similarity index 100% rename from icons/preview/color_17.png rename to assets/previewicons/color_17.png diff --git a/icons/preview/color_18.png b/assets/previewicons/color_18.png similarity index 100% rename from icons/preview/color_18.png rename to assets/previewicons/color_18.png diff --git a/icons/preview/color_19.png b/assets/previewicons/color_19.png similarity index 100% rename from icons/preview/color_19.png rename to assets/previewicons/color_19.png diff --git a/icons/preview/color_2.png b/assets/previewicons/color_2.png similarity index 100% rename from icons/preview/color_2.png rename to assets/previewicons/color_2.png diff --git a/icons/preview/color_20.png b/assets/previewicons/color_20.png similarity index 100% rename from icons/preview/color_20.png rename to assets/previewicons/color_20.png diff --git a/icons/preview/color_21.png b/assets/previewicons/color_21.png similarity index 100% rename from icons/preview/color_21.png rename to assets/previewicons/color_21.png diff --git a/icons/preview/color_22.png b/assets/previewicons/color_22.png similarity index 100% rename from icons/preview/color_22.png rename to assets/previewicons/color_22.png diff --git a/icons/preview/color_23.png b/assets/previewicons/color_23.png similarity index 100% rename from icons/preview/color_23.png rename to assets/previewicons/color_23.png diff --git a/icons/preview/color_24.png b/assets/previewicons/color_24.png similarity index 100% rename from icons/preview/color_24.png rename to assets/previewicons/color_24.png diff --git a/icons/preview/color_25.png b/assets/previewicons/color_25.png similarity index 100% rename from icons/preview/color_25.png rename to assets/previewicons/color_25.png diff --git a/icons/preview/color_26.png b/assets/previewicons/color_26.png similarity index 100% rename from icons/preview/color_26.png rename to assets/previewicons/color_26.png diff --git a/icons/preview/color_27.png b/assets/previewicons/color_27.png similarity index 100% rename from icons/preview/color_27.png rename to assets/previewicons/color_27.png diff --git a/icons/preview/color_28.png b/assets/previewicons/color_28.png similarity index 100% rename from icons/preview/color_28.png rename to assets/previewicons/color_28.png diff --git a/icons/preview/color_29.png b/assets/previewicons/color_29.png similarity index 100% rename from icons/preview/color_29.png rename to assets/previewicons/color_29.png diff --git a/icons/preview/color_3.png b/assets/previewicons/color_3.png similarity index 100% rename from icons/preview/color_3.png rename to assets/previewicons/color_3.png diff --git a/icons/preview/color_30.png b/assets/previewicons/color_30.png similarity index 100% rename from icons/preview/color_30.png rename to assets/previewicons/color_30.png diff --git a/icons/preview/color_31.png b/assets/previewicons/color_31.png similarity index 100% rename from icons/preview/color_31.png rename to assets/previewicons/color_31.png diff --git a/icons/preview/color_32.png b/assets/previewicons/color_32.png similarity index 100% rename from icons/preview/color_32.png rename to assets/previewicons/color_32.png diff --git a/icons/preview/color_33.png b/assets/previewicons/color_33.png similarity index 100% rename from icons/preview/color_33.png rename to assets/previewicons/color_33.png diff --git a/icons/preview/color_34.png b/assets/previewicons/color_34.png similarity index 100% rename from icons/preview/color_34.png rename to assets/previewicons/color_34.png diff --git a/icons/preview/color_35.png b/assets/previewicons/color_35.png similarity index 100% rename from icons/preview/color_35.png rename to assets/previewicons/color_35.png diff --git a/icons/preview/color_36.png b/assets/previewicons/color_36.png similarity index 100% rename from icons/preview/color_36.png rename to assets/previewicons/color_36.png diff --git a/icons/preview/color_37.png b/assets/previewicons/color_37.png similarity index 100% rename from icons/preview/color_37.png rename to assets/previewicons/color_37.png diff --git a/icons/preview/color_38.png b/assets/previewicons/color_38.png similarity index 100% rename from icons/preview/color_38.png rename to assets/previewicons/color_38.png diff --git a/icons/preview/color_39.png b/assets/previewicons/color_39.png similarity index 100% rename from icons/preview/color_39.png rename to assets/previewicons/color_39.png diff --git a/icons/preview/color_4.png b/assets/previewicons/color_4.png similarity index 100% rename from icons/preview/color_4.png rename to assets/previewicons/color_4.png diff --git a/icons/preview/color_40.png b/assets/previewicons/color_40.png similarity index 100% rename from icons/preview/color_40.png rename to assets/previewicons/color_40.png diff --git a/icons/preview/color_41.png b/assets/previewicons/color_41.png similarity index 100% rename from icons/preview/color_41.png rename to assets/previewicons/color_41.png diff --git a/icons/preview/color_5.png b/assets/previewicons/color_5.png similarity index 100% rename from icons/preview/color_5.png rename to assets/previewicons/color_5.png diff --git a/icons/preview/color_6.png b/assets/previewicons/color_6.png similarity index 100% rename from icons/preview/color_6.png rename to assets/previewicons/color_6.png diff --git a/icons/preview/color_7.png b/assets/previewicons/color_7.png similarity index 100% rename from icons/preview/color_7.png rename to assets/previewicons/color_7.png diff --git a/icons/preview/color_8.png b/assets/previewicons/color_8.png similarity index 100% rename from icons/preview/color_8.png rename to assets/previewicons/color_8.png diff --git a/icons/preview/color_9.png b/assets/previewicons/color_9.png similarity index 100% rename from icons/preview/color_9.png rename to assets/previewicons/color_9.png diff --git a/icons/preview/cube-00.png b/assets/previewicons/cube-00.png similarity index 100% rename from icons/preview/cube-00.png rename to assets/previewicons/cube-00.png diff --git a/icons/preview/cube-01.png b/assets/previewicons/cube-01.png similarity index 100% rename from icons/preview/cube-01.png rename to assets/previewicons/cube-01.png diff --git a/icons/preview/cube-02.png b/assets/previewicons/cube-02.png similarity index 100% rename from icons/preview/cube-02.png rename to assets/previewicons/cube-02.png diff --git a/icons/preview/cube-03.png b/assets/previewicons/cube-03.png similarity index 100% rename from icons/preview/cube-03.png rename to assets/previewicons/cube-03.png diff --git a/icons/preview/cube-04.png b/assets/previewicons/cube-04.png similarity index 100% rename from icons/preview/cube-04.png rename to assets/previewicons/cube-04.png diff --git a/icons/preview/cube-05.png b/assets/previewicons/cube-05.png similarity index 100% rename from icons/preview/cube-05.png rename to assets/previewicons/cube-05.png diff --git a/icons/preview/cube-06.png b/assets/previewicons/cube-06.png similarity index 100% rename from icons/preview/cube-06.png rename to assets/previewicons/cube-06.png diff --git a/icons/preview/cube-07.png b/assets/previewicons/cube-07.png similarity index 100% rename from icons/preview/cube-07.png rename to assets/previewicons/cube-07.png diff --git a/icons/preview/cube-08.png b/assets/previewicons/cube-08.png similarity index 100% rename from icons/preview/cube-08.png rename to assets/previewicons/cube-08.png diff --git a/icons/preview/cube-09.png b/assets/previewicons/cube-09.png similarity index 100% rename from icons/preview/cube-09.png rename to assets/previewicons/cube-09.png diff --git a/icons/preview/cube-10.png b/assets/previewicons/cube-10.png similarity index 100% rename from icons/preview/cube-10.png rename to assets/previewicons/cube-10.png diff --git a/icons/preview/cube-100.png b/assets/previewicons/cube-100.png similarity index 100% rename from icons/preview/cube-100.png rename to assets/previewicons/cube-100.png diff --git a/icons/preview/cube-101.png b/assets/previewicons/cube-101.png similarity index 100% rename from icons/preview/cube-101.png rename to assets/previewicons/cube-101.png diff --git a/icons/preview/cube-102.png b/assets/previewicons/cube-102.png similarity index 100% rename from icons/preview/cube-102.png rename to assets/previewicons/cube-102.png diff --git a/icons/preview/cube-103.png b/assets/previewicons/cube-103.png similarity index 100% rename from icons/preview/cube-103.png rename to assets/previewicons/cube-103.png diff --git a/icons/preview/cube-104.png b/assets/previewicons/cube-104.png similarity index 100% rename from icons/preview/cube-104.png rename to assets/previewicons/cube-104.png diff --git a/icons/preview/cube-105.png b/assets/previewicons/cube-105.png similarity index 100% rename from icons/preview/cube-105.png rename to assets/previewicons/cube-105.png diff --git a/icons/preview/cube-106.png b/assets/previewicons/cube-106.png similarity index 100% rename from icons/preview/cube-106.png rename to assets/previewicons/cube-106.png diff --git a/icons/preview/cube-107.png b/assets/previewicons/cube-107.png similarity index 100% rename from icons/preview/cube-107.png rename to assets/previewicons/cube-107.png diff --git a/icons/preview/cube-108.png b/assets/previewicons/cube-108.png similarity index 100% rename from icons/preview/cube-108.png rename to assets/previewicons/cube-108.png diff --git a/icons/preview/cube-109.png b/assets/previewicons/cube-109.png similarity index 100% rename from icons/preview/cube-109.png rename to assets/previewicons/cube-109.png diff --git a/icons/preview/cube-11.png b/assets/previewicons/cube-11.png similarity index 100% rename from icons/preview/cube-11.png rename to assets/previewicons/cube-11.png diff --git a/icons/preview/cube-110.png b/assets/previewicons/cube-110.png similarity index 100% rename from icons/preview/cube-110.png rename to assets/previewicons/cube-110.png diff --git a/icons/preview/cube-111.png b/assets/previewicons/cube-111.png similarity index 100% rename from icons/preview/cube-111.png rename to assets/previewicons/cube-111.png diff --git a/icons/preview/cube-112.png b/assets/previewicons/cube-112.png similarity index 100% rename from icons/preview/cube-112.png rename to assets/previewicons/cube-112.png diff --git a/icons/preview/cube-113.png b/assets/previewicons/cube-113.png similarity index 100% rename from icons/preview/cube-113.png rename to assets/previewicons/cube-113.png diff --git a/icons/preview/cube-114.png b/assets/previewicons/cube-114.png similarity index 100% rename from icons/preview/cube-114.png rename to assets/previewicons/cube-114.png diff --git a/icons/preview/cube-115.png b/assets/previewicons/cube-115.png similarity index 100% rename from icons/preview/cube-115.png rename to assets/previewicons/cube-115.png diff --git a/icons/preview/cube-116.png b/assets/previewicons/cube-116.png similarity index 100% rename from icons/preview/cube-116.png rename to assets/previewicons/cube-116.png diff --git a/icons/preview/cube-117.png b/assets/previewicons/cube-117.png similarity index 100% rename from icons/preview/cube-117.png rename to assets/previewicons/cube-117.png diff --git a/icons/preview/cube-118.png b/assets/previewicons/cube-118.png similarity index 100% rename from icons/preview/cube-118.png rename to assets/previewicons/cube-118.png diff --git a/icons/preview/cube-119.png b/assets/previewicons/cube-119.png similarity index 100% rename from icons/preview/cube-119.png rename to assets/previewicons/cube-119.png diff --git a/icons/preview/cube-12.png b/assets/previewicons/cube-12.png similarity index 100% rename from icons/preview/cube-12.png rename to assets/previewicons/cube-12.png diff --git a/icons/preview/cube-120.png b/assets/previewicons/cube-120.png similarity index 100% rename from icons/preview/cube-120.png rename to assets/previewicons/cube-120.png diff --git a/icons/preview/cube-121.png b/assets/previewicons/cube-121.png similarity index 100% rename from icons/preview/cube-121.png rename to assets/previewicons/cube-121.png diff --git a/icons/preview/cube-122.png b/assets/previewicons/cube-122.png similarity index 100% rename from icons/preview/cube-122.png rename to assets/previewicons/cube-122.png diff --git a/icons/preview/cube-123.png b/assets/previewicons/cube-123.png similarity index 100% rename from icons/preview/cube-123.png rename to assets/previewicons/cube-123.png diff --git a/icons/preview/cube-124.png b/assets/previewicons/cube-124.png similarity index 100% rename from icons/preview/cube-124.png rename to assets/previewicons/cube-124.png diff --git a/icons/preview/cube-125.png b/assets/previewicons/cube-125.png similarity index 100% rename from icons/preview/cube-125.png rename to assets/previewicons/cube-125.png diff --git a/icons/preview/cube-126.png b/assets/previewicons/cube-126.png similarity index 100% rename from icons/preview/cube-126.png rename to assets/previewicons/cube-126.png diff --git a/icons/preview/cube-127.png b/assets/previewicons/cube-127.png similarity index 100% rename from icons/preview/cube-127.png rename to assets/previewicons/cube-127.png diff --git a/icons/preview/cube-128.png b/assets/previewicons/cube-128.png similarity index 100% rename from icons/preview/cube-128.png rename to assets/previewicons/cube-128.png diff --git a/icons/preview/cube-129.png b/assets/previewicons/cube-129.png similarity index 100% rename from icons/preview/cube-129.png rename to assets/previewicons/cube-129.png diff --git a/icons/preview/cube-13.png b/assets/previewicons/cube-13.png similarity index 100% rename from icons/preview/cube-13.png rename to assets/previewicons/cube-13.png diff --git a/icons/preview/cube-130.png b/assets/previewicons/cube-130.png similarity index 100% rename from icons/preview/cube-130.png rename to assets/previewicons/cube-130.png diff --git a/icons/preview/cube-131.png b/assets/previewicons/cube-131.png similarity index 100% rename from icons/preview/cube-131.png rename to assets/previewicons/cube-131.png diff --git a/icons/preview/cube-132.png b/assets/previewicons/cube-132.png similarity index 100% rename from icons/preview/cube-132.png rename to assets/previewicons/cube-132.png diff --git a/icons/preview/cube-133.png b/assets/previewicons/cube-133.png similarity index 100% rename from icons/preview/cube-133.png rename to assets/previewicons/cube-133.png diff --git a/icons/preview/cube-134.png b/assets/previewicons/cube-134.png similarity index 100% rename from icons/preview/cube-134.png rename to assets/previewicons/cube-134.png diff --git a/icons/preview/cube-135.png b/assets/previewicons/cube-135.png similarity index 100% rename from icons/preview/cube-135.png rename to assets/previewicons/cube-135.png diff --git a/icons/preview/cube-136.png b/assets/previewicons/cube-136.png similarity index 100% rename from icons/preview/cube-136.png rename to assets/previewicons/cube-136.png diff --git a/icons/preview/cube-137.png b/assets/previewicons/cube-137.png similarity index 100% rename from icons/preview/cube-137.png rename to assets/previewicons/cube-137.png diff --git a/icons/preview/cube-138.png b/assets/previewicons/cube-138.png similarity index 100% rename from icons/preview/cube-138.png rename to assets/previewicons/cube-138.png diff --git a/icons/preview/cube-139.png b/assets/previewicons/cube-139.png similarity index 100% rename from icons/preview/cube-139.png rename to assets/previewicons/cube-139.png diff --git a/icons/preview/cube-14.png b/assets/previewicons/cube-14.png similarity index 100% rename from icons/preview/cube-14.png rename to assets/previewicons/cube-14.png diff --git a/icons/preview/cube-140.png b/assets/previewicons/cube-140.png similarity index 100% rename from icons/preview/cube-140.png rename to assets/previewicons/cube-140.png diff --git a/icons/preview/cube-141.png b/assets/previewicons/cube-141.png similarity index 100% rename from icons/preview/cube-141.png rename to assets/previewicons/cube-141.png diff --git a/icons/preview/cube-142.png b/assets/previewicons/cube-142.png similarity index 100% rename from icons/preview/cube-142.png rename to assets/previewicons/cube-142.png diff --git a/icons/preview/cube-15.png b/assets/previewicons/cube-15.png similarity index 100% rename from icons/preview/cube-15.png rename to assets/previewicons/cube-15.png diff --git a/icons/preview/cube-16.png b/assets/previewicons/cube-16.png similarity index 100% rename from icons/preview/cube-16.png rename to assets/previewicons/cube-16.png diff --git a/icons/preview/cube-17.png b/assets/previewicons/cube-17.png similarity index 100% rename from icons/preview/cube-17.png rename to assets/previewicons/cube-17.png diff --git a/icons/preview/cube-18.png b/assets/previewicons/cube-18.png similarity index 100% rename from icons/preview/cube-18.png rename to assets/previewicons/cube-18.png diff --git a/icons/preview/cube-19.png b/assets/previewicons/cube-19.png similarity index 100% rename from icons/preview/cube-19.png rename to assets/previewicons/cube-19.png diff --git a/icons/preview/cube-20.png b/assets/previewicons/cube-20.png similarity index 100% rename from icons/preview/cube-20.png rename to assets/previewicons/cube-20.png diff --git a/icons/preview/cube-21.png b/assets/previewicons/cube-21.png similarity index 100% rename from icons/preview/cube-21.png rename to assets/previewicons/cube-21.png diff --git a/icons/preview/cube-22.png b/assets/previewicons/cube-22.png similarity index 100% rename from icons/preview/cube-22.png rename to assets/previewicons/cube-22.png diff --git a/icons/preview/cube-23.png b/assets/previewicons/cube-23.png similarity index 100% rename from icons/preview/cube-23.png rename to assets/previewicons/cube-23.png diff --git a/icons/preview/cube-24.png b/assets/previewicons/cube-24.png similarity index 100% rename from icons/preview/cube-24.png rename to assets/previewicons/cube-24.png diff --git a/icons/preview/cube-25.png b/assets/previewicons/cube-25.png similarity index 100% rename from icons/preview/cube-25.png rename to assets/previewicons/cube-25.png diff --git a/icons/preview/cube-26.png b/assets/previewicons/cube-26.png similarity index 100% rename from icons/preview/cube-26.png rename to assets/previewicons/cube-26.png diff --git a/icons/preview/cube-27.png b/assets/previewicons/cube-27.png similarity index 100% rename from icons/preview/cube-27.png rename to assets/previewicons/cube-27.png diff --git a/icons/preview/cube-28.png b/assets/previewicons/cube-28.png similarity index 100% rename from icons/preview/cube-28.png rename to assets/previewicons/cube-28.png diff --git a/icons/preview/cube-29.png b/assets/previewicons/cube-29.png similarity index 100% rename from icons/preview/cube-29.png rename to assets/previewicons/cube-29.png diff --git a/icons/preview/cube-30.png b/assets/previewicons/cube-30.png similarity index 100% rename from icons/preview/cube-30.png rename to assets/previewicons/cube-30.png diff --git a/icons/preview/cube-31.png b/assets/previewicons/cube-31.png similarity index 100% rename from icons/preview/cube-31.png rename to assets/previewicons/cube-31.png diff --git a/icons/preview/cube-32.png b/assets/previewicons/cube-32.png similarity index 100% rename from icons/preview/cube-32.png rename to assets/previewicons/cube-32.png diff --git a/icons/preview/cube-33.png b/assets/previewicons/cube-33.png similarity index 100% rename from icons/preview/cube-33.png rename to assets/previewicons/cube-33.png diff --git a/icons/preview/cube-34.png b/assets/previewicons/cube-34.png similarity index 100% rename from icons/preview/cube-34.png rename to assets/previewicons/cube-34.png diff --git a/icons/preview/cube-35.png b/assets/previewicons/cube-35.png similarity index 100% rename from icons/preview/cube-35.png rename to assets/previewicons/cube-35.png diff --git a/icons/preview/cube-36.png b/assets/previewicons/cube-36.png similarity index 100% rename from icons/preview/cube-36.png rename to assets/previewicons/cube-36.png diff --git a/icons/preview/cube-37.png b/assets/previewicons/cube-37.png similarity index 100% rename from icons/preview/cube-37.png rename to assets/previewicons/cube-37.png diff --git a/icons/preview/cube-38.png b/assets/previewicons/cube-38.png similarity index 100% rename from icons/preview/cube-38.png rename to assets/previewicons/cube-38.png diff --git a/icons/preview/cube-39.png b/assets/previewicons/cube-39.png similarity index 100% rename from icons/preview/cube-39.png rename to assets/previewicons/cube-39.png diff --git a/icons/preview/cube-40.png b/assets/previewicons/cube-40.png similarity index 100% rename from icons/preview/cube-40.png rename to assets/previewicons/cube-40.png diff --git a/icons/preview/cube-41.png b/assets/previewicons/cube-41.png similarity index 100% rename from icons/preview/cube-41.png rename to assets/previewicons/cube-41.png diff --git a/icons/preview/cube-42.png b/assets/previewicons/cube-42.png similarity index 100% rename from icons/preview/cube-42.png rename to assets/previewicons/cube-42.png diff --git a/icons/preview/cube-43.png b/assets/previewicons/cube-43.png similarity index 100% rename from icons/preview/cube-43.png rename to assets/previewicons/cube-43.png diff --git a/icons/preview/cube-44.png b/assets/previewicons/cube-44.png similarity index 100% rename from icons/preview/cube-44.png rename to assets/previewicons/cube-44.png diff --git a/icons/preview/cube-45.png b/assets/previewicons/cube-45.png similarity index 100% rename from icons/preview/cube-45.png rename to assets/previewicons/cube-45.png diff --git a/icons/preview/cube-46.png b/assets/previewicons/cube-46.png similarity index 100% rename from icons/preview/cube-46.png rename to assets/previewicons/cube-46.png diff --git a/icons/preview/cube-47.png b/assets/previewicons/cube-47.png similarity index 100% rename from icons/preview/cube-47.png rename to assets/previewicons/cube-47.png diff --git a/icons/preview/cube-48.png b/assets/previewicons/cube-48.png similarity index 100% rename from icons/preview/cube-48.png rename to assets/previewicons/cube-48.png diff --git a/icons/preview/cube-49.png b/assets/previewicons/cube-49.png similarity index 100% rename from icons/preview/cube-49.png rename to assets/previewicons/cube-49.png diff --git a/icons/preview/cube-50.png b/assets/previewicons/cube-50.png similarity index 100% rename from icons/preview/cube-50.png rename to assets/previewicons/cube-50.png diff --git a/icons/preview/cube-51.png b/assets/previewicons/cube-51.png similarity index 100% rename from icons/preview/cube-51.png rename to assets/previewicons/cube-51.png diff --git a/icons/preview/cube-52.png b/assets/previewicons/cube-52.png similarity index 100% rename from icons/preview/cube-52.png rename to assets/previewicons/cube-52.png diff --git a/icons/preview/cube-53.png b/assets/previewicons/cube-53.png similarity index 100% rename from icons/preview/cube-53.png rename to assets/previewicons/cube-53.png diff --git a/icons/preview/cube-54.png b/assets/previewicons/cube-54.png similarity index 100% rename from icons/preview/cube-54.png rename to assets/previewicons/cube-54.png diff --git a/icons/preview/cube-55.png b/assets/previewicons/cube-55.png similarity index 100% rename from icons/preview/cube-55.png rename to assets/previewicons/cube-55.png diff --git a/icons/preview/cube-56.png b/assets/previewicons/cube-56.png similarity index 100% rename from icons/preview/cube-56.png rename to assets/previewicons/cube-56.png diff --git a/icons/preview/cube-57.png b/assets/previewicons/cube-57.png similarity index 100% rename from icons/preview/cube-57.png rename to assets/previewicons/cube-57.png diff --git a/icons/preview/cube-58.png b/assets/previewicons/cube-58.png similarity index 100% rename from icons/preview/cube-58.png rename to assets/previewicons/cube-58.png diff --git a/icons/preview/cube-59.png b/assets/previewicons/cube-59.png similarity index 100% rename from icons/preview/cube-59.png rename to assets/previewicons/cube-59.png diff --git a/icons/preview/cube-60.png b/assets/previewicons/cube-60.png similarity index 100% rename from icons/preview/cube-60.png rename to assets/previewicons/cube-60.png diff --git a/icons/preview/cube-61.png b/assets/previewicons/cube-61.png similarity index 100% rename from icons/preview/cube-61.png rename to assets/previewicons/cube-61.png diff --git a/icons/preview/cube-62.png b/assets/previewicons/cube-62.png similarity index 100% rename from icons/preview/cube-62.png rename to assets/previewicons/cube-62.png diff --git a/icons/preview/cube-63.png b/assets/previewicons/cube-63.png similarity index 100% rename from icons/preview/cube-63.png rename to assets/previewicons/cube-63.png diff --git a/icons/preview/cube-64.png b/assets/previewicons/cube-64.png similarity index 100% rename from icons/preview/cube-64.png rename to assets/previewicons/cube-64.png diff --git a/icons/preview/cube-65.png b/assets/previewicons/cube-65.png similarity index 100% rename from icons/preview/cube-65.png rename to assets/previewicons/cube-65.png diff --git a/icons/preview/cube-66.png b/assets/previewicons/cube-66.png similarity index 100% rename from icons/preview/cube-66.png rename to assets/previewicons/cube-66.png diff --git a/icons/preview/cube-67.png b/assets/previewicons/cube-67.png similarity index 100% rename from icons/preview/cube-67.png rename to assets/previewicons/cube-67.png diff --git a/icons/preview/cube-68.png b/assets/previewicons/cube-68.png similarity index 100% rename from icons/preview/cube-68.png rename to assets/previewicons/cube-68.png diff --git a/icons/preview/cube-69.png b/assets/previewicons/cube-69.png similarity index 100% rename from icons/preview/cube-69.png rename to assets/previewicons/cube-69.png diff --git a/icons/preview/cube-70.png b/assets/previewicons/cube-70.png similarity index 100% rename from icons/preview/cube-70.png rename to assets/previewicons/cube-70.png diff --git a/icons/preview/cube-71.png b/assets/previewicons/cube-71.png similarity index 100% rename from icons/preview/cube-71.png rename to assets/previewicons/cube-71.png diff --git a/icons/preview/cube-72.png b/assets/previewicons/cube-72.png similarity index 100% rename from icons/preview/cube-72.png rename to assets/previewicons/cube-72.png diff --git a/icons/preview/cube-73.png b/assets/previewicons/cube-73.png similarity index 100% rename from icons/preview/cube-73.png rename to assets/previewicons/cube-73.png diff --git a/icons/preview/cube-74.png b/assets/previewicons/cube-74.png similarity index 100% rename from icons/preview/cube-74.png rename to assets/previewicons/cube-74.png diff --git a/icons/preview/cube-75.png b/assets/previewicons/cube-75.png similarity index 100% rename from icons/preview/cube-75.png rename to assets/previewicons/cube-75.png diff --git a/icons/preview/cube-76.png b/assets/previewicons/cube-76.png similarity index 100% rename from icons/preview/cube-76.png rename to assets/previewicons/cube-76.png diff --git a/icons/preview/cube-77.png b/assets/previewicons/cube-77.png similarity index 100% rename from icons/preview/cube-77.png rename to assets/previewicons/cube-77.png diff --git a/icons/preview/cube-78.png b/assets/previewicons/cube-78.png similarity index 100% rename from icons/preview/cube-78.png rename to assets/previewicons/cube-78.png diff --git a/icons/preview/cube-79.png b/assets/previewicons/cube-79.png similarity index 100% rename from icons/preview/cube-79.png rename to assets/previewicons/cube-79.png diff --git a/icons/preview/cube-80.png b/assets/previewicons/cube-80.png similarity index 100% rename from icons/preview/cube-80.png rename to assets/previewicons/cube-80.png diff --git a/icons/preview/cube-81.png b/assets/previewicons/cube-81.png similarity index 100% rename from icons/preview/cube-81.png rename to assets/previewicons/cube-81.png diff --git a/icons/preview/cube-82.png b/assets/previewicons/cube-82.png similarity index 100% rename from icons/preview/cube-82.png rename to assets/previewicons/cube-82.png diff --git a/icons/preview/cube-83.png b/assets/previewicons/cube-83.png similarity index 100% rename from icons/preview/cube-83.png rename to assets/previewicons/cube-83.png diff --git a/icons/preview/cube-84.png b/assets/previewicons/cube-84.png similarity index 100% rename from icons/preview/cube-84.png rename to assets/previewicons/cube-84.png diff --git a/icons/preview/cube-85.png b/assets/previewicons/cube-85.png similarity index 100% rename from icons/preview/cube-85.png rename to assets/previewicons/cube-85.png diff --git a/icons/preview/cube-86.png b/assets/previewicons/cube-86.png similarity index 100% rename from icons/preview/cube-86.png rename to assets/previewicons/cube-86.png diff --git a/icons/preview/cube-87.png b/assets/previewicons/cube-87.png similarity index 100% rename from icons/preview/cube-87.png rename to assets/previewicons/cube-87.png diff --git a/icons/preview/cube-88.png b/assets/previewicons/cube-88.png similarity index 100% rename from icons/preview/cube-88.png rename to assets/previewicons/cube-88.png diff --git a/icons/preview/cube-89.png b/assets/previewicons/cube-89.png similarity index 100% rename from icons/preview/cube-89.png rename to assets/previewicons/cube-89.png diff --git a/icons/preview/cube-90.png b/assets/previewicons/cube-90.png similarity index 100% rename from icons/preview/cube-90.png rename to assets/previewicons/cube-90.png diff --git a/icons/preview/cube-91.png b/assets/previewicons/cube-91.png similarity index 100% rename from icons/preview/cube-91.png rename to assets/previewicons/cube-91.png diff --git a/icons/preview/cube-92.png b/assets/previewicons/cube-92.png similarity index 100% rename from icons/preview/cube-92.png rename to assets/previewicons/cube-92.png diff --git a/icons/preview/cube-93.png b/assets/previewicons/cube-93.png similarity index 100% rename from icons/preview/cube-93.png rename to assets/previewicons/cube-93.png diff --git a/icons/preview/cube-94.png b/assets/previewicons/cube-94.png similarity index 100% rename from icons/preview/cube-94.png rename to assets/previewicons/cube-94.png diff --git a/icons/preview/cube-95.png b/assets/previewicons/cube-95.png similarity index 100% rename from icons/preview/cube-95.png rename to assets/previewicons/cube-95.png diff --git a/icons/preview/cube-96.png b/assets/previewicons/cube-96.png similarity index 100% rename from icons/preview/cube-96.png rename to assets/previewicons/cube-96.png diff --git a/icons/preview/cube-97.png b/assets/previewicons/cube-97.png similarity index 100% rename from icons/preview/cube-97.png rename to assets/previewicons/cube-97.png diff --git a/icons/preview/cube-98.png b/assets/previewicons/cube-98.png similarity index 100% rename from icons/preview/cube-98.png rename to assets/previewicons/cube-98.png diff --git a/icons/preview/cube-99.png b/assets/previewicons/cube-99.png similarity index 100% rename from icons/preview/cube-99.png rename to assets/previewicons/cube-99.png diff --git a/icons/preview/robot-01.png b/assets/previewicons/robot-01.png similarity index 100% rename from icons/preview/robot-01.png rename to assets/previewicons/robot-01.png diff --git a/icons/preview/robot-02.png b/assets/previewicons/robot-02.png similarity index 100% rename from icons/preview/robot-02.png rename to assets/previewicons/robot-02.png diff --git a/icons/preview/robot-03.png b/assets/previewicons/robot-03.png similarity index 100% rename from icons/preview/robot-03.png rename to assets/previewicons/robot-03.png diff --git a/icons/preview/robot-04.png b/assets/previewicons/robot-04.png similarity index 100% rename from icons/preview/robot-04.png rename to assets/previewicons/robot-04.png diff --git a/icons/preview/robot-05.png b/assets/previewicons/robot-05.png similarity index 100% rename from icons/preview/robot-05.png rename to assets/previewicons/robot-05.png diff --git a/icons/preview/robot-06.png b/assets/previewicons/robot-06.png similarity index 100% rename from icons/preview/robot-06.png rename to assets/previewicons/robot-06.png diff --git a/icons/preview/robot-07.png b/assets/previewicons/robot-07.png similarity index 100% rename from icons/preview/robot-07.png rename to assets/previewicons/robot-07.png diff --git a/icons/preview/robot-08.png b/assets/previewicons/robot-08.png similarity index 100% rename from icons/preview/robot-08.png rename to assets/previewicons/robot-08.png diff --git a/icons/preview/robot-09.png b/assets/previewicons/robot-09.png similarity index 100% rename from icons/preview/robot-09.png rename to assets/previewicons/robot-09.png diff --git a/icons/preview/robot-10.png b/assets/previewicons/robot-10.png similarity index 100% rename from icons/preview/robot-10.png rename to assets/previewicons/robot-10.png diff --git a/icons/preview/robot-11.png b/assets/previewicons/robot-11.png similarity index 100% rename from icons/preview/robot-11.png rename to assets/previewicons/robot-11.png diff --git a/icons/preview/robot-12.png b/assets/previewicons/robot-12.png similarity index 100% rename from icons/preview/robot-12.png rename to assets/previewicons/robot-12.png diff --git a/icons/preview/robot-13.png b/assets/previewicons/robot-13.png similarity index 100% rename from icons/preview/robot-13.png rename to assets/previewicons/robot-13.png diff --git a/icons/preview/robot-14.png b/assets/previewicons/robot-14.png similarity index 100% rename from icons/preview/robot-14.png rename to assets/previewicons/robot-14.png diff --git a/icons/preview/robot-15.png b/assets/previewicons/robot-15.png similarity index 100% rename from icons/preview/robot-15.png rename to assets/previewicons/robot-15.png diff --git a/icons/preview/robot-16.png b/assets/previewicons/robot-16.png similarity index 100% rename from icons/preview/robot-16.png rename to assets/previewicons/robot-16.png diff --git a/icons/preview/robot-17.png b/assets/previewicons/robot-17.png similarity index 100% rename from icons/preview/robot-17.png rename to assets/previewicons/robot-17.png diff --git a/icons/preview/robot-18.png b/assets/previewicons/robot-18.png similarity index 100% rename from icons/preview/robot-18.png rename to assets/previewicons/robot-18.png diff --git a/icons/preview/robot-19.png b/assets/previewicons/robot-19.png similarity index 100% rename from icons/preview/robot-19.png rename to assets/previewicons/robot-19.png diff --git a/icons/preview/robot-20.png b/assets/previewicons/robot-20.png similarity index 100% rename from icons/preview/robot-20.png rename to assets/previewicons/robot-20.png diff --git a/icons/preview/robot-21.png b/assets/previewicons/robot-21.png similarity index 100% rename from icons/preview/robot-21.png rename to assets/previewicons/robot-21.png diff --git a/icons/preview/robot-22.png b/assets/previewicons/robot-22.png similarity index 100% rename from icons/preview/robot-22.png rename to assets/previewicons/robot-22.png diff --git a/icons/preview/robot-23.png b/assets/previewicons/robot-23.png similarity index 100% rename from icons/preview/robot-23.png rename to assets/previewicons/robot-23.png diff --git a/icons/preview/robot-24.png b/assets/previewicons/robot-24.png similarity index 100% rename from icons/preview/robot-24.png rename to assets/previewicons/robot-24.png diff --git a/icons/preview/robot-25.png b/assets/previewicons/robot-25.png similarity index 100% rename from icons/preview/robot-25.png rename to assets/previewicons/robot-25.png diff --git a/icons/preview/robot-26.png b/assets/previewicons/robot-26.png similarity index 100% rename from icons/preview/robot-26.png rename to assets/previewicons/robot-26.png diff --git a/icons/preview/ship-01.png b/assets/previewicons/ship-01.png similarity index 100% rename from icons/preview/ship-01.png rename to assets/previewicons/ship-01.png diff --git a/icons/preview/ship-02.png b/assets/previewicons/ship-02.png similarity index 100% rename from icons/preview/ship-02.png rename to assets/previewicons/ship-02.png diff --git a/icons/preview/ship-03.png b/assets/previewicons/ship-03.png similarity index 100% rename from icons/preview/ship-03.png rename to assets/previewicons/ship-03.png diff --git a/icons/preview/ship-04.png b/assets/previewicons/ship-04.png similarity index 100% rename from icons/preview/ship-04.png rename to assets/previewicons/ship-04.png diff --git a/icons/preview/ship-05.png b/assets/previewicons/ship-05.png similarity index 100% rename from icons/preview/ship-05.png rename to assets/previewicons/ship-05.png diff --git a/icons/preview/ship-06.png b/assets/previewicons/ship-06.png similarity index 100% rename from icons/preview/ship-06.png rename to assets/previewicons/ship-06.png diff --git a/icons/preview/ship-07.png b/assets/previewicons/ship-07.png similarity index 100% rename from icons/preview/ship-07.png rename to assets/previewicons/ship-07.png diff --git a/icons/preview/ship-08.png b/assets/previewicons/ship-08.png similarity index 100% rename from icons/preview/ship-08.png rename to assets/previewicons/ship-08.png diff --git a/icons/preview/ship-09.png b/assets/previewicons/ship-09.png similarity index 100% rename from icons/preview/ship-09.png rename to assets/previewicons/ship-09.png diff --git a/icons/preview/ship-10.png b/assets/previewicons/ship-10.png similarity index 100% rename from icons/preview/ship-10.png rename to assets/previewicons/ship-10.png diff --git a/icons/preview/ship-11.png b/assets/previewicons/ship-11.png similarity index 100% rename from icons/preview/ship-11.png rename to assets/previewicons/ship-11.png diff --git a/icons/preview/ship-12.png b/assets/previewicons/ship-12.png similarity index 100% rename from icons/preview/ship-12.png rename to assets/previewicons/ship-12.png diff --git a/icons/preview/ship-13.png b/assets/previewicons/ship-13.png similarity index 100% rename from icons/preview/ship-13.png rename to assets/previewicons/ship-13.png diff --git a/icons/preview/ship-14.png b/assets/previewicons/ship-14.png similarity index 100% rename from icons/preview/ship-14.png rename to assets/previewicons/ship-14.png diff --git a/icons/preview/ship-15.png b/assets/previewicons/ship-15.png similarity index 100% rename from icons/preview/ship-15.png rename to assets/previewicons/ship-15.png diff --git a/icons/preview/ship-16.png b/assets/previewicons/ship-16.png similarity index 100% rename from icons/preview/ship-16.png rename to assets/previewicons/ship-16.png diff --git a/icons/preview/ship-17.png b/assets/previewicons/ship-17.png similarity index 100% rename from icons/preview/ship-17.png rename to assets/previewicons/ship-17.png diff --git a/icons/preview/ship-18.png b/assets/previewicons/ship-18.png similarity index 100% rename from icons/preview/ship-18.png rename to assets/previewicons/ship-18.png diff --git a/icons/preview/ship-19.png b/assets/previewicons/ship-19.png similarity index 100% rename from icons/preview/ship-19.png rename to assets/previewicons/ship-19.png diff --git a/icons/preview/ship-20.png b/assets/previewicons/ship-20.png similarity index 100% rename from icons/preview/ship-20.png rename to assets/previewicons/ship-20.png diff --git a/icons/preview/ship-21.png b/assets/previewicons/ship-21.png similarity index 100% rename from icons/preview/ship-21.png rename to assets/previewicons/ship-21.png diff --git a/icons/preview/ship-22.png b/assets/previewicons/ship-22.png similarity index 100% rename from icons/preview/ship-22.png rename to assets/previewicons/ship-22.png diff --git a/icons/preview/ship-23.png b/assets/previewicons/ship-23.png similarity index 100% rename from icons/preview/ship-23.png rename to assets/previewicons/ship-23.png diff --git a/icons/preview/ship-24.png b/assets/previewicons/ship-24.png similarity index 100% rename from icons/preview/ship-24.png rename to assets/previewicons/ship-24.png diff --git a/icons/preview/ship-25.png b/assets/previewicons/ship-25.png similarity index 100% rename from icons/preview/ship-25.png rename to assets/previewicons/ship-25.png diff --git a/icons/preview/ship-26.png b/assets/previewicons/ship-26.png similarity index 100% rename from icons/preview/ship-26.png rename to assets/previewicons/ship-26.png diff --git a/icons/preview/ship-27.png b/assets/previewicons/ship-27.png similarity index 100% rename from icons/preview/ship-27.png rename to assets/previewicons/ship-27.png diff --git a/icons/preview/ship-28.png b/assets/previewicons/ship-28.png similarity index 100% rename from icons/preview/ship-28.png rename to assets/previewicons/ship-28.png diff --git a/icons/preview/ship-29.png b/assets/previewicons/ship-29.png similarity index 100% rename from icons/preview/ship-29.png rename to assets/previewicons/ship-29.png diff --git a/icons/preview/ship-30.png b/assets/previewicons/ship-30.png similarity index 100% rename from icons/preview/ship-30.png rename to assets/previewicons/ship-30.png diff --git a/icons/preview/ship-31.png b/assets/previewicons/ship-31.png similarity index 100% rename from icons/preview/ship-31.png rename to assets/previewicons/ship-31.png diff --git a/icons/preview/ship-32.png b/assets/previewicons/ship-32.png similarity index 100% rename from icons/preview/ship-32.png rename to assets/previewicons/ship-32.png diff --git a/icons/preview/ship-33.png b/assets/previewicons/ship-33.png similarity index 100% rename from icons/preview/ship-33.png rename to assets/previewicons/ship-33.png diff --git a/icons/preview/ship-34.png b/assets/previewicons/ship-34.png similarity index 100% rename from icons/preview/ship-34.png rename to assets/previewicons/ship-34.png diff --git a/icons/preview/ship-35.png b/assets/previewicons/ship-35.png similarity index 100% rename from icons/preview/ship-35.png rename to assets/previewicons/ship-35.png diff --git a/icons/preview/ship-36.png b/assets/previewicons/ship-36.png similarity index 100% rename from icons/preview/ship-36.png rename to assets/previewicons/ship-36.png diff --git a/icons/preview/ship-37.png b/assets/previewicons/ship-37.png similarity index 100% rename from icons/preview/ship-37.png rename to assets/previewicons/ship-37.png diff --git a/icons/preview/ship-38.png b/assets/previewicons/ship-38.png similarity index 100% rename from icons/preview/ship-38.png rename to assets/previewicons/ship-38.png diff --git a/icons/preview/ship-39.png b/assets/previewicons/ship-39.png similarity index 100% rename from icons/preview/ship-39.png rename to assets/previewicons/ship-39.png diff --git a/icons/preview/ship-40.png b/assets/previewicons/ship-40.png similarity index 100% rename from icons/preview/ship-40.png rename to assets/previewicons/ship-40.png diff --git a/icons/preview/ship-41.png b/assets/previewicons/ship-41.png similarity index 100% rename from icons/preview/ship-41.png rename to assets/previewicons/ship-41.png diff --git a/icons/preview/ship-42.png b/assets/previewicons/ship-42.png similarity index 100% rename from icons/preview/ship-42.png rename to assets/previewicons/ship-42.png diff --git a/icons/preview/ship-43.png b/assets/previewicons/ship-43.png similarity index 100% rename from icons/preview/ship-43.png rename to assets/previewicons/ship-43.png diff --git a/icons/preview/ship-44.png b/assets/previewicons/ship-44.png similarity index 100% rename from icons/preview/ship-44.png rename to assets/previewicons/ship-44.png diff --git a/icons/preview/ship-45.png b/assets/previewicons/ship-45.png similarity index 100% rename from icons/preview/ship-45.png rename to assets/previewicons/ship-45.png diff --git a/icons/preview/ship-46.png b/assets/previewicons/ship-46.png similarity index 100% rename from icons/preview/ship-46.png rename to assets/previewicons/ship-46.png diff --git a/icons/preview/ship-47.png b/assets/previewicons/ship-47.png similarity index 100% rename from icons/preview/ship-47.png rename to assets/previewicons/ship-47.png diff --git a/icons/preview/ship-48.png b/assets/previewicons/ship-48.png similarity index 100% rename from icons/preview/ship-48.png rename to assets/previewicons/ship-48.png diff --git a/icons/preview/ship-49.png b/assets/previewicons/ship-49.png similarity index 100% rename from icons/preview/ship-49.png rename to assets/previewicons/ship-49.png diff --git a/icons/preview/ship-50.png b/assets/previewicons/ship-50.png similarity index 100% rename from icons/preview/ship-50.png rename to assets/previewicons/ship-50.png diff --git a/icons/preview/ship-51.png b/assets/previewicons/ship-51.png similarity index 100% rename from icons/preview/ship-51.png rename to assets/previewicons/ship-51.png diff --git a/icons/preview/spider-01.png b/assets/previewicons/spider-01.png similarity index 100% rename from icons/preview/spider-01.png rename to assets/previewicons/spider-01.png diff --git a/icons/preview/spider-02.png b/assets/previewicons/spider-02.png similarity index 100% rename from icons/preview/spider-02.png rename to assets/previewicons/spider-02.png diff --git a/icons/preview/spider-03.png b/assets/previewicons/spider-03.png similarity index 100% rename from icons/preview/spider-03.png rename to assets/previewicons/spider-03.png diff --git a/icons/preview/spider-04.png b/assets/previewicons/spider-04.png similarity index 100% rename from icons/preview/spider-04.png rename to assets/previewicons/spider-04.png diff --git a/icons/preview/spider-05.png b/assets/previewicons/spider-05.png similarity index 100% rename from icons/preview/spider-05.png rename to assets/previewicons/spider-05.png diff --git a/icons/preview/spider-06.png b/assets/previewicons/spider-06.png similarity index 100% rename from icons/preview/spider-06.png rename to assets/previewicons/spider-06.png diff --git a/icons/preview/spider-07.png b/assets/previewicons/spider-07.png similarity index 100% rename from icons/preview/spider-07.png rename to assets/previewicons/spider-07.png diff --git a/icons/preview/spider-08.png b/assets/previewicons/spider-08.png similarity index 100% rename from icons/preview/spider-08.png rename to assets/previewicons/spider-08.png diff --git a/icons/preview/spider-09.png b/assets/previewicons/spider-09.png similarity index 100% rename from icons/preview/spider-09.png rename to assets/previewicons/spider-09.png diff --git a/icons/preview/spider-10.png b/assets/previewicons/spider-10.png similarity index 100% rename from icons/preview/spider-10.png rename to assets/previewicons/spider-10.png diff --git a/icons/preview/spider-11.png b/assets/previewicons/spider-11.png similarity index 100% rename from icons/preview/spider-11.png rename to assets/previewicons/spider-11.png diff --git a/icons/preview/spider-12.png b/assets/previewicons/spider-12.png similarity index 100% rename from icons/preview/spider-12.png rename to assets/previewicons/spider-12.png diff --git a/icons/preview/spider-13.png b/assets/previewicons/spider-13.png similarity index 100% rename from icons/preview/spider-13.png rename to assets/previewicons/spider-13.png diff --git a/icons/preview/spider-14.png b/assets/previewicons/spider-14.png similarity index 100% rename from icons/preview/spider-14.png rename to assets/previewicons/spider-14.png diff --git a/icons/preview/spider-15.png b/assets/previewicons/spider-15.png similarity index 100% rename from icons/preview/spider-15.png rename to assets/previewicons/spider-15.png diff --git a/icons/preview/spider-16.png b/assets/previewicons/spider-16.png similarity index 100% rename from icons/preview/spider-16.png rename to assets/previewicons/spider-16.png diff --git a/icons/preview/spider-17.png b/assets/previewicons/spider-17.png similarity index 100% rename from icons/preview/spider-17.png rename to assets/previewicons/spider-17.png diff --git a/icons/preview/swing-01.png b/assets/previewicons/swing-01.png similarity index 100% rename from icons/preview/swing-01.png rename to assets/previewicons/swing-01.png diff --git a/icons/preview/ufo-01.png b/assets/previewicons/ufo-01.png similarity index 100% rename from icons/preview/ufo-01.png rename to assets/previewicons/ufo-01.png diff --git a/icons/preview/ufo-02.png b/assets/previewicons/ufo-02.png similarity index 100% rename from icons/preview/ufo-02.png rename to assets/previewicons/ufo-02.png diff --git a/icons/preview/ufo-03.png b/assets/previewicons/ufo-03.png similarity index 100% rename from icons/preview/ufo-03.png rename to assets/previewicons/ufo-03.png diff --git a/icons/preview/ufo-04.png b/assets/previewicons/ufo-04.png similarity index 100% rename from icons/preview/ufo-04.png rename to assets/previewicons/ufo-04.png diff --git a/icons/preview/ufo-05.png b/assets/previewicons/ufo-05.png similarity index 100% rename from icons/preview/ufo-05.png rename to assets/previewicons/ufo-05.png diff --git a/icons/preview/ufo-06.png b/assets/previewicons/ufo-06.png similarity index 100% rename from icons/preview/ufo-06.png rename to assets/previewicons/ufo-06.png diff --git a/icons/preview/ufo-07.png b/assets/previewicons/ufo-07.png similarity index 100% rename from icons/preview/ufo-07.png rename to assets/previewicons/ufo-07.png diff --git a/icons/preview/ufo-08.png b/assets/previewicons/ufo-08.png similarity index 100% rename from icons/preview/ufo-08.png rename to assets/previewicons/ufo-08.png diff --git a/icons/preview/ufo-09.png b/assets/previewicons/ufo-09.png similarity index 100% rename from icons/preview/ufo-09.png rename to assets/previewicons/ufo-09.png diff --git a/icons/preview/ufo-10.png b/assets/previewicons/ufo-10.png similarity index 100% rename from icons/preview/ufo-10.png rename to assets/previewicons/ufo-10.png diff --git a/icons/preview/ufo-11.png b/assets/previewicons/ufo-11.png similarity index 100% rename from icons/preview/ufo-11.png rename to assets/previewicons/ufo-11.png diff --git a/icons/preview/ufo-12.png b/assets/previewicons/ufo-12.png similarity index 100% rename from icons/preview/ufo-12.png rename to assets/previewicons/ufo-12.png diff --git a/icons/preview/ufo-13.png b/assets/previewicons/ufo-13.png similarity index 100% rename from icons/preview/ufo-13.png rename to assets/previewicons/ufo-13.png diff --git a/icons/preview/ufo-14.png b/assets/previewicons/ufo-14.png similarity index 100% rename from icons/preview/ufo-14.png rename to assets/previewicons/ufo-14.png diff --git a/icons/preview/ufo-15.png b/assets/previewicons/ufo-15.png similarity index 100% rename from icons/preview/ufo-15.png rename to assets/previewicons/ufo-15.png diff --git a/icons/preview/ufo-16.png b/assets/previewicons/ufo-16.png similarity index 100% rename from icons/preview/ufo-16.png rename to assets/previewicons/ufo-16.png diff --git a/icons/preview/ufo-17.png b/assets/previewicons/ufo-17.png similarity index 100% rename from icons/preview/ufo-17.png rename to assets/previewicons/ufo-17.png diff --git a/icons/preview/ufo-18.png b/assets/previewicons/ufo-18.png similarity index 100% rename from icons/preview/ufo-18.png rename to assets/previewicons/ufo-18.png diff --git a/icons/preview/ufo-19.png b/assets/previewicons/ufo-19.png similarity index 100% rename from icons/preview/ufo-19.png rename to assets/previewicons/ufo-19.png diff --git a/icons/preview/ufo-20.png b/assets/previewicons/ufo-20.png similarity index 100% rename from icons/preview/ufo-20.png rename to assets/previewicons/ufo-20.png diff --git a/icons/preview/ufo-21.png b/assets/previewicons/ufo-21.png similarity index 100% rename from icons/preview/ufo-21.png rename to assets/previewicons/ufo-21.png diff --git a/icons/preview/ufo-22.png b/assets/previewicons/ufo-22.png similarity index 100% rename from icons/preview/ufo-22.png rename to assets/previewicons/ufo-22.png diff --git a/icons/preview/ufo-23.png b/assets/previewicons/ufo-23.png similarity index 100% rename from icons/preview/ufo-23.png rename to assets/previewicons/ufo-23.png diff --git a/icons/preview/ufo-24.png b/assets/previewicons/ufo-24.png similarity index 100% rename from icons/preview/ufo-24.png rename to assets/previewicons/ufo-24.png diff --git a/icons/preview/ufo-25.png b/assets/previewicons/ufo-25.png similarity index 100% rename from icons/preview/ufo-25.png rename to assets/previewicons/ufo-25.png diff --git a/icons/preview/ufo-26.png b/assets/previewicons/ufo-26.png similarity index 100% rename from icons/preview/ufo-26.png rename to assets/previewicons/ufo-26.png diff --git a/icons/preview/ufo-27.png b/assets/previewicons/ufo-27.png similarity index 100% rename from icons/preview/ufo-27.png rename to assets/previewicons/ufo-27.png diff --git a/icons/preview/ufo-28.png b/assets/previewicons/ufo-28.png similarity index 100% rename from icons/preview/ufo-28.png rename to assets/previewicons/ufo-28.png diff --git a/icons/preview/ufo-29.png b/assets/previewicons/ufo-29.png similarity index 100% rename from icons/preview/ufo-29.png rename to assets/previewicons/ufo-29.png diff --git a/icons/preview/ufo-30.png b/assets/previewicons/ufo-30.png similarity index 100% rename from icons/preview/ufo-30.png rename to assets/previewicons/ufo-30.png diff --git a/icons/preview/ufo-31.png b/assets/previewicons/ufo-31.png similarity index 100% rename from icons/preview/ufo-31.png rename to assets/previewicons/ufo-31.png diff --git a/icons/preview/ufo-32.png b/assets/previewicons/ufo-32.png similarity index 100% rename from icons/preview/ufo-32.png rename to assets/previewicons/ufo-32.png diff --git a/icons/preview/ufo-33.png b/assets/previewicons/ufo-33.png similarity index 100% rename from icons/preview/ufo-33.png rename to assets/previewicons/ufo-33.png diff --git a/icons/preview/ufo-34.png b/assets/previewicons/ufo-34.png similarity index 100% rename from icons/preview/ufo-34.png rename to assets/previewicons/ufo-34.png diff --git a/icons/preview/ufo-35.png b/assets/previewicons/ufo-35.png similarity index 100% rename from icons/preview/ufo-35.png rename to assets/previewicons/ufo-35.png diff --git a/icons/preview/wave-01.png b/assets/previewicons/wave-01.png similarity index 100% rename from icons/preview/wave-01.png rename to assets/previewicons/wave-01.png diff --git a/icons/preview/wave-02.png b/assets/previewicons/wave-02.png similarity index 100% rename from icons/preview/wave-02.png rename to assets/previewicons/wave-02.png diff --git a/icons/preview/wave-03.png b/assets/previewicons/wave-03.png similarity index 100% rename from icons/preview/wave-03.png rename to assets/previewicons/wave-03.png diff --git a/icons/preview/wave-04.png b/assets/previewicons/wave-04.png similarity index 100% rename from icons/preview/wave-04.png rename to assets/previewicons/wave-04.png diff --git a/icons/preview/wave-05.png b/assets/previewicons/wave-05.png similarity index 100% rename from icons/preview/wave-05.png rename to assets/previewicons/wave-05.png diff --git a/icons/preview/wave-06.png b/assets/previewicons/wave-06.png similarity index 100% rename from icons/preview/wave-06.png rename to assets/previewicons/wave-06.png diff --git a/icons/preview/wave-07.png b/assets/previewicons/wave-07.png similarity index 100% rename from icons/preview/wave-07.png rename to assets/previewicons/wave-07.png diff --git a/icons/preview/wave-08.png b/assets/previewicons/wave-08.png similarity index 100% rename from icons/preview/wave-08.png rename to assets/previewicons/wave-08.png diff --git a/icons/preview/wave-09.png b/assets/previewicons/wave-09.png similarity index 100% rename from icons/preview/wave-09.png rename to assets/previewicons/wave-09.png diff --git a/icons/preview/wave-10.png b/assets/previewicons/wave-10.png similarity index 100% rename from icons/preview/wave-10.png rename to assets/previewicons/wave-10.png diff --git a/icons/preview/wave-11.png b/assets/previewicons/wave-11.png similarity index 100% rename from icons/preview/wave-11.png rename to assets/previewicons/wave-11.png diff --git a/icons/preview/wave-12.png b/assets/previewicons/wave-12.png similarity index 100% rename from icons/preview/wave-12.png rename to assets/previewicons/wave-12.png diff --git a/icons/preview/wave-13.png b/assets/previewicons/wave-13.png similarity index 100% rename from icons/preview/wave-13.png rename to assets/previewicons/wave-13.png diff --git a/icons/preview/wave-14.png b/assets/previewicons/wave-14.png similarity index 100% rename from icons/preview/wave-14.png rename to assets/previewicons/wave-14.png diff --git a/icons/preview/wave-15.png b/assets/previewicons/wave-15.png similarity index 100% rename from icons/preview/wave-15.png rename to assets/previewicons/wave-15.png diff --git a/icons/preview/wave-16.png b/assets/previewicons/wave-16.png similarity index 100% rename from icons/preview/wave-16.png rename to assets/previewicons/wave-16.png diff --git a/icons/preview/wave-17.png b/assets/previewicons/wave-17.png similarity index 100% rename from icons/preview/wave-17.png rename to assets/previewicons/wave-17.png diff --git a/icons/preview/wave-18.png b/assets/previewicons/wave-18.png similarity index 100% rename from icons/preview/wave-18.png rename to assets/previewicons/wave-18.png diff --git a/icons/preview/wave-19.png b/assets/previewicons/wave-19.png similarity index 100% rename from icons/preview/wave-19.png rename to assets/previewicons/wave-19.png diff --git a/icons/preview/wave-20.png b/assets/previewicons/wave-20.png similarity index 100% rename from icons/preview/wave-20.png rename to assets/previewicons/wave-20.png diff --git a/icons/preview/wave-21.png b/assets/previewicons/wave-21.png similarity index 100% rename from icons/preview/wave-21.png rename to assets/previewicons/wave-21.png diff --git a/icons/preview/wave-22.png b/assets/previewicons/wave-22.png similarity index 100% rename from icons/preview/wave-22.png rename to assets/previewicons/wave-22.png diff --git a/icons/preview/wave-23.png b/assets/previewicons/wave-23.png similarity index 100% rename from icons/preview/wave-23.png rename to assets/previewicons/wave-23.png diff --git a/icons/preview/wave-24.png b/assets/previewicons/wave-24.png similarity index 100% rename from icons/preview/wave-24.png rename to assets/previewicons/wave-24.png diff --git a/icons/preview/wave-25.png b/assets/previewicons/wave-25.png similarity index 100% rename from icons/preview/wave-25.png rename to assets/previewicons/wave-25.png diff --git a/icons/preview/wave-26.png b/assets/previewicons/wave-26.png similarity index 100% rename from icons/preview/wave-26.png rename to assets/previewicons/wave-26.png diff --git a/icons/preview/wave-27.png b/assets/previewicons/wave-27.png similarity index 100% rename from icons/preview/wave-27.png rename to assets/previewicons/wave-27.png diff --git a/icons/preview/wave-28.png b/assets/previewicons/wave-28.png similarity index 100% rename from icons/preview/wave-28.png rename to assets/previewicons/wave-28.png diff --git a/icons/preview/wave-29.png b/assets/previewicons/wave-29.png similarity index 100% rename from icons/preview/wave-29.png rename to assets/previewicons/wave-29.png diff --git a/icons/preview/wave-30.png b/assets/previewicons/wave-30.png similarity index 100% rename from icons/preview/wave-30.png rename to assets/previewicons/wave-30.png diff --git a/icons/preview/wave-31.png b/assets/previewicons/wave-31.png similarity index 100% rename from icons/preview/wave-31.png rename to assets/previewicons/wave-31.png diff --git a/icons/preview/wave-32.png b/assets/previewicons/wave-32.png similarity index 100% rename from icons/preview/wave-32.png rename to assets/previewicons/wave-32.png diff --git a/icons/preview/wave-33.png b/assets/previewicons/wave-33.png similarity index 100% rename from icons/preview/wave-33.png rename to assets/previewicons/wave-33.png diff --git a/icons/preview/wave-34.png b/assets/previewicons/wave-34.png similarity index 100% rename from icons/preview/wave-34.png rename to assets/previewicons/wave-34.png diff --git a/icons/preview/wave-35.png b/assets/previewicons/wave-35.png similarity index 100% rename from icons/preview/wave-35.png rename to assets/previewicons/wave-35.png diff --git a/assets/trophy2.png b/assets/trophy2.png new file mode 100644 index 0000000000000000000000000000000000000000..705771579a21c50686ec2fd7c7827f40e5cb2b74 GIT binary patch literal 4903 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 Z{uduDM9zxgZuI~F002ovPDHLkV1mORv}gbT literal 0 HcmV?d00001 diff --git a/assets/trophyButton.png b/assets/trophyButton.png new file mode 100644 index 0000000000000000000000000000000000000000..fcfb03fc8f57288b8eb6a0f31cbe83c801b5e32f GIT binary patch literal 11298 zcmV+-EZx(IP)00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKAE4N8RK~#8N?VSsF zUd4ImN0u$i61I^87y5!0zkbXIUF}Fz= zGjXJyy!U_lGUAhhaV0tsyHoZvy40;)xw43Gtb3Wr z9<%jSOteUbV2I8Dg0bLfg2x9C4%t|F0U&!#h>r?0LO3i$GOjvvXRLVHvSn`7s#Rkq zxluE>Ndp^ZoqE{;U9MQM!ku^Cd6|7p!1ckajv6CcbdkGeb46zehr<$)SYKc7$+V{> zFE_LWBVg=I=bD8JJ(+DHv4F@7*sQHyz1oK{RDZ=KU;e+NI(H9Cv`FUIv^Gg4fZQ^( z%>z>3e#$9ssqHAOoW;w9ahW*&>k=BGe19TQ{IPA@Tx%Jxhz{4TU0Xu7>Mr}6fB5H$ z-FR8oEt1tEcYTsdVD7qzWC*_E?QeJ2oqxVt&JL2yFrW-9FW*L_fL}`#=mGMUORl-- zB6ppHcpm5)!^(S4)m?qzyWX*qj#oTCUT(@rBJ(BK?58T%+PD_Z$Z^kl* zah`bPcYEMc?XEqrUY=>^+{-k|Ahxx<-TAcs(;;29YA+N#BOBfP=8O$7%V~_OufEz| z5jPa=#D^t1-x%Nsz!NPGNTx$+r=z&J@RBh7Pa61$#q;GXzmhUjHa~<7>4k)nw5+9r zUa_0-QV3mVHoE~BVT{Jc#wFUU(LiZoAthRFJM+;%xfc{?opMSNNq69(lYTIY_!h_u zO%eJ_zEE<#!>%dKHDAw1vgIs4EknpPA4#qq75NIe#Dz4B%6fe$?XT%SBtg(I51{gZ zn>^VoSFYqBPVEx1V~fswJWzC$N@th7g0#;1Anq)A7T16LB@$NFUkLFKG4kVbmd_=h zPv{f=|4F%{Az%OTNy2bF$w;op6C_hlkgk_BHs})hS>#^@%c3FLHy zY`RiQ51pc;zGETnql)`{E2Gd4G)a0`UN%z_#jS0!Jw_-$CF2VH*a<_P5A>f{N4{uC z+qhY?+uB`|$j$>}jGt1}#^eP<`VUm^HLjSP=#-pHInqP#td=#Zl=2}!HMLvHjl_87}>n$@8LP&9|rgBZ& zwo$7Dd9HN6Hunu^!NWf=kws@7dGcJf$aP=GE5{J`ZTOCcr1i=N(KSn_*Rpv7#}2xO zcGtVj1AAS^;GpvATy1@q>pqyoXI42kIH$`U>Ll%4ZB@PN9z4h;=Q^XZN>_K)xhmJ? z`sXO!sj~G|x;BS`{`#D*de=o=p}MNh%}~32zTG-EyROUiDxTb>&ec_QxlZ4X%GGtc znO#+`H>7KHje88JS=y~vy9<TeN6Vp;bRAqK9UlGU!MqZJCCU zPO}y90~pGGYWFej!mb_eg!wbwNe%U)q(-{qyf21bzw2?c^}im)J+l&kBbq5Gc4wml zZO)cJG3^lt+_Mw|l0%YN66+;39^CHS+xq9YFW1g+y_&o=FX@UOW;%GK70(bHuBG{w zj;|&0)`Q#JXBEw(QA9r-5iQ>ADOqSBd0J*f^UgWlj8#?9{VaI9a$UMkSQ{1s#ZxO* zyoCI?tf9gEsBfpcLhU~Mcjvk@KKAC2KN3(ieL?6eq({W~+iCXi7cETA?!C+z#U;I6 zk{ZSLC3&z_-zNrDwo|0j%>$BSUedK%HLdd8f?Lf|JNr~_p5h++B}}?rclE{2U3+tt z`|9l3ZeG=~%G>LXt!i*{t5hdOp41dd7g>MEr^;IkEE)`YPnbYNw*{iD0Z+88(X>1) zvIW$J&j@W<+?uw5__UR=i^{jg(mWs+Tm8IqHIJ7{mBb+rOCFUxC|NIJHi&bDeY*D2 zCWVqt#p@LA+bRucUF%c%Lt7M=^hplw6fYYkGQm_-u2bR6-OlZjbW8SYA{3H5^HS;cpQR42Lga_1hn zzsfD2HD4(zIk&KCt~4dZoIk;DoV`{O7}?84!1Ot!GJo$?fh6{VoOK{Aun?&B)mS0>Xf1* zF=+~?EMU5}-xMgqRqN08Mipvb3zGW@e*moe7?78@Ms~#zXfD@abzvZ00yw#WxgiAHkNUJ@*I5>5gZ`+E zDz(A9@|UH_{Tl1fwFxu%fyVYFjhk`aqWIouEuAQ6J7ffBU__6|;@D``233Q*sJq*J zZ`Od@vhWzUVPTEixUkM`T{z2aS~%AYoOFz9I=RlBFk5t^HLM5{5EM@y77OuQ%e!<) z&RZj8V%Kf3$pSNG$>w_@pNVB4%{|Rk1JcY&>ZvX37FnmB;t;=fP+>j(t@Qdvg&$ONS6p(Y z``l;GQyHE5sohO|@6MkIT|) zYir#rH2F^}(&sSYnZCtRWOm&h9c>F1EU;ZSB>Sghl`kRYy8TT<2t3Il1i9-qVbMKy z!Av)=VV|3K{3CAuNe{bu3m;MZAvgaOil6p~l>IC9ct>I)C=`oC$yA3hnk(upBx99E zu8kQh1$Y4iB$LmifPt7~+K53rcHNc$;`9$uyIs^1u;?1KSEmUyNByYNgyMM&QY#_N z9PB(a=(g0MW5qOuBESW7KUL$dm8InWWRaZ$|CEBy&m2JWxCl50j3k^21xDJy6k^qy* z)_&UOetE=g1L6q%Qy#Zqe&ETwG`_Cq6@Oau^SMO!X}G&LJNM!y=XP;#D)?s+y*@Zt z+vNs%8VB-v_34oB)8vnghGa8U!gj?(`{Nlm^E1o$APLQF`;c_Vw=!LcMf+v6N2Y`| zp&7%&z;079HRNT57%NQpu7=#J1P2%tW&^%c-1(nc(#(Jqq-i4l`bp8=EA z)^)W*GgPCATJ=E&%R7%GLzI8P z^YMy_9-1U{#5zEjWF=u~{;Y&&H`}{V^QQ%%Cnzy^vJC7T%WTOLViQL0(Gx;DkW79a z^b?D=i3JgqwFzgF18|K#$CHOV>Z>2U3b~av(XIbf(|^i`G4yDXRIA(p`j+t|`VVB+ zcDuSx70T#L|1rxBI!wv006Eu9!eD z{foxQJ#4)-5T~so>*w}XmTROb3z3v39)o<(qE8KZ50S=r%%b77iasjOcauz&<5q+4 zNS@sbc(NsGx2H~nNOh)&>8>cO0CL?S=0PH3(V1ybgbrRnq%I_cA^mfi#Cx^<{7<@a zrh0XzF8NUD^ShEYy5~@j8`!(kb={`6?sRVFzpMJsqrnxP({7A4Vw4b#_Ozh4Lv!d9z%A6=Lb!*E|Ys(=WAAt+F@< zK-N0#ZST;Y@`n#Pck82)$DF%;okV-gr&X^?<^MzFt`N&#RQN?L(tM5iMzw#obajz* zcCU8hp6nPw-6i?ukT7k0`jEF*qc~nQxNE5AZ%U3Lo^0nnsMHB(9OwS?J5QGeO6$_x zhtAb``IS$&>u=oYxkP8^4{wZ7E_?5}8u1=ki;h=l4$zbl4JlO0gL#BoMC%X}EY3Gf z7*7J5ET%lG>o*WWY|-4yTsL*7Ym-b9qf5k*&Fv`qQ)%$AXSkTm7n`p%{b`*lf2K{@ z*4!J*6fZjW)$4TxQ}j~J#{RlaSEKvUwJNXgMCp|ruiACIT2yens+?$5xuzqq9D)S( z-g>XP_$;^Ts&{MjeladZ$A0(U{_2PB7Z2`q)goj-+L6pb%?XFSSk5dkN#rOMj#Au-AJb1kiL@o<`F0Z$&ilwR^RrkEEAPm za_dXKAuA5=|E(FChpd}E)Zmb z2tn)knPsdx`}Rub=tUW#2`hhl)nRKi$ZQNk9y<>@d5rE+Cz&Uyk<67G+w6J=zv1rL zxYIqPBggtDoZF~l$a)R%QH8%$xJMj&t)YZ4HV?E2322ot21=tVxC98NEav1FO-VdC ztcV;K-FM5h?w4r! zYX6DkNAdzUIrpP`eKW3K{iTZsG_&|+&TcB1sw;QhA>u*8XH-mdgI}XV!Xh!>voz)L z1SlE>qaa!*Edpn7S<%xZpF}j(3D1$FJ^-sRzh`x+1PPW;+CW9FVR4XwA0^M~#iJvS z{!*3+LI1E=BR&t9w07+}?NMI+WKLq-+$J0>yd(OgY}k)a@(~I1GaVnGA{n%yuvU5) zpf3jcCXnUlX~w8VMo02w3vvm84^0)8SsvNlT!MI#^-Ghu5XfTm=I*$I;v6$PPr5c& zqnWFbpi7RJp1T8534SiFhnqzhG5HV^TOLZM59FCOqamx~H6>V^m7`oZ=+BsZZ`$^lkpD%Vz^*%1$FT5g^l<3Y=yqxQxJ&UDBs(RnyNI%9X+S6i zom#dn%L$~#eHuL$v_nFD+IlXe^FXVRW)pxg)@XiYTsPBWGB8n4I&nIN7_1x`SA0O^ zcBtb!)wiAM(+=W@tbV6<(mTRLpvib_JlF#?b4cYolyN`{`p(@FwbdoP>{0ujx!pKj z4RdGIkU5&$PAzj(-;DXUS4p%4Z2RAFmUDlqO?QuGCpxwxD}cN6&N$uu@mD(CFCK@% zQat&0uX6{F-{9J`={8Tvq@W$@FZ&%ihIf#g11=Vez|B&DuIIG`ag^bjc^PiPE^0W0 zdOafddTHp{=XE6>YrsQjh-O9T=GU@q#Au z&8o{c^B<5H-XM8h67{I)?N#=hF$f>a@hT*8paW+wa_)k+NjJLZ998epK&nxQjC78y zZ^`eR>3;ge9Jg*;q@f5`Ej!UYu=x)6#G?alhGvSN)wGdZb{8*o?qqguF;En49k&fB z#IaJ+#Dfb>eJvJ`CtyP08_A~}?Zkix>QYwMIyH{3f6uuMnxivieZ9DE-EXEy>R0$W zk=XDmogQ?WD8f}A5}BGT-@H{8EK{GY+1rg8XkX!OwQ*xMVmzQ9d{&U(+Nj?;=w(A?EP|~@>bN#gYI=| z9Q^Hx_eg@;#zb_v2PU?XkufZimm)*_%}4jdG<6HS6cgEiO>Hfi+39cmP7` zb%>skoU2`R2x}!eYwzv*e{TIQnUTsLtNI9S)JyhBj_W#J4V=L3h6n4ULGD47evmn+CBmHc+;;wa{Sc;3=v!A!aJ1Z}P&vZ#?!T&M&R}{vd#^vE=mX zo;8{nfZGGDZtjmH@%Tt1AC}N98xDIDt2ZhXeC`X3=#ep^%_pFPxR}#}oGbx{PzJsn zBG3lbLL7($bZR^qm=BzY(oR;xmSFXzPEY7ODS=_qOHhh|e)9}%@T zpb65avNF63?BvHY0T0^M^2L#fHN2VvLcVze6WD&Q%!4EhhVV5Z??lOHA%;tgc9h4f z5E%jJjSjLJze#e21k6U+Jm8L*w7W~`19EE^9K~WVzc8@s18R9jFdgcV87#(Ef;gD4 z2IvT&ENpN+2IY)QCPNH71^IX#Ek#wj?F^A=p5I`7+iy&&T$RY~S2#=NSsjjD17);~ zH{gxm*%EXWhvbLRjtX+!W|C&r9i#eyze0m9i>@AN?0~kO95Cquq->RNJlZY=;UX2) z5!3N*0C`06D+$Z!%wy1eFdd?hfv6illi+pqKTZpHVAbmV~YY?aERVgf3Ke^y;e*SMUchr>q6 z`I3+PZk78(ZO`{r4Z3+!Fq0kbx;4@o5%C)Nt@r$;l&QI3gSTFw`-d-E?B4J>nQ+I3 zB-2PDq#%CKtQHq)fMm1`d6ebYgb=qjG+{blRJMdXCRUx=R~o*Ll=JW3dlRm~!cP9B)>_dHXg#c}H>9+)(^Ybsr+BQV&vNoqt!{jutl z6zh4E2Kp7}trp)}-Q9eyJN3g-ah=S{zKl%K?|P)bZ+&fpdrAgw0x7rX2=tG)t2vewUF(xi<|I(1G7F@#zyCk# zXs;6ey5S++n0wO(ZOJ42%}VFKuCp`~*xx6IJ?a+6C&aW1(d=QUQVA*|`fwkZjMa4m ze%Z`Nz37-VjkOM7yiA?-k|(Y_-<|OnTSW51Ln{myamV7FXUq#<>vKzR&a39QpWpI_ zu5O`-K0vEEKnB`mSdf5W+MLDZ%cWlakIsGR8%b6kr|anO32=Fi2K zJGWMgHj|p$ah;xE(Fkb{hrH-8Kr~0TN>L%vhxq~jVSvGWTJmR-Pf1v_d2Idr5@xjT z#9S?8tfdf(20058M{Ci%IvPyw39wS+S_`#QjBfk{o< z@0Mhqy@)XknY|x|4}lz|Y^Ozc-zqsbgw#i9i>F=-Br)-X;|&pQE;|lO)KV5^0EY{X zmXOQrM6~=3@o1#5fx<0fIzyAygS`Uok01A-z*k8Uz_QerEAJ7L4Q#g_m9@WD`x_Fh zl6&xIJ^dt`@3H0SXvUmEH*Oyd1})O%7+5b4No=gKyk5eYdA!k(?7B0M*RK2=ZQk^7 zfubN6vJswq(}_XsVYW0M*2t87rhWmiEO<%>uvhix$h63e&5*Q_%mf0=31*z71wOz8 zSgV2f&_+p(^e3I-p2T=*!#=|b1;b83eaN)2#=^s-GDACD7*(lN$LHwr;&IHl@2NJo z;or8o4O*ff*HPs0yPeyh!z%H|9&&CSht~oe7eY5*CfO}#$cTbF_P|ofW8-BkGLayg zbvu|Le1UkwZbb8@>8`as?ykoN+%F$ytUDjy?(V;1w|nGP=YFN#@2|8Aenh+2dy${%_`|E!}D2mVf0@Dr2Aq?jg_&2A}Rr#AT4{XnAf-@RE@$$`HBelCc? z`!+iFfcCE&pLFg))qQYlR`%w;r=VZ-cOo`i!$Ca7B&VpD=!pVPhEA2-FPHso9rDV_ z_vONQNol*|7;L2O(nNVu%HFJF_$EF-s*-IoI(9^u6`Hr>xwPM*bKY}0vOTAXutmh} z3(qn!egmGJP1%6zua)H@H-<1T`(^cPybL&qcv~=O$Uf^x37?d6^hjVywKY;pp4%)5 zo8Sy^tG4E0q_|4)@8sznKT7n!UK9xS-|}AVgtWNteIeO8bEt)EEL_9;{*BHp|BB*3 z6?)Ye@=+!2xXv6oOM)XX!uSMR^CJcKGHuZ(ESNshf8L;T%*yY^#|n1qMX2O~NyQeO znJ426Hpy(N5RNyz{o>6|UN|bFM1+o`NZ#pk3_4xbdWy`5CtLF5Dj@YUGwf?lD!>+% zWvYELUCPas%o8ieiDb^`@sS7hVbz>}t$(~iC2L9C100tzV_&szr_zjvK`l8&RjIX+oh+@#xaowJ8EErSnEi_Q5Z$y5lCZcSiJ`i z*D*&-i!~ZQPa5AEEyR$?x{uJ7SttLv0h2CmFMx@_^?YB7gtjLg+1HfBJ-7J@TNYDl zCJcjAxt!Y|7mJR~3X3-XS^%C$v##<10P)GT$Z>#Kw2_^$=n-MHrW!C-zOubdqWzVB z|LrkT3omOlJ1Gdq6d@gpw%xbD+wFA{{^>rRp)gTQjzW^zj2X#sSUJ&C6?}p63CUm0 zta4XKej%yluetM)8ZO#C0b!&N&N{6)pA^^1mEWeaH!1v{s<6&ed}t4Q^da|)oYb<9 zdZMx9v{a{u&&#gf;%fBM_k>(DLJWpr3FA=b>cIFS9;#WgB-vgB0NX>cEZ zN3B13@p-n6)&2-|l#(7>a|$CmlUW3B|5Fec?a9Z^av%ESB6qS;qt&j7MOolyUJpw+FY}(f=sZ8Ak#*f3@!P8r zc^q*j93iB~q5U$~S@&zRC5jG72BGSuq4k&z7$!>v9-iDcA=@`u6%inEWy z0btef`;j9Jj*}yz;JfZoeFZvIk)D)hia0(%GvK1Rh(+UniL<-17aHjdNx)BuKrVYq zp%P;g!zD&Ls`t?&n*0$$`uu}mmHUs#0^pp{!5lepF zzZ$^5_jFMRFO%@0A@R>k*m8N)X&c4U69c5P0b@7CnvBcFJtH}520h{Z=baK>XCvQ~ zTrT0GMt%gx1e@x}Jum^D+lpUPvf~@e2mFT%o?LxS^1*YCb8k2&{pK?Pq|NMer!~~N zcYgRcUGRH(i_UGv#zeZG zc5chTWEEiEP@N@(b9Qd?e#9Z7Z5htE@QR5(Qm|9fJ~T`OE^*nczi64f==khGSxhco zvjLAl&AMYiGVR(uXpg#BKj2=f=e_zANBFMW$WAfkiMFM5F0Ydy1LYfmMz|4Tz>0Cx zgm_|`AebT~<~L)cAshDro0KJP6Nt8SJ$Uk|4zuDoOo=X;0aFF$y7$}HoJJs^_mG#j zTmVT_wh#63{iN{%VTYZ9*~Cq-c-jZtgLV~C9boWN9R<7Y(LL)vQlNwI(B8Av^{wCH z|EV)@uuBsmULoQm`(&XKlH|HGmJE0@R`ISINLP~%cHJDW&OS#+ ztar-G$`ub{ZCEC*+ssYqlMBWRhkyIqTPGV*8x7fc?A5-DFGvSOWS7{R$JYlcxKCDJ ztNQ$tAU)cn-SA82PSk|rM{|HS`2vNX*G$&hUCFLH{Q0S}yKX)SO|fK2%6SHvLX!lB z0GBWBac;dVb;E9vzh0AWtK!=BJ}h~3r{c20$8~L;(mQ39n^pE1<+UsRbP(cCg>aMV zKlO~PUQ5E0JDl69vRjqE;RUrLA--N^UXb-~)#Q3f6Cz$AiYCoOqv+(5=c=QAD#+zbDV*qVvyp-~QKs4JqeZ zT3VV{tXP4S8p%ld0e{9TG&L2!;yx0t8?Z^{%S`0$5`IZxf1hizgom&8c`7{3l{MEge;azlF~;OJfS)gUw+`` zSrTyb2;Xi`mfQY)oHMl>k-7va-(sJL_~-aHFtRk@ipnc#zc zewa7ef>rYu7WlZI_+*ic&Wko;a1@i=-rjD-%$hy&A0A{lEZTYF6KLT`J@ z)~B+_b0oJ7heOOKz@mpfC3^p-FT5>rLLPpU} zd*#(vXADrMr1mvy)==Ciu`pfQ^A-&>}4~fYr1zTlsR9%{#H1B(%!aY>DhZ;xNWo zt{-jTaM#cs1mmtr=W+e@*Ox4zE1H{EMI_S{h;NsoEYZP*XH1w~_|s26UHB{<7lgZ^ zv;Nk@AnuhRKk$*R$H>>qU!N+-_mL1?v9pF?beIQ*g(c_D%<`};EzQkvR5bi{Tbm7K zUAH0sW()8voL8A)HWh+9G93`&{2UdKF6!BMgwufsT_>t zykT)>UbJWthoAV?F>u?Nyb*~8`S;ZTvX`w`;aatJk2gyF#ni({Bpohr)41#WQdx%N zm~5;$Kes9)8hrQ4%a`k>*)5+S2jW(&TIGqK#^D2EIVb0jP@uK7wMCv34<9Q#COfkM zi!t10EQ1UG``@-`HnH!@U};#l3G=gW8lwZxEYM{U$y$?}Ba%(g8B3OwwYG{a+Hm2! z-XgEEWVJ};eS8L3^<@`d?CyH(FwsHMcakK%x;D zTe0PptjjS*O*ELZYg^ORf;v|E$Si=3+M3o@*QPbRO{7n|_5^snMs2Q^ENOB}mn<#& zH4orn$chy!T5?CIJi%aClEIjW20yv>YmMSslW{p~cj;7|#+ZQ>w+O3Nt%{E|F}W5; zN{&)R7&FlTvK2J0UcDN3-ZY$rPh(_2u-4)=(Z_uN5{oRkVv@mO5e@iEMS&+=hx!I> zD3*xurfDm$5FM_gt-Y^EMOk_--;Xb{LY!acP1G{~zfXliT_ z^ZXH&jt2c-)5P`A)($I8#Dr--F}%cT9?l7^Ce zT1>kULS6Aa$zS*Rx)Uk26#f(EQ#!ecIztm&3Kz@uEu`DDX_4{zSBrsMWoO9Dhk&>d zJnEh9xDX8@vJnW6J9s4Gz|#2;l)F}G2!_i8!<8K=1aW-SRve@HwQuGxOCLVePPe3E z;{*5cqeJTqpFfkP!-SI+xBFVUs6XTtT`N~7UypSDS|#z3?w7AaK7W_Cd#ogbakJ<= zf`tQf=Vs+LsEG;aDd4n`_( z$k)$@ppv}Nh9J&EfDgxuV8f&kokv8x2ZO3450uL{jC9>lX}KaCPTe9{dxRltoZ;O6 Y2j;O*Y6<%F$p8QV07*qoM6N<$f}jT@3;+NC literal 0 HcmV?d00001 diff --git a/assets/ulButton.png b/assets/ulButton.png index bb677a09bb2a43807068b7481c69bb428e7ecaa8..196bc47a0199bb1290dadfdee262b14531350c81 100644 GIT binary patch delta 13242 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 delta 13251 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

S%qN4R(ira%Op!#iV-$ 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 B`HcVo diff --git a/html/analyze.html b/html/analyze.html index 1107cf3..f2c53fb 100644 --- a/html/analyze.html +++ b/html/analyze.html @@ -5,7 +5,7 @@ - + @@ -86,7 +86,7 @@ - + - + @@ -112,9 +112,9 @@
-

Response (44)

+

Response (46)

-

*Values that require a download are in red

+

*Values that require a download are in red and values that only work with daily/weekly levels are blue

name: The name of the level

id: The ID of the level

description: The description

@@ -143,7 +143,7 @@

objects: The number of objects in the level. This was added in a recent version of GD, so older levels will simply return 0

large: Whether the level is considered "large" (more than 40k objects)

cp: How many creator points the level is worth (1 for star rating, 1 for feature, and 1 for epic rating)

-

difficultyFace: The URL of the difficulty face image for this level. Plug it into gdbrowser.com/difficulty/{difficultyFace}.png

+

difficultyFace: The URL of the difficulty face image for this level. Plug it into gdbrowser.com/assets/difficulties/{difficultyFace}.png

songName: The name of the song used for the level

songAuthor: The name of the author of said song

songSize: The size of the song in megabytes, if a custom song was used

@@ -152,11 +152,13 @@

uploaded: Time since the level was uploaded (sent as "x days/weeks/months" ago, since it's all the API sends)

updated: Time since the level was last updated

password: The password to copy the level. 0 means the level isn't copyable and 1 means it's free to copy

-

editorTime: The amount of seconds spent in the editor

+

editorTime: The amount of seconds spent in the editor (currently only works when using GDBrowser locally)

totalEditorTime: The amount of seconds spent in the editor, including time from the level it was copied from

ldm: If the level contains a checkbox for Low Detail Mode

-

dailyNumber: Which daily/weekly the level is (e.g. 1000th daily level)

-

weekly: If dailyNumber represents the weekly demon rather than the daily level

+

weekly: If the values below represent the weekly demon rather than the daily level

+

dailyNumber: Which daily/weekly the level is (e.g. 1000th daily level)

+

nextDaily: The amount of seconds until the daily/weekly level expires

+

nextDailyTimestamp: The Unix timestamp for when the daily/weekly level expires

extraString: An unknown data string

data: The actual data of the level, compressed with GZIP

@@ -814,7 +816,7 @@ diff --git a/html/assets.html b/html/assets.html new file mode 100644 index 0000000..ecdde0b --- /dev/null +++ b/html/assets.html @@ -0,0 +1,57 @@ + + > {NAME} + + + + + + + + + + + + +

+
+
Back
+
+ + + \ No newline at end of file diff --git a/html/boomlings.html b/html/boomlings.html index b6c2e97..b71dfc0 100644 --- a/html/boomlings.html +++ b/html/boomlings.html @@ -1,7 +1,7 @@ Boomlings Leaderboard - + @@ -41,8 +41,8 @@ - - + + @@ -128,8 +128,8 @@ - - + + @@ -70,19 +70,20 @@ - - + + \ No newline at end of file diff --git a/html/filters.html b/html/filters.html index ecd7076..e11e1bd 100644 --- a/html/filters.html +++ b/html/filters.html @@ -1,7 +1,7 @@ Level Search - + @@ -88,23 +88,29 @@
-

N/A

-

Easy

-

Normal

-

Hard

-

Harder

-

Insane

-

Demon

-

Auto

+

N/A

+

Easy

+

Normal

+

Hard

+

Harder

+

Insane

+ + + +

Demon

+
+ +

Auto

-