Added a bunch of puzzles
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Rename all .png files in this directory to lowercase with underscores replacing spaces.
|
||||||
|
|
||||||
|
cd "$(dirname "$0")" || exit 1
|
||||||
|
|
||||||
|
for f in *.png; do
|
||||||
|
[ -f "$f" ] || continue
|
||||||
|
newname=$(echo "$f" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')
|
||||||
|
if [ "$f" != "$newname" ]; then
|
||||||
|
mv "$f" "$newname"
|
||||||
|
echo "Renamed: $f -> $newname"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
After Width: | Height: | Size: 4.8 MiB |
|
After Width: | Height: | Size: 4.8 MiB |
|
After Width: | Height: | Size: 4.1 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 4.3 MiB |
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 3.7 MiB |
|
After Width: | Height: | Size: 3.9 MiB |
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 3.4 MiB |
|
After Width: | Height: | Size: 3.9 MiB |
|
After Width: | Height: | Size: 2.4 MiB |
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 4.6 MiB |
|
After Width: | Height: | Size: 3.0 MiB |
|
After Width: | Height: | Size: 3.8 MiB |
|
After Width: | Height: | Size: 2.8 MiB |
|
After Width: | Height: | Size: 2.3 MiB |
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Regenerates assets/puzzles.json and assets/thumbnails.json from the
|
||||||
|
# images in assets/images/puzzles/.
|
||||||
|
#
|
||||||
|
# Conventions:
|
||||||
|
# Full image: assets/images/puzzles/<name>.png
|
||||||
|
# Thumbnail: assets/images/puzzles/thumb_<name>.png
|
||||||
|
# Puzzle key: puzzle_<name> (hyphens replaced with underscores)
|
||||||
|
# Thumb key: thumb_<name> (hyphens replaced with underscores)
|
||||||
|
# Label: title-cased from <name>, underscores/hyphens → spaces
|
||||||
|
#
|
||||||
|
# Usage: cd <repo-root> && bash assets/images/puzzles/sync_json.sh
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
cd "$(git rev-parse --show-toplevel)"
|
||||||
|
|
||||||
|
PUZZLE_DIR="assets/images/puzzles"
|
||||||
|
PUZZLES_JSON="assets/puzzles.json"
|
||||||
|
THUMBS_JSON="assets/thumbnails.json"
|
||||||
|
|
||||||
|
puzzles="["
|
||||||
|
thumbs="["
|
||||||
|
first=true
|
||||||
|
|
||||||
|
for img in "$PUZZLE_DIR"/*.png; do
|
||||||
|
base=$(basename "$img" .png)
|
||||||
|
|
||||||
|
# Skip thumbnails, scripts
|
||||||
|
[[ "$base" == thumb_* ]] && continue
|
||||||
|
[[ "$base" == *.sh ]] && continue
|
||||||
|
|
||||||
|
# Derive keys (replace hyphens with underscores for keys)
|
||||||
|
safe="${base//-/_}"
|
||||||
|
puzzle_key="puzzle_${safe}"
|
||||||
|
thumb_key="thumb_${safe}"
|
||||||
|
thumb_file="$PUZZLE_DIR/thumb_${base}.png"
|
||||||
|
|
||||||
|
# Skip if no matching thumbnail
|
||||||
|
if [ ! -f "$thumb_file" ]; then
|
||||||
|
echo "WARNING: No thumbnail for $base — skipping"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build label: replace underscores/hyphens with spaces, then title-case
|
||||||
|
label=$(echo "$base" | sed 's/[_-]/ /g' | sed 's/\b\(.\)/\u\1/g')
|
||||||
|
|
||||||
|
sep=""
|
||||||
|
$first || sep=","
|
||||||
|
first=false
|
||||||
|
|
||||||
|
puzzles+="${sep}
|
||||||
|
{
|
||||||
|
\"key\": \"${puzzle_key}\",
|
||||||
|
\"path\": \"${PUZZLE_DIR}/${base}.png\",
|
||||||
|
\"label\": \"${label}\"
|
||||||
|
}"
|
||||||
|
|
||||||
|
thumbs+="${sep}
|
||||||
|
{
|
||||||
|
\"key\": \"${thumb_key}\",
|
||||||
|
\"path\": \"${PUZZLE_DIR}/thumb_${base}.png\",
|
||||||
|
\"puzzleKey\": \"${puzzle_key}\"
|
||||||
|
}"
|
||||||
|
done
|
||||||
|
|
||||||
|
puzzles+="
|
||||||
|
]"
|
||||||
|
thumbs+="
|
||||||
|
]"
|
||||||
|
|
||||||
|
echo "$puzzles" > "$PUZZLES_JSON"
|
||||||
|
echo "$thumbs" > "$THUMBS_JSON"
|
||||||
|
|
||||||
|
echo "Updated $PUZZLES_JSON ($(grep -c '"key"' "$PUZZLES_JSON") entries)"
|
||||||
|
echo "Updated $THUMBS_JSON ($(grep -c '"key"' "$THUMBS_JSON") entries)"
|
||||||
|
After Width: | Height: | Size: 3.6 MiB |
|
After Width: | Height: | Size: 3.7 MiB |
|
After Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 3.3 MiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 467 KiB |
|
After Width: | Height: | Size: 320 KiB |
|
After Width: | Height: | Size: 200 KiB |
|
After Width: | Height: | Size: 302 KiB |
|
After Width: | Height: | Size: 407 KiB |
|
After Width: | Height: | Size: 268 KiB |
|
After Width: | Height: | Size: 402 KiB |
|
After Width: | Height: | Size: 349 KiB |
|
After Width: | Height: | Size: 276 KiB |
|
After Width: | Height: | Size: 325 KiB |
|
After Width: | Height: | Size: 326 KiB |
|
After Width: | Height: | Size: 318 KiB |
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 267 KiB |
|
After Width: | Height: | Size: 236 KiB |
|
After Width: | Height: | Size: 216 KiB |
|
After Width: | Height: | Size: 260 KiB |
|
After Width: | Height: | Size: 285 KiB |
|
After Width: | Height: | Size: 304 KiB |
|
After Width: | Height: | Size: 406 KiB |
|
After Width: | Height: | Size: 321 KiB |
|
After Width: | Height: | Size: 311 KiB |
|
After Width: | Height: | Size: 286 KiB |
|
After Width: | Height: | Size: 248 KiB |
|
After Width: | Height: | Size: 298 KiB |
|
After Width: | Height: | Size: 405 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 327 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 302 KiB |
|
After Width: | Height: | Size: 335 KiB |
|
After Width: | Height: | Size: 359 KiB |
|
After Width: | Height: | Size: 378 KiB |
|
After Width: | Height: | Size: 2.2 MiB |
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 3.3 MiB |
|
After Width: | Height: | Size: 4.1 MiB |
|
After Width: | Height: | Size: 3.7 MiB |
|
|
@ -1,46 +1,146 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"key": "puzzle_above_the_city",
|
||||||
|
"path": "assets/images/puzzles/above_the_city.png",
|
||||||
|
"label": "Above The City"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_abstract_highway",
|
||||||
|
"path": "assets/images/puzzles/abstract_highway.png",
|
||||||
|
"label": "Abstract Highway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_alpine_mountains",
|
||||||
|
"path": "assets/images/puzzles/alpine_mountains.png",
|
||||||
|
"label": "Alpine Mountains"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_america",
|
"key": "puzzle_america",
|
||||||
"path": "assets/images/puzzles/america.png",
|
"path": "assets/images/puzzles/america.png",
|
||||||
"label": "America"
|
"label": "America"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_arctic_fox",
|
||||||
|
"path": "assets/images/puzzles/arctic_fox.png",
|
||||||
|
"label": "Arctic Fox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_cartoon_land",
|
||||||
|
"path": "assets/images/puzzles/cartoon_land.png",
|
||||||
|
"label": "Cartoon Land"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_christmas_in_the_park",
|
||||||
|
"path": "assets/images/puzzles/christmas_in_the_park.png",
|
||||||
|
"label": "Christmas In The Park"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_combat_mech",
|
||||||
|
"path": "assets/images/puzzles/combat_mech.png",
|
||||||
|
"label": "Combat Mech"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_cottages_on_the_street",
|
||||||
|
"path": "assets/images/puzzles/cottages_on_the_street.png",
|
||||||
|
"label": "Cottages On The Street"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_dwarven_blacksmith",
|
||||||
|
"path": "assets/images/puzzles/dwarven_blacksmith.png",
|
||||||
|
"label": "Dwarven Blacksmith"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_dwarven_mining_village",
|
"key": "puzzle_dwarven_mining_village",
|
||||||
"path": "assets/images/puzzles/dwarven_mining_village.png",
|
"path": "assets/images/puzzles/dwarven_mining_village.png",
|
||||||
"label": "Dwarven Mining Village"
|
"label": "Dwarven Mining Village"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_ferarri_in_the_driveway",
|
||||||
|
"path": "assets/images/puzzles/ferarri_in_the_driveway.png",
|
||||||
|
"label": "Ferarri In The Driveway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_floating_castles",
|
||||||
|
"path": "assets/images/puzzles/floating_castles.png",
|
||||||
|
"label": "Floating Castles"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_floating_wizards_village",
|
||||||
|
"path": "assets/images/puzzles/floating_wizards_village.png",
|
||||||
|
"label": "Floating Wizards Village"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_four_seasons_2",
|
||||||
|
"path": "assets/images/puzzles/four_seasons_2.png",
|
||||||
|
"label": "Four Seasons 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_fruit_bowl",
|
||||||
|
"path": "assets/images/puzzles/fruit_bowl.png",
|
||||||
|
"label": "Fruit Bowl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_fuzzy_halloween",
|
||||||
|
"path": "assets/images/puzzles/fuzzy_halloween.png",
|
||||||
|
"label": "Fuzzy Halloween"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_golden_in_the_mountains",
|
"key": "puzzle_golden_in_the_mountains",
|
||||||
"path": "assets/images/puzzles/golden_in_the_mountains.png",
|
"path": "assets/images/puzzles/golden_in_the_mountains.png",
|
||||||
"label": "Golden in the Mountains"
|
"label": "Golden In The Mountains"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_good_vs_evil",
|
"key": "puzzle_good_vs_evil",
|
||||||
"path": "assets/images/puzzles/good_vs_evil.png",
|
"path": "assets/images/puzzles/good_vs_evil.png",
|
||||||
"label": "Good vs Evil"
|
"label": "Good Vs Evil"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_growing_ea",
|
"key": "puzzle_growing_ea",
|
||||||
"path": "assets/images/puzzles/growing_ea.png",
|
"path": "assets/images/puzzles/growing_ea.png",
|
||||||
"label": "Growing Computer Parts"
|
"label": "Growing Ea"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_guilin_landscape",
|
"key": "puzzle_guilin_landscape",
|
||||||
"path": "assets/images/puzzles/guilin_landscape.png",
|
"path": "assets/images/puzzles/guilin_landscape.png",
|
||||||
"label": "Guilin Landscape"
|
"label": "Guilin Landscape"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_heavy_storm_in_the_city",
|
||||||
|
"path": "assets/images/puzzles/heavy_storm_in_the_city.png",
|
||||||
|
"label": "Heavy Storm In The City"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_home_sweet_home",
|
"key": "puzzle_home_sweet_home",
|
||||||
"path": "assets/images/puzzles/home_sweet_home.png",
|
"path": "assets/images/puzzles/home_sweet_home.png",
|
||||||
"label": "Home Sweet Home"
|
"label": "Home Sweet Home"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_lone_ship",
|
"key": "puzzle_jeweled_frogs",
|
||||||
"path": "assets/images/puzzles/lone_ship_in_the_seas.png",
|
"path": "assets/images/puzzles/jeweled_frogs.png",
|
||||||
"label": "Lone Ship on the Ocean"
|
"label": "Jeweled Frogs"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_misty",
|
"key": "puzzle_jungle_macaw",
|
||||||
|
"path": "assets/images/puzzles/jungle_macaw.png",
|
||||||
|
"label": "Jungle Macaw"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_lake_treehouse",
|
||||||
|
"path": "assets/images/puzzles/lake_treehouse.png",
|
||||||
|
"label": "Lake Treehouse"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_lone_ship_in_the_seas",
|
||||||
|
"path": "assets/images/puzzles/lone_ship_in_the_seas.png",
|
||||||
|
"label": "Lone Ship In The Seas"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_mini_dennys",
|
||||||
|
"path": "assets/images/puzzles/mini-dennys.png",
|
||||||
|
"label": "Mini Dennys"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_misty_exploration",
|
||||||
"path": "assets/images/puzzles/misty_exploration.png",
|
"path": "assets/images/puzzles/misty_exploration.png",
|
||||||
"label": "Misty Exploration"
|
"label": "Misty Exploration"
|
||||||
},
|
},
|
||||||
|
|
@ -49,29 +149,104 @@
|
||||||
"path": "assets/images/puzzles/model_village.png",
|
"path": "assets/images/puzzles/model_village.png",
|
||||||
"label": "Model Village"
|
"label": "Model Village"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_moroccan_lounge",
|
||||||
|
"path": "assets/images/puzzles/moroccan_lounge.png",
|
||||||
|
"label": "Moroccan Lounge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_mountain_blanket",
|
||||||
|
"path": "assets/images/puzzles/mountain_blanket.png",
|
||||||
|
"label": "Mountain Blanket"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_opulant_flowers",
|
"key": "puzzle_opulant_flowers",
|
||||||
"path": "assets/images/puzzles/opulant_flowers.png",
|
"path": "assets/images/puzzles/opulant_flowers.png",
|
||||||
"label": "Opulant Flowers"
|
"label": "Opulant Flowers"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_robot_in_a_flavela",
|
"key": "puzzle_orc_and_the_undead",
|
||||||
"path": "assets/images/puzzles/robot_in_a_flavela.png",
|
"path": "assets/images/puzzles/orc_and_the_undead.png",
|
||||||
"label": "Robot in a Favela"
|
"label": "Orc And The Undead"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_disassembled_android",
|
"key": "puzzle_red_panda_in_the_bamboo_forest",
|
||||||
|
"path": "assets/images/puzzles/red_panda_in_the_bamboo_forest.png",
|
||||||
|
"label": "Red Panda In The Bamboo Forest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_robot_in_a_flavela",
|
||||||
|
"path": "assets/images/puzzles/robot_in_a_flavela.png",
|
||||||
|
"label": "Robot In A Flavela"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_shanty_stack",
|
||||||
|
"path": "assets/images/puzzles/shanty_stack.png",
|
||||||
|
"label": "Shanty Stack"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_sleepy_golden",
|
||||||
|
"path": "assets/images/puzzles/sleepy_golden.png",
|
||||||
|
"label": "Sleepy Golden"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_technorhino",
|
||||||
|
"path": "assets/images/puzzles/technorhino.png",
|
||||||
|
"label": "Technorhino"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_the_beige_tree",
|
||||||
|
"path": "assets/images/puzzles/the_beige_tree.png",
|
||||||
|
"label": "The Beige Tree"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_the_disassembled_android",
|
||||||
"path": "assets/images/puzzles/the_disassembled_android.png",
|
"path": "assets/images/puzzles/the_disassembled_android.png",
|
||||||
"label": "The Disassembled Android"
|
"label": "The Disassembled Android"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_mandrill",
|
"key": "puzzle_the_old_w0rm",
|
||||||
|
"path": "assets/images/puzzles/the_old_w0rm.png",
|
||||||
|
"label": "The Old W0rm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_the_swirl",
|
||||||
|
"path": "assets/images/puzzles/the_swirl.png",
|
||||||
|
"label": "The Swirl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_thoughtful_mandrill",
|
||||||
"path": "assets/images/puzzles/thoughtful_mandrill.png",
|
"path": "assets/images/puzzles/thoughtful_mandrill.png",
|
||||||
"label": "Thoughtful Mandrill"
|
"label": "Thoughtful Mandrill"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_tiger_in_bamboo_forest",
|
||||||
|
"path": "assets/images/puzzles/tiger_in_bamboo_forest.png",
|
||||||
|
"label": "Tiger In Bamboo Forest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_tokyo_mech_2",
|
||||||
|
"path": "assets/images/puzzles/tokyo_mech_2.png",
|
||||||
|
"label": "Tokyo Mech 2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_tune_the_news",
|
||||||
|
"path": "assets/images/puzzles/tune_the_news.png",
|
||||||
|
"label": "Tune The News"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_turtle_metropolis",
|
||||||
|
"path": "assets/images/puzzles/turtle_metropolis.png",
|
||||||
|
"label": "Turtle Metropolis"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "puzzle_ultimate_tree_fort",
|
"key": "puzzle_ultimate_tree_fort",
|
||||||
"path": "assets/images/puzzles/ultimate_tree_fort.png",
|
"path": "assets/images/puzzles/ultimate_tree_fort.png",
|
||||||
"label": "Ultimate Tree Fort"
|
"label": "Ultimate Tree Fort"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "puzzle_victorian_steampunk_rooftops",
|
||||||
|
"path": "assets/images/puzzles/victorian_steampunk_rooftops.png",
|
||||||
|
"label": "Victorian Steampunk Rooftops"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,89 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"key": "thumb_above_the_city",
|
||||||
|
"path": "assets/images/puzzles/thumb_above_the_city.png",
|
||||||
|
"puzzleKey": "puzzle_above_the_city"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_abstract_highway",
|
||||||
|
"path": "assets/images/puzzles/thumb_abstract_highway.png",
|
||||||
|
"puzzleKey": "puzzle_abstract_highway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_alpine_mountains",
|
||||||
|
"path": "assets/images/puzzles/thumb_alpine_mountains.png",
|
||||||
|
"puzzleKey": "puzzle_alpine_mountains"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_america",
|
"key": "thumb_america",
|
||||||
"path": "assets/images/puzzles/thumb_america.png",
|
"path": "assets/images/puzzles/thumb_america.png",
|
||||||
"puzzleKey": "puzzle_america"
|
"puzzleKey": "puzzle_america"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_arctic_fox",
|
||||||
|
"path": "assets/images/puzzles/thumb_arctic_fox.png",
|
||||||
|
"puzzleKey": "puzzle_arctic_fox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_cartoon_land",
|
||||||
|
"path": "assets/images/puzzles/thumb_cartoon_land.png",
|
||||||
|
"puzzleKey": "puzzle_cartoon_land"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_christmas_in_the_park",
|
||||||
|
"path": "assets/images/puzzles/thumb_christmas_in_the_park.png",
|
||||||
|
"puzzleKey": "puzzle_christmas_in_the_park"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_combat_mech",
|
||||||
|
"path": "assets/images/puzzles/thumb_combat_mech.png",
|
||||||
|
"puzzleKey": "puzzle_combat_mech"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_cottages_on_the_street",
|
||||||
|
"path": "assets/images/puzzles/thumb_cottages_on_the_street.png",
|
||||||
|
"puzzleKey": "puzzle_cottages_on_the_street"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_dwarven_blacksmith",
|
||||||
|
"path": "assets/images/puzzles/thumb_dwarven_blacksmith.png",
|
||||||
|
"puzzleKey": "puzzle_dwarven_blacksmith"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_dwarven_mining_village",
|
"key": "thumb_dwarven_mining_village",
|
||||||
"path": "assets/images/puzzles/thumb_dwarven_mining_village.png",
|
"path": "assets/images/puzzles/thumb_dwarven_mining_village.png",
|
||||||
"puzzleKey": "puzzle_dwarven_mining_village"
|
"puzzleKey": "puzzle_dwarven_mining_village"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_ferarri_in_the_driveway",
|
||||||
|
"path": "assets/images/puzzles/thumb_ferarri_in_the_driveway.png",
|
||||||
|
"puzzleKey": "puzzle_ferarri_in_the_driveway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_floating_castles",
|
||||||
|
"path": "assets/images/puzzles/thumb_floating_castles.png",
|
||||||
|
"puzzleKey": "puzzle_floating_castles"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_floating_wizards_village",
|
||||||
|
"path": "assets/images/puzzles/thumb_floating_wizards_village.png",
|
||||||
|
"puzzleKey": "puzzle_floating_wizards_village"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_four_seasons_2",
|
||||||
|
"path": "assets/images/puzzles/thumb_four_seasons_2.png",
|
||||||
|
"puzzleKey": "puzzle_four_seasons_2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_fruit_bowl",
|
||||||
|
"path": "assets/images/puzzles/thumb_fruit_bowl.png",
|
||||||
|
"puzzleKey": "puzzle_fruit_bowl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_fuzzy_halloween",
|
||||||
|
"path": "assets/images/puzzles/thumb_fuzzy_halloween.png",
|
||||||
|
"puzzleKey": "puzzle_fuzzy_halloween"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_golden_in_the_mountains",
|
"key": "thumb_golden_in_the_mountains",
|
||||||
"path": "assets/images/puzzles/thumb_golden_in_the_mountains.png",
|
"path": "assets/images/puzzles/thumb_golden_in_the_mountains.png",
|
||||||
|
|
@ -29,49 +104,149 @@
|
||||||
"path": "assets/images/puzzles/thumb_guilin_landscape.png",
|
"path": "assets/images/puzzles/thumb_guilin_landscape.png",
|
||||||
"puzzleKey": "puzzle_guilin_landscape"
|
"puzzleKey": "puzzle_guilin_landscape"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_heavy_storm_in_the_city",
|
||||||
|
"path": "assets/images/puzzles/thumb_heavy_storm_in_the_city.png",
|
||||||
|
"puzzleKey": "puzzle_heavy_storm_in_the_city"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_home_sweet_home",
|
"key": "thumb_home_sweet_home",
|
||||||
"path": "assets/images/puzzles/thumb_home_sweet_home.png",
|
"path": "assets/images/puzzles/thumb_home_sweet_home.png",
|
||||||
"puzzleKey": "puzzle_home_sweet_home"
|
"puzzleKey": "puzzle_home_sweet_home"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_lone_ship",
|
"key": "thumb_jeweled_frogs",
|
||||||
"path": "assets/images/puzzles/thumb_lone_ship_in_the_seas.png",
|
"path": "assets/images/puzzles/thumb_jeweled_frogs.png",
|
||||||
"puzzleKey": "puzzle_lone_ship"
|
"puzzleKey": "puzzle_jeweled_frogs"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_misty",
|
"key": "thumb_jungle_macaw",
|
||||||
|
"path": "assets/images/puzzles/thumb_jungle_macaw.png",
|
||||||
|
"puzzleKey": "puzzle_jungle_macaw"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_lake_treehouse",
|
||||||
|
"path": "assets/images/puzzles/thumb_lake_treehouse.png",
|
||||||
|
"puzzleKey": "puzzle_lake_treehouse"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_lone_ship_in_the_seas",
|
||||||
|
"path": "assets/images/puzzles/thumb_lone_ship_in_the_seas.png",
|
||||||
|
"puzzleKey": "puzzle_lone_ship_in_the_seas"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_mini_dennys",
|
||||||
|
"path": "assets/images/puzzles/thumb_mini-dennys.png",
|
||||||
|
"puzzleKey": "puzzle_mini_dennys"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_misty_exploration",
|
||||||
"path": "assets/images/puzzles/thumb_misty_exploration.png",
|
"path": "assets/images/puzzles/thumb_misty_exploration.png",
|
||||||
"puzzleKey": "puzzle_misty"
|
"puzzleKey": "puzzle_misty_exploration"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_model_village",
|
"key": "thumb_model_village",
|
||||||
"path": "assets/images/puzzles/thumb_model_village.png",
|
"path": "assets/images/puzzles/thumb_model_village.png",
|
||||||
"puzzleKey": "puzzle_model_village"
|
"puzzleKey": "puzzle_model_village"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_moroccan_lounge",
|
||||||
|
"path": "assets/images/puzzles/thumb_moroccan_lounge.png",
|
||||||
|
"puzzleKey": "puzzle_moroccan_lounge"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_mountain_blanket",
|
||||||
|
"path": "assets/images/puzzles/thumb_mountain_blanket.png",
|
||||||
|
"puzzleKey": "puzzle_mountain_blanket"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_opulant_flowers",
|
"key": "thumb_opulant_flowers",
|
||||||
"path": "assets/images/puzzles/thumb_opulant_flowers.png",
|
"path": "assets/images/puzzles/thumb_opulant_flowers.png",
|
||||||
"puzzleKey": "puzzle_opulant_flowers"
|
"puzzleKey": "puzzle_opulant_flowers"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_orc_and_the_undead",
|
||||||
|
"path": "assets/images/puzzles/thumb_orc_and_the_undead.png",
|
||||||
|
"puzzleKey": "puzzle_orc_and_the_undead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_red_panda_in_the_bamboo_forest",
|
||||||
|
"path": "assets/images/puzzles/thumb_red_panda_in_the_bamboo_forest.png",
|
||||||
|
"puzzleKey": "puzzle_red_panda_in_the_bamboo_forest"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_robot_in_a_flavela",
|
"key": "thumb_robot_in_a_flavela",
|
||||||
"path": "assets/images/puzzles/thumb_robot_in_a_flavela.png",
|
"path": "assets/images/puzzles/thumb_robot_in_a_flavela.png",
|
||||||
"puzzleKey": "puzzle_robot_in_a_flavela"
|
"puzzleKey": "puzzle_robot_in_a_flavela"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_disassembled_android",
|
"key": "thumb_shanty_stack",
|
||||||
"path": "assets/images/puzzles/thumb_the_disassembled_android.png",
|
"path": "assets/images/puzzles/thumb_shanty_stack.png",
|
||||||
"puzzleKey": "puzzle_disassembled_android"
|
"puzzleKey": "puzzle_shanty_stack"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_mandrill",
|
"key": "thumb_sleepy_golden",
|
||||||
|
"path": "assets/images/puzzles/thumb_sleepy_golden.png",
|
||||||
|
"puzzleKey": "puzzle_sleepy_golden"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_technorhino",
|
||||||
|
"path": "assets/images/puzzles/thumb_technorhino.png",
|
||||||
|
"puzzleKey": "puzzle_technorhino"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_the_beige_tree",
|
||||||
|
"path": "assets/images/puzzles/thumb_the_beige_tree.png",
|
||||||
|
"puzzleKey": "puzzle_the_beige_tree"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_the_disassembled_android",
|
||||||
|
"path": "assets/images/puzzles/thumb_the_disassembled_android.png",
|
||||||
|
"puzzleKey": "puzzle_the_disassembled_android"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_the_old_w0rm",
|
||||||
|
"path": "assets/images/puzzles/thumb_the_old_w0rm.png",
|
||||||
|
"puzzleKey": "puzzle_the_old_w0rm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_the_swirl",
|
||||||
|
"path": "assets/images/puzzles/thumb_the_swirl.png",
|
||||||
|
"puzzleKey": "puzzle_the_swirl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_thoughtful_mandrill",
|
||||||
"path": "assets/images/puzzles/thumb_thoughtful_mandrill.png",
|
"path": "assets/images/puzzles/thumb_thoughtful_mandrill.png",
|
||||||
"puzzleKey": "puzzle_mandrill"
|
"puzzleKey": "puzzle_thoughtful_mandrill"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_tiger_in_bamboo_forest",
|
||||||
|
"path": "assets/images/puzzles/thumb_tiger_in_bamboo_forest.png",
|
||||||
|
"puzzleKey": "puzzle_tiger_in_bamboo_forest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_tokyo_mech_2",
|
||||||
|
"path": "assets/images/puzzles/thumb_tokyo_mech_2.png",
|
||||||
|
"puzzleKey": "puzzle_tokyo_mech_2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_tune_the_news",
|
||||||
|
"path": "assets/images/puzzles/thumb_tune_the_news.png",
|
||||||
|
"puzzleKey": "puzzle_tune_the_news"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_turtle_metropolis",
|
||||||
|
"path": "assets/images/puzzles/thumb_turtle_metropolis.png",
|
||||||
|
"puzzleKey": "puzzle_turtle_metropolis"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "thumb_ultimate_tree_fort",
|
"key": "thumb_ultimate_tree_fort",
|
||||||
"path": "assets/images/puzzles/thumb_ultimate_tree_fort.png",
|
"path": "assets/images/puzzles/thumb_ultimate_tree_fort.png",
|
||||||
"puzzleKey": "puzzle_ultimate_tree_fort"
|
"puzzleKey": "puzzle_ultimate_tree_fort"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "thumb_victorian_steampunk_rooftops",
|
||||||
|
"path": "assets/images/puzzles/thumb_victorian_steampunk_rooftops.png",
|
||||||
|
"puzzleKey": "puzzle_victorian_steampunk_rooftops"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||