From a08c13b1a30f5d94d35cef3aec1864866960d3b7 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 29 Jan 2026 13:26:42 +0000 Subject: [PATCH] Mostly done? --- .../SFX/Chopping and Mining/chop 1.ogg.import | 19 - .../SFX/Chopping and Mining/chop 2.ogg.import | 19 - .../SFX/Chopping and Mining/chop 3.ogg.import | 19 - .../SFX/Chopping and Mining/chop 4.ogg.import | 19 - .../OGG/SFX/Chopping and Mining/mine 1.ogg | 3 - .../SFX/Chopping and Mining/mine 1.ogg.import | 19 - .../OGG/SFX/Chopping and Mining/mine 2.ogg | 3 - .../SFX/Chopping and Mining/mine 2.ogg.import | 19 - .../OGG/SFX/Chopping and Mining/mine 3.ogg | 3 - .../SFX/Chopping and Mining/mine 3.ogg.import | 19 - .../OGG/SFX/Chopping and Mining/mine 4.ogg | 3 - .../SFX/Chopping and Mining/mine 4.ogg.import | 19 - .../OGG/SFX/Chopping and Mining/mine 5.ogg | 3 - .../SFX/Chopping and Mining/mine 5.ogg.import | 19 - .../.DS_Store | Bin .../chop 1.ogg => chopping/chop1.ogg} | 0 .../audio/OGG/SFX/chopping/chop1.ogg.import | 19 + .../chop 2.ogg => chopping/chop2.ogg} | 0 .../audio/OGG/SFX/chopping/chop2.ogg.import | 19 + .../chop 3.ogg => chopping/chop3.ogg} | 0 .../audio/OGG/SFX/chopping/chop3.ogg.import | 19 + .../chop 4.ogg => chopping/chop4.ogg} | 0 .../audio/OGG/SFX/chopping/chop4.ogg.import | 19 + assets/audio/coin.mp3 | 3 + assets/audio/coin.mp3.import | 19 + .../Clucking Chicken/CluckingChicken.aseprite | Bin 0 -> 1209 bytes .../Clucking Chicken/CluckingChicken.gif | Bin 0 -> 852 bytes .../Clucking Chicken/CluckingChicken.png | Bin 0 -> 502 bytes .../CluckingChicken.png.import | 11 +- .../animals/Coral Crab/CoralCrab.aseprite | Bin 0 -> 1096 bytes .../animals/Coral Crab/CoralCrab.gif | Bin 0 -> 647 bytes .../animals/Coral Crab/CoralCrab.png | Bin 0 -> 599 bytes .../animals/Coral Crab/CoralCrab.png.import | 40 + .../Croaking Toad/CroakingToad.aseprite | Bin 0 -> 1058 bytes .../animals/Croaking Toad/CroakingToad.gif | Bin 0 -> 520 bytes .../animals/Croaking Toad/CroakingToad.png | Bin 0 -> 504 bytes .../Croaking Toad/CroakingToad.png.import | 40 + .../animals/Dainty Pig/DaintyPig.aseprite | Bin 0 -> 1237 bytes .../animals/Dainty Pig/DaintyPig.gif | Bin 0 -> 634 bytes .../animals/Dainty Pig/DaintyPig.png | Bin 0 -> 572 bytes .../animals/Dainty Pig/DaintyPig.png.import | 40 + .../Honking Goose/HonkingGoose.aseprite | Bin 0 -> 1088 bytes .../animals/Honking Goose/HonkingGoose.gif | Bin 0 -> 615 bytes .../animals/Honking Goose/HonkingGoose.png | Bin 0 -> 503 bytes .../Honking Goose/HonkingGoose.png.import | 40 + .../animals/Leaping Frog/LeapingFrog.aseprite | Bin 0 -> 1016 bytes .../animals/Leaping Frog/LeapingFrog.gif | Bin 0 -> 589 bytes .../animals/Leaping Frog/LeapingFrog.png | Bin 0 -> 619 bytes .../Leaping Frog/LeapingFrog.png.import | 40 + .../animals/Mad Boar/MadBoar.aseprite | Bin 0 -> 1222 bytes .../characters/animals/Mad Boar/MadBoar.gif | Bin 0 -> 873 bytes .../characters/animals/Mad Boar/MadBoar.png | Bin 0 -> 775 bytes .../animals/Mad Boar/MadBoar.png.import | 40 + .../animals/Meowing Cat/MeowingCat.aseprite | Bin 0 -> 1202 bytes .../animals/Meowing Cat/MeowingCat.gif | Bin 0 -> 679 bytes .../animals/Meowing Cat/MeowingCat.png | Bin 0 -> 673 bytes .../animals/Meowing Cat/MeowingCat.png.import | 40 + .../Pasturing Sheep/PasturingSheep.aseprite | Bin 0 -> 1072 bytes .../Pasturing Sheep/PasturingSheep.gif | Bin 0 -> 611 bytes .../Pasturing Sheep/PasturingSheep.png | Bin 0 -> 589 bytes .../Pasturing Sheep/PasturingSheep.png.import | 40 + assets/characters/animals/SleepDog.png | Bin 0 -> 1238 bytes assets/characters/animals/SleepDog.png.import | 40 + .../animals/Slow Turtle/SlowTurtle.aseprite | Bin 0 -> 1087 bytes .../animals/Slow Turtle/SlowTurtle.gif | Bin 0 -> 811 bytes .../animals/Slow Turtle/SlowTurtle.png | Bin 0 -> 634 bytes .../animals/Slow Turtle/SlowTurtle.png.import | 40 + .../animals/Snow Fox/SnowFox.aseprite | Bin 0 -> 1082 bytes .../characters/animals/Snow Fox/SnowFox.gif | Bin 0 -> 638 bytes .../characters/animals/Snow Fox/SnowFox.png | Bin 0 -> 651 bytes .../animals/Snow Fox/SnowFox.png.import | 40 + .../Spikey Porcupine/SpikeyPorcupine.aseprite | Bin 0 -> 1087 bytes .../Spikey Porcupine/SpikeyPorcupine.gif | Bin 0 -> 651 bytes .../Spikey Porcupine/SpikeyPorcupine.png | Bin 0 -> 627 bytes .../SpikeyPorcupine.png.import | 40 + .../animals/Stinky Skunk/StinkySkunk.aseprite | Bin 0 -> 1054 bytes .../animals/Stinky Skunk/StinkySkunk.gif | Bin 0 -> 641 bytes .../animals/Stinky Skunk/StinkySkunk.png | Bin 0 -> 513 bytes .../Stinky Skunk/StinkySkunk.png.import | 40 + .../animals/Timber Wolf/TimberWolf.aseprite | Bin 0 -> 1171 bytes .../animals/Timber Wolf/TimberWolf.gif | Bin 0 -> 677 bytes .../animals/Timber Wolf/TimberWolf.png | Bin 0 -> 699 bytes .../animals/Timber Wolf/TimberWolf.png.import | 40 + .../animals/Tiny Chick/TinyChick.aseprite | Bin 0 -> 1055 bytes .../animals/Tiny Chick/TinyChick.gif | Bin 0 -> 549 bytes .../animals/Tiny Chick/TinyChick.png | Bin 0 -> 400 bytes .../animals/Tiny Chick/TinyChick.png.import | 40 + assets/font/NotoColorEmoji-Regular.ttf | 3 + assets/font/NotoColorEmoji-Regular.ttf.import | 36 + assets/images/logo.png | Bin 0 -> 375408 bytes assets/images/logo.png.import | 40 + export_presets.cfg | 6 +- export_template.html | 340 ++++++ icon.svg | 1 - project.godot | 4 +- resources/UnlockData.tres | 58 +- scenes/animal.tscn | 473 ++++++++ scenes/button.tscn | 30 +- scenes/config_panel.tscn | 91 ++ scenes/game.tscn | 3 - scenes/game2.tscn | 195 +++- scenes/scripts/animal.gd | 79 ++ scenes/scripts/animal.gd.uid | 1 + scenes/scripts/button.gd | 138 ++- scenes/scripts/config_panel.gd | 41 + scenes/scripts/config_panel.gd.uid | 1 + scenes/scripts/ui_control.gd | 274 ++++- scenes/simulator.tscn | 124 -- scripts/animal_friends_manager.gd | 101 ++ scripts/animal_friends_manager.gd.uid | 1 + scripts/audio.gd | 30 +- scripts/globals.gd | 18 +- scripts/sim_cached.gd | 931 --------------- scripts/sim_cached.gd.uid | 1 - scripts/sim_direct.gd | 1036 ----------------- scripts/sim_direct.gd.uid | 1 - scripts/unlock_data_lightweight.gd | 124 -- scripts/unlock_data_lightweight.gd.uid | 1 - 118 files changed, 2558 insertions(+), 2519 deletions(-) delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg delete mode 100644 assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import rename assets/audio/OGG/SFX/{Chopping and Mining => chopping}/.DS_Store (100%) rename assets/audio/OGG/SFX/{Chopping and Mining/chop 1.ogg => chopping/chop1.ogg} (100%) create mode 100644 assets/audio/OGG/SFX/chopping/chop1.ogg.import rename assets/audio/OGG/SFX/{Chopping and Mining/chop 2.ogg => chopping/chop2.ogg} (100%) create mode 100644 assets/audio/OGG/SFX/chopping/chop2.ogg.import rename assets/audio/OGG/SFX/{Chopping and Mining/chop 3.ogg => chopping/chop3.ogg} (100%) create mode 100644 assets/audio/OGG/SFX/chopping/chop3.ogg.import rename assets/audio/OGG/SFX/{Chopping and Mining/chop 4.ogg => chopping/chop4.ogg} (100%) create mode 100644 assets/audio/OGG/SFX/chopping/chop4.ogg.import create mode 100644 assets/audio/coin.mp3 create mode 100644 assets/audio/coin.mp3.import create mode 100644 assets/characters/animals/Clucking Chicken/CluckingChicken.aseprite create mode 100644 assets/characters/animals/Clucking Chicken/CluckingChicken.gif create mode 100644 assets/characters/animals/Clucking Chicken/CluckingChicken.png rename icon.svg.import => assets/characters/animals/Clucking Chicken/CluckingChicken.png.import (69%) create mode 100644 assets/characters/animals/Coral Crab/CoralCrab.aseprite create mode 100644 assets/characters/animals/Coral Crab/CoralCrab.gif create mode 100644 assets/characters/animals/Coral Crab/CoralCrab.png create mode 100644 assets/characters/animals/Coral Crab/CoralCrab.png.import create mode 100644 assets/characters/animals/Croaking Toad/CroakingToad.aseprite create mode 100644 assets/characters/animals/Croaking Toad/CroakingToad.gif create mode 100644 assets/characters/animals/Croaking Toad/CroakingToad.png create mode 100644 assets/characters/animals/Croaking Toad/CroakingToad.png.import create mode 100644 assets/characters/animals/Dainty Pig/DaintyPig.aseprite create mode 100644 assets/characters/animals/Dainty Pig/DaintyPig.gif create mode 100644 assets/characters/animals/Dainty Pig/DaintyPig.png create mode 100644 assets/characters/animals/Dainty Pig/DaintyPig.png.import create mode 100644 assets/characters/animals/Honking Goose/HonkingGoose.aseprite create mode 100644 assets/characters/animals/Honking Goose/HonkingGoose.gif create mode 100644 assets/characters/animals/Honking Goose/HonkingGoose.png create mode 100644 assets/characters/animals/Honking Goose/HonkingGoose.png.import create mode 100644 assets/characters/animals/Leaping Frog/LeapingFrog.aseprite create mode 100644 assets/characters/animals/Leaping Frog/LeapingFrog.gif create mode 100644 assets/characters/animals/Leaping Frog/LeapingFrog.png create mode 100644 assets/characters/animals/Leaping Frog/LeapingFrog.png.import create mode 100644 assets/characters/animals/Mad Boar/MadBoar.aseprite create mode 100644 assets/characters/animals/Mad Boar/MadBoar.gif create mode 100644 assets/characters/animals/Mad Boar/MadBoar.png create mode 100644 assets/characters/animals/Mad Boar/MadBoar.png.import create mode 100644 assets/characters/animals/Meowing Cat/MeowingCat.aseprite create mode 100644 assets/characters/animals/Meowing Cat/MeowingCat.gif create mode 100644 assets/characters/animals/Meowing Cat/MeowingCat.png create mode 100644 assets/characters/animals/Meowing Cat/MeowingCat.png.import create mode 100644 assets/characters/animals/Pasturing Sheep/PasturingSheep.aseprite create mode 100644 assets/characters/animals/Pasturing Sheep/PasturingSheep.gif create mode 100644 assets/characters/animals/Pasturing Sheep/PasturingSheep.png create mode 100644 assets/characters/animals/Pasturing Sheep/PasturingSheep.png.import create mode 100644 assets/characters/animals/SleepDog.png create mode 100644 assets/characters/animals/SleepDog.png.import create mode 100644 assets/characters/animals/Slow Turtle/SlowTurtle.aseprite create mode 100644 assets/characters/animals/Slow Turtle/SlowTurtle.gif create mode 100644 assets/characters/animals/Slow Turtle/SlowTurtle.png create mode 100644 assets/characters/animals/Slow Turtle/SlowTurtle.png.import create mode 100644 assets/characters/animals/Snow Fox/SnowFox.aseprite create mode 100644 assets/characters/animals/Snow Fox/SnowFox.gif create mode 100644 assets/characters/animals/Snow Fox/SnowFox.png create mode 100644 assets/characters/animals/Snow Fox/SnowFox.png.import create mode 100644 assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.aseprite create mode 100644 assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.gif create mode 100644 assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.png create mode 100644 assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.png.import create mode 100644 assets/characters/animals/Stinky Skunk/StinkySkunk.aseprite create mode 100644 assets/characters/animals/Stinky Skunk/StinkySkunk.gif create mode 100644 assets/characters/animals/Stinky Skunk/StinkySkunk.png create mode 100644 assets/characters/animals/Stinky Skunk/StinkySkunk.png.import create mode 100644 assets/characters/animals/Timber Wolf/TimberWolf.aseprite create mode 100644 assets/characters/animals/Timber Wolf/TimberWolf.gif create mode 100644 assets/characters/animals/Timber Wolf/TimberWolf.png create mode 100644 assets/characters/animals/Timber Wolf/TimberWolf.png.import create mode 100644 assets/characters/animals/Tiny Chick/TinyChick.aseprite create mode 100644 assets/characters/animals/Tiny Chick/TinyChick.gif create mode 100644 assets/characters/animals/Tiny Chick/TinyChick.png create mode 100644 assets/characters/animals/Tiny Chick/TinyChick.png.import create mode 100644 assets/font/NotoColorEmoji-Regular.ttf create mode 100644 assets/font/NotoColorEmoji-Regular.ttf.import create mode 100644 assets/images/logo.png create mode 100644 assets/images/logo.png.import create mode 100644 export_template.html delete mode 100644 icon.svg create mode 100644 scenes/animal.tscn create mode 100644 scenes/config_panel.tscn delete mode 100644 scenes/game.tscn create mode 100644 scenes/scripts/animal.gd create mode 100644 scenes/scripts/animal.gd.uid create mode 100644 scenes/scripts/config_panel.gd create mode 100644 scenes/scripts/config_panel.gd.uid delete mode 100644 scenes/simulator.tscn create mode 100644 scripts/animal_friends_manager.gd create mode 100644 scripts/animal_friends_manager.gd.uid delete mode 100644 scripts/sim_cached.gd delete mode 100644 scripts/sim_cached.gd.uid delete mode 100644 scripts/sim_direct.gd delete mode 100644 scripts/sim_direct.gd.uid delete mode 100644 scripts/unlock_data_lightweight.gd delete mode 100644 scripts/unlock_data_lightweight.gd.uid diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import deleted file mode 100644 index c64d022..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dk4uuqs15ke73" -path="res://.godot/imported/chop 1.ogg-b69af87df03a0c5fe070f85eb271d215.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg" -dest_files=["res://.godot/imported/chop 1.ogg-b69af87df03a0c5fe070f85eb271d215.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import deleted file mode 100644 index bed697e..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://cu0or87uh4tnx" -path="res://.godot/imported/chop 2.ogg-3c1aa9e3d1bef67928f70428ba3baf67.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg" -dest_files=["res://.godot/imported/chop 2.ogg-3c1aa9e3d1bef67928f70428ba3baf67.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import deleted file mode 100644 index 88cc4fa..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dyeihn6rpcexy" -path="res://.godot/imported/chop 3.ogg-cbdf52dc00aee6e6fc66cc6cdf1d505c.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg" -dest_files=["res://.godot/imported/chop 3.ogg-cbdf52dc00aee6e6fc66cc6cdf1d505c.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import deleted file mode 100644 index 7b485b1..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dtv1te54cfra1" -path="res://.godot/imported/chop 4.ogg-3b75c4df4d131e29f8d9237341d5fdc8.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg" -dest_files=["res://.godot/imported/chop 4.ogg-3b75c4df4d131e29f8d9237341d5fdc8.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg deleted file mode 100644 index af0347c..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a482bc0dd0336b678e7bb2ee0485df6dc2cdd649ea6136f015984ee686b69b9 -size 33072 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import deleted file mode 100644 index 5c7afd5..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://ciigu6xv4een2" -path="res://.godot/imported/mine 1.ogg-7d18662074fe361b38d431c8b05adfef.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 1.ogg" -dest_files=["res://.godot/imported/mine 1.ogg-7d18662074fe361b38d431c8b05adfef.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg deleted file mode 100644 index 8c7d489..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:efb291c33b90172234cb2c96b9cb0733d712f3663998a394ce653017ece6a0b2 -size 30937 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import deleted file mode 100644 index 2b591f0..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dvymfro1mgu26" -path="res://.godot/imported/mine 2.ogg-ddfea9d88f0eaa481725560e89c016d4.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 2.ogg" -dest_files=["res://.godot/imported/mine 2.ogg-ddfea9d88f0eaa481725560e89c016d4.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg deleted file mode 100644 index c73fb16..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d0181feb17087d62da7cb2eba216cc1362567c48e086ef7e8757561b20350fd -size 26080 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import deleted file mode 100644 index 8cbcf32..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://df271xfcx0a7b" -path="res://.godot/imported/mine 3.ogg-217d1add25379185f600351d973c4748.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 3.ogg" -dest_files=["res://.godot/imported/mine 3.ogg-217d1add25379185f600351d973c4748.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg deleted file mode 100644 index 44a511e..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9f7d0b76e8fc9d0ff70e819208763698fca099a657f147ad33cbc48abfb15cb -size 32489 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import deleted file mode 100644 index 27d769d..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://bqdbaorkkkg8o" -path="res://.godot/imported/mine 4.ogg-9f72de7d0c734b4128ba92bef9b7b50f.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 4.ogg" -dest_files=["res://.godot/imported/mine 4.ogg-9f72de7d0c734b4128ba92bef9b7b50f.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg b/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg deleted file mode 100644 index f652787..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1a0f02a72aafb81b01eb971391bb3d348d0a8676334b8926f477f2b8873425a2 -size 31572 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import b/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import deleted file mode 100644 index 6e155fc..0000000 --- a/assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="oggvorbisstr" -type="AudioStreamOggVorbis" -uid="uid://dpbdn7vgrkbvg" -path="res://.godot/imported/mine 5.ogg-fefc870733e0b64c3ccf27b6e4d44e3f.oggvorbisstr" - -[deps] - -source_file="res://assets/audio/OGG/SFX/Chopping and Mining/mine 5.ogg" -dest_files=["res://.godot/imported/mine 5.ogg-fefc870733e0b64c3ccf27b6e4d44e3f.oggvorbisstr"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/.DS_Store b/assets/audio/OGG/SFX/chopping/.DS_Store similarity index 100% rename from assets/audio/OGG/SFX/Chopping and Mining/.DS_Store rename to assets/audio/OGG/SFX/chopping/.DS_Store diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg b/assets/audio/OGG/SFX/chopping/chop1.ogg similarity index 100% rename from assets/audio/OGG/SFX/Chopping and Mining/chop 1.ogg rename to assets/audio/OGG/SFX/chopping/chop1.ogg diff --git a/assets/audio/OGG/SFX/chopping/chop1.ogg.import b/assets/audio/OGG/SFX/chopping/chop1.ogg.import new file mode 100644 index 0000000..841d951 --- /dev/null +++ b/assets/audio/OGG/SFX/chopping/chop1.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dk4uuqs15ke73" +path="res://.godot/imported/chop1.ogg-f4598c93b23f97c2d4f238891e3ff73f.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/OGG/SFX/chopping/chop1.ogg" +dest_files=["res://.godot/imported/chop1.ogg-f4598c93b23f97c2d4f238891e3ff73f.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg b/assets/audio/OGG/SFX/chopping/chop2.ogg similarity index 100% rename from assets/audio/OGG/SFX/Chopping and Mining/chop 2.ogg rename to assets/audio/OGG/SFX/chopping/chop2.ogg diff --git a/assets/audio/OGG/SFX/chopping/chop2.ogg.import b/assets/audio/OGG/SFX/chopping/chop2.ogg.import new file mode 100644 index 0000000..ebd1268 --- /dev/null +++ b/assets/audio/OGG/SFX/chopping/chop2.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cu0or87uh4tnx" +path="res://.godot/imported/chop2.ogg-c9974775002e292c3a0954ff6ec0cf49.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/OGG/SFX/chopping/chop2.ogg" +dest_files=["res://.godot/imported/chop2.ogg-c9974775002e292c3a0954ff6ec0cf49.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg b/assets/audio/OGG/SFX/chopping/chop3.ogg similarity index 100% rename from assets/audio/OGG/SFX/Chopping and Mining/chop 3.ogg rename to assets/audio/OGG/SFX/chopping/chop3.ogg diff --git a/assets/audio/OGG/SFX/chopping/chop3.ogg.import b/assets/audio/OGG/SFX/chopping/chop3.ogg.import new file mode 100644 index 0000000..33e0c50 --- /dev/null +++ b/assets/audio/OGG/SFX/chopping/chop3.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dyeihn6rpcexy" +path="res://.godot/imported/chop3.ogg-d2a5ffcab1d1558f23fdf93ca7a3b6da.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/OGG/SFX/chopping/chop3.ogg" +dest_files=["res://.godot/imported/chop3.ogg-d2a5ffcab1d1558f23fdf93ca7a3b6da.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg b/assets/audio/OGG/SFX/chopping/chop4.ogg similarity index 100% rename from assets/audio/OGG/SFX/Chopping and Mining/chop 4.ogg rename to assets/audio/OGG/SFX/chopping/chop4.ogg diff --git a/assets/audio/OGG/SFX/chopping/chop4.ogg.import b/assets/audio/OGG/SFX/chopping/chop4.ogg.import new file mode 100644 index 0000000..78a6867 --- /dev/null +++ b/assets/audio/OGG/SFX/chopping/chop4.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dtv1te54cfra1" +path="res://.godot/imported/chop4.ogg-930a76e627570bb0a5bcd1e12c512a03.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/OGG/SFX/chopping/chop4.ogg" +dest_files=["res://.godot/imported/chop4.ogg-930a76e627570bb0a5bcd1e12c512a03.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/coin.mp3 b/assets/audio/coin.mp3 new file mode 100644 index 0000000..58c6841 --- /dev/null +++ b/assets/audio/coin.mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05439ef240ed7bedd12e462854e309ec02c8de04a3787b1ac5f312b63b631194 +size 12260 diff --git a/assets/audio/coin.mp3.import b/assets/audio/coin.mp3.import new file mode 100644 index 0000000..cda7a7a --- /dev/null +++ b/assets/audio/coin.mp3.import @@ -0,0 +1,19 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +uid="uid://c08bib4emn512" +path="res://.godot/imported/coin.mp3-5bd517a0009591b634e39f6a9642e1fc.mp3str" + +[deps] + +source_file="res://assets/audio/coin.mp3" +dest_files=["res://.godot/imported/coin.mp3-5bd517a0009591b634e39f6a9642e1fc.mp3str"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/characters/animals/Clucking Chicken/CluckingChicken.aseprite b/assets/characters/animals/Clucking Chicken/CluckingChicken.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..b205bf43f6a5f2f691f52d0f8139d2b73e6067d7 GIT binary patch literal 1209 zcmdnV!ocugDGP%D5GpV*GB7Zl0Ad6Hih%^d@(5AtvATe!|N6)RwiW0U1~DLJR{&dy zWJwl~%>r_r0+6AkVB)G_lV)kyA7*{OQ0?Y|w0DPR{r+S&^JzfVJ_GY9dES}&LEb7x zHkS7GB?bvi(RmM(XaA2s`{eZPKmY&#pS^Z_OI>?rR#s$KP?=NL8Y82d;mOylclA&A z>dH5e2ic^+3?yOTKaj!B;FDOHTBKlj8^~c*U;sLWk>NiRObH(YKSRZwx*Z==~r|W0TPpq2owdup!&Fl|r}#Qoe3}e&*Op_DFpX zStB*G+@`mzZLw|BRJmwsLCP3kT8HgcX zWkT^P-(d4<)vXz}>1JJ30`q5-umv%5HS_3tPT8Qagni03v9{TVG6Q55yk=#1_cti+ z1)3LcVD%zD1JsLh;MjDPQDZ;!f7+5i?%|O5a|Q}r`mEml_&>L}xQMAitwMvhzK1+8 zN|`SLnf5;SuHBRNQ-0n0()k+y;qB+-T5gwbzx?$7f99zF|L-Rr%rxIrmBLW;`{T)t z2|UKLC2AEIxK=CMWl212^_D+zM%le@(Tn4vYA>oBBvRCP9(&6hd_7U+@aAT5+T$zj zYvh;k$qHX;PqH`gG1{VHc&KfHU4T@KL>||2$HHb`dxjHt(%YV(`SS`^fAYcnIk2gA zb78COt||exne2ylT;kEONjpEYcahu?b+x&TR~il}IC~4J>TtYdT)MXP;j#iL5%w2V JjNGk3wE+7trz`*f literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Clucking Chicken/CluckingChicken.gif b/assets/characters/animals/Clucking Chicken/CluckingChicken.gif new file mode 100644 index 0000000000000000000000000000000000000000..8522b1b0253871295bb459b82f174386b3e86509 GIT binary patch literal 852 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXQNXyE~ zWN1m++IueyH~o{val}XMg^SDoJ1qYXXx;5}IX*e|-;$Ksb7mhoa`e{OgHP@p|Ns9# zNIP+WHC#cVFC}x@xs9j3YG6g&b9R=T7h&-I=DDa|~wXBQf&-ll^ zImkrHIJ~sBmg6_oy-;B<^=X>pgVenoJS?mh1LBi7h)*=6W@JmU_-M0D;5l$q@$y7j zk%C}M33FLoCT%HE7HM=u@XExFgIgavZa*ti mv1@UnyV<|`+I%*qbWL*}mQGePu$NfroX{wVoHX2#V+{ZqzX@>w literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Clucking Chicken/CluckingChicken.png b/assets/characters/animals/Clucking Chicken/CluckingChicken.png new file mode 100644 index 0000000000000000000000000000000000000000..527ed7eef6d5359fa82e2353200e3a003bd4dbc9 GIT binary patch literal 502 zcmVPx$ut`KgR9J=WmoZDjKp2KUr9;J`n;_h+Mf)Gb!3;txxJx$&=}&NIsEark`~^bs zUsyv4QgAVh`USZ>y(hBcgf{0QWU=>BzN!oeBXO*N{RkUy*OuBbq^~k&KWpo zSlpb#B!nUY{87GWLom4CDr0V0S^=mAn6;*R2ufPc8D?X5X#?jBeyfaV$xKWFl=1U= zXlVnuXgJOp0AO#w9$sZ2-2l`0c|EiaFc?zQM6d<`-jxO1)qrtnX^%;OX?ztA;{%Ku zM2$FS7!CVj0Dh|sx7&oRfU^MIthc6<)Jbam6 zm7n~jSQ8obdbi>I)`m|+ME!>mU35A$oz9jtQSD?h4e#H*dwQKOVm=4QCz&21{>N8| zo}M35d(h!ajoP*ydzLkPR7*tEwr$$ospSeVjj!565&Y1|X;g7m+m^pL{(yd6CVsm- sByY1q*XMQeHY@aU^r`$u$n#gKSb@29hxFAIM;5@JXypEmAPt2js9SfTUO${xgAS5D;MCVW^nXI%zlOVFv-1 z?JSEASbUiJK&?lr;EC3p)$Cgr2Hf4j*zOm5aAtXdfz-<-&51YeO5Ql{>awKdtm2;U zG2H*#6t&-1#&Ykgoxl9@<_{C^Z+&pLRJE=D&pOt}Pvepzo(Elt@qS(TEO^VFThf(P z&ivL8E@Zj3Nzv3>Qdw!cM+Po+~^;bwmY`Oa%uYS?yD&zIl{AYZ9Z~kBL zyt3YNtP!R6~Vu){;k$l6?zzg(Ea)N@~iBqTkuqT!nrbtcS*Dosi zU!R-vuX`B3kn^&_m$eTcH7yiZ+2*1kDd+!SQNqjqW#KB~f zg_Ya&Zg2Y&?@vg~{`umUV;=iT){8GB=EtSfDwO`0FIjxy#vviwHIA>Yb-YYU__D*{ zI{RYBJm+ICK5h8Gys&9j(2taKVf3G7s&q6+I{-JD$~P+Srh6?wkp&_dT^X! zzu59+@oLtGd7SD7@-E81xg`%DDOl+$&i<2M^6{naH)azoPUI?lRgjVedOMi;GI!AL z|BmKdy}CUY4vV<07rcD*z>P;KDK zLUaEixciYKLI4^O4h)fzGyf}`abRP3`8y);r1Tf*%>rtV5(4=^KHTD#y{;nA78p&<1do- zuk8bjaW8g!=K_q46Ny}po}Xe% gx}d<*EnZStV&3qFcarn6iEj_6@i8%YrSV+^07R#RhX4Qo literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Coral Crab/CoralCrab.gif b/assets/characters/animals/Coral Crab/CoralCrab.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc2f82dd8e9c1c73a2ec5621719e3687482a8043 GIT binary patch literal 647 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ zN-aU85ir5B{2f7679R^se3p{FdvD2*kEBX*Cu+Er$Uk*{_2$%TkDp9dle{yz=hIm}!1;-6>+-W)6I29KtH+&0Vp@!1} zAWnOIHl5-A*Iti+s5B{=V}e21(kw?D_r%q*vj+BT4t&opHA}!_-ut803VZ=CE-}{% z35CaM9JAutcmLfB1%=71FN!L=1-5u^F4th9hNB`Nj=C-Ig@@x}=v@w$b`PZo5&~_S z3y(b%YON7^Ik$LDFynJ6F#(Th7ezE=1llvEcsM$8a_acIdGqeOKkIeCYSDA8o8FcP VY`NVu{q|cYjyG$B>qHnCtO2qy#25eo literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Coral Crab/CoralCrab.png b/assets/characters/animals/Coral Crab/CoralCrab.png new file mode 100644 index 0000000000000000000000000000000000000000..e89b532b28c06c1b5a14a5a6eabb034bef60392c GIT binary patch literal 599 zcmV-d0;v6oP)Px%5lKWrR9J=Wm9cBvKorJ59hTcBlnlmXh;IwA35E*cX33gR)2*`|=#(v))4w3Q zrcg43(vF=9#ZWIDTZ_X154D#-WauC=l#rw-5OqjS+(}mMgq6_24~_@+`@Qdb?<5DE6jjtD%S~^)nw}0F#;h>mRB4WaY@%K)nWD*uFo8;vvgjNJ>T)#~z{qJbcQ7KpIV7#0s-Nx5v>6NjIc_q?&; zm?LzG7PjgHgH{_?t}C5hwU#>kH2MbLUawk1*DXaq5W~V!V!*$_DmEHtcscx)*nS>7 z0BL|adxwF&ALX)r`|iJ$n#gKSb@29hxFAIM;5@JXypEmAOC1LUwOfTUO%{xgAS5a4IvW~i8xoS?vCqVn~B zvq6t-bD~>wJxyTR*0dxmbSFT!a6I|1d9__?4NV=s1_hexS>KePjd&Ehs?O z12LW5E}{Io^(FI8e#ygMn!Y-IUG!V{X1@W?Ct)9ZGwZ~v#Kfi?`Au;V6%V_lXZ)V< zw&kb%GkJmDHS!Fl7Q*jNqB(yj-1#ghLC=F3^!p$|ujXd&^A;ZP)8l}4d_DV;_`2+^=52t*Sd4~c^2O;ttrxxQEr#rWS5i2vhshu19#uWzperIWyLJo zUIP8`lNacZLvNigu@~!al24Qnku&&vO;0X@qai!zBiCjALnq1({o()2-{E$R NpCOD-_rVa42LQbFbshi! literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Croaking Toad/CroakingToad.gif b/assets/characters/animals/Croaking Toad/CroakingToad.gif new file mode 100644 index 0000000000000000000000000000000000000000..29bb77988f4b7d228490c51f8b2788b04ccd41b8 GIT binary patch literal 520 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YTr!b$}SCNPwXkNNY&y z=lg1>r{+$IG5&vt<^KV#IUND}`rVIDjy-y`9;6Zpu=og^@Lavu;`P~b4u%=ET|zUi zm1~{2&~^Egl6&l7^+ob64}LF_Ia}r-(QKS_G2p;UjsT}#PVSfMm@*v$ct0#?*XfV` zC?^mp)zr}7ip4>VK)Zkrg1Cc8sHK19>9_og=WMy9#UxYNUFXXR@&hM@e(;6*q1KsU zzL>@-i83yu70;jao=`mf)Px$vPnciR9J=WmA^{@VHn51!iAj?Ee;7fsE~>$H;B;E|KQ-#7;Y^VM5|2>;UYm( zLbL@gjV^5mBHoZ35rQ@t)F6RNcGESS@2Tf2=l!q}?z`OkzQ^bJKKH!$J}=2b**h-8={)`a_0M%L+0Fci?sn)W{=b*g2KY5lh zw#!#*S;)->?w|K?eZGsk+fO6Rl>b}-rYl51GYL4&%gqLQGK);KuRSw`Fv=Br5zYF0 z^e}-42mn2qolCS_d4)cKRq&EHKzH~($JbkoBmRsYCJ+I?q&_tP{m-*1-p7TI8qbqk z+uFN&tL=!thX&IsHf?@XYR^>vxA^^(sLd0H8(IuI{){Q}U>-?fku!d0MZ`OTBo4r({W!k-pk6=g%Krdr^zF{cv=J@<0000wNzI|NrXMi*u(=u3o=$VaN2+q_SAI1RtXSXEjF+N&VlYrN6CHP8f#w znaB7m2bzkyeD@0er0=#z%<0cj%OBO!KOCg@s&m!|Y5#xF{p&!~>wb@mC632~EH`SJ z{@vUEp(FcpM({dUuO36A5M|{R5gyGBKIw+u_R7jvrk2kyh-wKBNVc}GzP>VOQ=>?0 zhDdstlDm(9zRBzV-J2gL`|J(VZ#U(RG@QOauXBD{Vr!I7LSXUzPg=V#7{;D;*P657 z#`W5LztZ~GN5nR|n#F$G_3!HZFB=M8*VsI~eSYK0CB4GhgC9eBzt(Yxa$f zzZ@ivv7J2lL!n3aPeR#&D+lke8%wLTYrmWD){Q?trfA0{Ni$=Iq8Dil3=a*nG*1GZ z{OcnlINm|Ay%UHbo?=Du6!)O<)P%1}tDUDG7XNNgzHoK($%V5S8EWf;i%+3>WEWLE zGJCJm|NVO_czqVXZhy&o^6_DX%?T1|Y?@WT82QuuhE0HXl5<#l@7;&Cl551<5+5>8 zZeAG=jGcFG64EN{NzGRp4XSFCK=G56_{!1b44;5>_zmUPuG`pS`Qq;!{?odSPpv(V zjp0C_?+x1e1YbJ)Ebk%n#687y#|?$uj#(4$GAy#*qkj16nv;<%+nIr>s_{w#Fh%Z? TPx$5d$^ki{VTlu)sR3I7kVDC) literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Dainty Pig/DaintyPig.gif b/assets/characters/animals/Dainty Pig/DaintyPig.gif new file mode 100644 index 0000000000000000000000000000000000000000..ea8268f65cae0c51723e6076d2249c2aadf0598c GIT binary patch literal 634 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ zG$2qK@%Mf~P{*(zZ2)RT2UmaV!-Llbbw) z-@jh*uY^k}@P)Px$_DMuRR9J=WR=-OEQ5^p$Zb9}3_z1x@2-+KhT51WRA45xHwG=G|EjpM>4RT=( z4dIX$MAW1blr%IPh)FhFT=K5KDbG204RMd>d8X%C6#0SUKHPhs@8|pdaK}BMhaP(9 zp$!n?V^;iMfDj+M-AyqEjZXsrzZ;;}Z;v4*w3tp5NrP10M+g-AF60000< KMNUMnLSTZ%^aCOQ literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Dainty Pig/DaintyPig.png.import b/assets/characters/animals/Dainty Pig/DaintyPig.png.import new file mode 100644 index 0000000..85c3490 --- /dev/null +++ b/assets/characters/animals/Dainty Pig/DaintyPig.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d2dpt56hf53vv" +path="res://.godot/imported/DaintyPig.png-1fa1d8560b1693c9ba5edaa5ddd52345.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Dainty Pig/DaintyPig.png" +dest_files=["res://.godot/imported/DaintyPig.png-1fa1d8560b1693c9ba5edaa5ddd52345.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Honking Goose/HonkingGoose.aseprite b/assets/characters/animals/Honking Goose/HonkingGoose.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..6b051b58351b544c04e8b72e11cdeb6a2b45d0ce GIT binary patch literal 1088 zcmZ=@VPJT$l!ZY62o)F@85kH&05Jjp#Xy2!d4wqSSouKHe|=;D+X{3FgBTFAD}b#; zvLp-0W&ycQ0mx8NFmcteNwYNU53{~ssCIKf+PlNEet$BX`7|JFpMm+5Jnu~XAa4~T z8%ulp5`%=M=)8x?v;W7ReRBHtpa1{=&tAK|rLH|QD=RWAsLZKrjgisK@Z{^&yZWbl zb>$n#gKSb@29hxFAIM;5@JXypEmAN%0OYVLFn|NDu70zV5%zfy! zlEeXtNPau}!%rNmCSFze&1`ul@yE5B%@K!%Z_1ze=a{D4{qRz^H@{x3d!I~eJENZM zi(eDIKDxv_>9Ba2LS>0f^|_oykEECINea(i=J?9t<>J$h%s#@i^&B%Zixm1l;6B!k24Zi9nmKDs3 zus!kM@=>WhzZ{DE-^sME-hcb$r~m&Mbwz4#d^!B3@xv|-HUqb?{?q*imJ{q!DpR&A zx9jfuJ>jhDH0QA9b#iy@N{lzIJihGtiHVB~>>mg9pN&_j-EpP)NkOYH$N722(#*n> z`5Zppc)EabS!W=B*ZZ?m_Z3J@VVm%kk-__A#I%!We%OiC4}35`;EfZFs*N+5g{q65 zTg05d>o@)XfBuYvUk{x*x?H^Fx~oBhp^xmQ>VlW7j1%HY%n#jRp6q<=M4qd;c&uC+ zo7I7|=M$CP1K%8FyYMyfaWq)b>@dpF9ip$m}qOk9WWxxytM%JX^c= Up^3)a1+Q5d>_bA|4~NJA01do*-~a#s literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Honking Goose/HonkingGoose.gif b/assets/characters/animals/Honking Goose/HonkingGoose.gif new file mode 100644 index 0000000000000000000000000000000000000000..3badda70a8475862efeded32fabb95f34bcad94c GIT binary patch literal 615 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ zxP;lQi(u$-(AZq*`~QH}-A+;`t)`y`ES@2SiW4b~}ebZ*drDpKYzQWnV&^GtD z!gEobdx;xDxc8hkxFLI9XWMP{&p{s(Hq3uj{zWD9z^tT?C2mVk&sWmmQrQ=u_twFp z!?45YRzf#ffrRcJACP;NqPk~!hc3`PN|%`qZsKvCeQz$SfZCZSb}}>Ecd}@8tWtX} pnffAc>kFsGxhz5n1>(gDGRNXv9CLTLf*r(4VyvM%h^hf(4FIaH>$U&@ literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Honking Goose/HonkingGoose.png b/assets/characters/animals/Honking Goose/HonkingGoose.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb674e9d912021412fd045a7418bf5ac4de91d4 GIT binary patch literal 503 zcmVPx$u}MThR9J=8mc32_K@^4W($V+=&ZV(2K7lkwl6?eG=q!B*Bf)Oztg*AF@&Pni z0*!@*6lOQsFiS#7d;qT1Z1!)4`Pqh>Y*=PF=gj?PHjD=vg~&+UbDnxSnq#Sh%^)&b zuX*;p(?KH$O~7;UaLPwyL`3A@US*$oLtVWn6KxY7&iQ2nBBHgp>$C9Ov;iG>I{q>b*ZjhE$#0wdeSWNLqykv>IJDJ;zsy6` zq-}m>60+u109*jp<(n>mZGJ0nlx+8~iI=d6mvDM^S%I{Pm$mRXPrYuhU(m@sR3-9F z^)C4t0M1iyIJ|>oyO%bfZ1>RZ^`$2&TY%+!8@+3OR)~zka9+8luT!nRo-mwCU!5?V zTb&YK>VjN-tj$@MwKfp2w;JqCTNZV-{t t&-*>Bc5Qfgxq;QL4ePfP>1pwp_5ZHZNNE)>v$6mH002ovPDHLkV1hZ==V1T< literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Honking Goose/HonkingGoose.png.import b/assets/characters/animals/Honking Goose/HonkingGoose.png.import new file mode 100644 index 0000000..086867e --- /dev/null +++ b/assets/characters/animals/Honking Goose/HonkingGoose.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drghlunsulio" +path="res://.godot/imported/HonkingGoose.png-a80027fda17c6e2accb6a5c9a61c188f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Honking Goose/HonkingGoose.png" +dest_files=["res://.godot/imported/HonkingGoose.png-a80027fda17c6e2accb6a5c9a61c188f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Leaping Frog/LeapingFrog.aseprite b/assets/characters/animals/Leaping Frog/LeapingFrog.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..7a9588af78ea82975c87bb5bfb2fb5fb3efd7db1 GIT binary patch literal 1016 zcmeyt%)szqDGP%D5GpV*GB7Zl0Ad6Hih%^d@(5Atu|k2S|N6)Rwv`2FtQZipD}b#; zvLp-0W&ycQ0mx8NFmcteNwYNU53{~ssCIKf+PlNEet$BX`7|JFpMm+5Jnu~XAa4~T z8%ulp5`%=M=)8x?v;W7ReRBHtpa1{=&tAK|rLH|QD=RWAsLZKrjgisK@Z{^&yZWbl zb>$n#gKSa&1_~Vf2eQ~1d=e{Dixdo(0XeJ+AURfs|4bkn1o#=a87k%^Cn)e`c)a@W zzO0i~;j8yQ{onmQ!i(9L{kuPD%754XR|ie(_MWJ6kXWMry2Xae?Rvj2zfb&!Q-A*J z2s1s9h}74!HK;wVe*BQ3S?!H44F)Ir|MO@3{a@eCy48`%UAKbr=eVKkm>c9GFoQwrMZ|Y}MmB3uS%P!|x^9_anf9)5r9xRVAxYKpkUV-Nl z|02h#3ttz$cHJf%xjryeD1tBgN7E4pWM?lp@IZ4LnzIps&4S|W!4=rJUClg*T@3)c C)?tVM literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Leaping Frog/LeapingFrog.gif b/assets/characters/animals/Leaping Frog/LeapingFrog.gif new file mode 100644 index 0000000000000000000000000000000000000000..614c670b605947ad831cb0a3c462ebed35d1ea36 GIT binary patch literal 589 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNNY&y z8&xJ{osegl5D>gFzvxl@|2r)I4`>~q9Q$uc%98)fK#F02#Z};h=jy!{ug_L8+!xbH zu3%l9q@mWT*KK&l`S-CR$2ZS9&bPK~_%1EN#dV}{#%;x^W|FxM5<1$AX!l%nIGlWaClj*Sj7 zd7E!F7+Bb7Hpb>#35di@YFOYVA$@Ee2Q}Q{26am>^M~jS9S=l1x)x5kvQy`n0{tn0SUD%#!NRDz7?qmQqw7t4)+fV z)rAXawK)Yn+a%#^v*sVK?Z98g&D`J literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Leaping Frog/LeapingFrog.png b/assets/characters/animals/Leaping Frog/LeapingFrog.png new file mode 100644 index 0000000000000000000000000000000000000000..d035d2e3c520f380e6d71ee6e835f7c315c89791 GIT binary patch literal 619 zcmV-x0+juUP)Px%B}qg#eCKxcAg{ci-I`8w4=>U$5HF~LY+JFchIza0Ph6cF)Q3@bxPxdJQpr(W2 z!8!qP67+@_6rf#VfN}uc0?35g``(V`J7EB?whNS%U0z-~lxhKzaT5#%&@BBX4D(wL z@f8`)yrrD60bsTdfLP+*Wo6fypLl(r@fRt0jPJvlJc|ax=z+cvQ2_S3?F6?lhe~%* zRB`VDH+mNVn0z=!bG5_N#&_TC;kpK+G!RyQ;@FI&iRoN&D9QyT9;mbarJ+*egW#5W&menftCOO002ovPDHLk FV1oD{8_)m% literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Leaping Frog/LeapingFrog.png.import b/assets/characters/animals/Leaping Frog/LeapingFrog.png.import new file mode 100644 index 0000000..55da402 --- /dev/null +++ b/assets/characters/animals/Leaping Frog/LeapingFrog.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://mprebvbv6gms" +path="res://.godot/imported/LeapingFrog.png-057f3b71b6b5e09bb7754ccf5be7f652.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Leaping Frog/LeapingFrog.png" +dest_files=["res://.godot/imported/LeapingFrog.png-057f3b71b6b5e09bb7754ccf5be7f652.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Mad Boar/MadBoar.aseprite b/assets/characters/animals/Mad Boar/MadBoar.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..d8d55096e9e6d6c880ee03e02747b3a3b493c5d5 GIT binary patch literal 1222 zcmX@c!ocugDGP%D5GpV*GB7Zl0Ad6Hih%^d@(5AtvHF0f|N6)RwiW0U1~DLJR{&dy zWJwl~%>r_r0+6AkVB)G_lV)kyA7*{OQ0?Y|w0DPR{r+S&^JzfVJ_GY9dES}&LEb7x zHkS7GB?bvi(RmM(XaA2s`{eZPKmY&#pS^Z_OI>?rR#s$KP?=NL8Y82d;mOylclA&A z>dH5e2ic^+3?yOTKaj!B;FDOHTBKljAIM=<07u;ICxVqy)P&H8Uh%uH0GB zqxp#M zn?Ov+yUNKag*LYyWaZ`NGCV#zbzg#18edQEdA|v>YX81Vu+cmwk;B%(E5!bB<4gB# z!pp>E4?nr^b@A=aKF0@>_en?acCazdkbF_)nCE&-;rl$BEkEk(qhJ3&>z&q^DIh;P zKJite#F6(!7k9#0$%nEwYmgjUiXiSPR{-p1=xzcxEzk7dM>*gi1Zf$Kid1&$f|NlYS zi36;03JQHGne#GMtxJ8d>7X*Z(%oY`n{D*`kM+waZ%nWeGGp*N!E79(qZ?J9!}KpULI=>Uytg4_#JfCja(M2E~E! zQaqBE*pzD6&IA2(?-I{sogQ~5vDIJu9N8wer?`mlyRsaMi4f=XIDE0;N!5)b{Dlf8 z9PC<$x-$BCKP)Y6DCm8?I#OshDxBHYCF0H#!nG&Kjld6$@y@mF=G1r z!v?1(-`{q#Z(@Xj9Or_Z6E;S9-uIGDb!f73?h9zoUs4ps_a literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Mad Boar/MadBoar.png b/assets/characters/animals/Mad Boar/MadBoar.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2208bffc52eb41bcf98e6afb0c93e49befd123 GIT binary patch literal 775 zcmV+i1Ni)jP)Px%!AV3xR9J=Wl{-vRQ5?p9#ikG|G>8R5dWk$*130JuLev<-LxX`}hXyQ=lnDX|LId}vwiP3kUZ_A)2W->Z-dp<6!N`BQkMsL~ z=R4oM=fGK=)mi<|rAziw5G>)ywJ1tS$DYQ=_7DV1IFo*VLtk?ef?x^T`#PidtzG?T z8HnXSPtSApb{(x<{Q%heIu-p=F_7+prK+#j61DerBCXB+y3brIBfx3~?{ z@bXD57F!eJuivL-08r>93m{#6eLNfyjld@jJSiE_;;+?R0uGh;4xeU^cmt^hkcqxN z9*zamF_4T0xbt|Nz3c6GpF#bLFk4$9Wo3fGL^c6rs;^grWxqiI8;cK<8aR!2iyn+q z12{WcsQO`MtfPhIsezOYoEAVf`U!i0>^GdO`0pwgN?DxW)@-0A9?yp)nZdC+W@p{p zZ*OL3!ii`1YsvGXIgmW)r7tG|a$=e}&*80(1^-<*os++6;jE%aeC^pf% z9t7ZNO9>%KX5HErUD*%g!^Ho;&mY{-tW>T|Qn@ynU_Q3Acz_N6E_oKC zV!S9yy4J3KT%()OXB+9u~o3*_EKZ3P?*m~KS#}kR;e}k6P0QJ zx=(}D9ypT*kZvWMqiweuFf2P+%CExhaVtJCt#|)2{|f=_=KJeW0@(ln002ovPDHLk FV1i?0VsZcg literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Mad Boar/MadBoar.png.import b/assets/characters/animals/Mad Boar/MadBoar.png.import new file mode 100644 index 0000000..032e018 --- /dev/null +++ b/assets/characters/animals/Mad Boar/MadBoar.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://lvaakhex8snn" +path="res://.godot/imported/MadBoar.png-b446fcf6ed52b7d39df2c522d9fe58ec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Mad Boar/MadBoar.png" +dest_files=["res://.godot/imported/MadBoar.png-b446fcf6ed52b7d39df2c522d9fe58ec.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Meowing Cat/MeowingCat.aseprite b/assets/characters/animals/Meowing Cat/MeowingCat.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..75771a4bf97133cfe444171cdc66cba6b9f7e63d GIT binary patch literal 1202 zcmdnQ!ocugDGP%D5GpV*GB7Zl0Ad6Hih%^d@(5Atu{wdK|N6)RwiW0U1~DLJR{&dy zWJwl~%>r_r0+6AkVB)G_lV)kyA7*{OQ0?Y|w0DPR{r+S&^JzfVJ_GY9dES}&LEb7x zHkS7GB?bvi(RmM(XaA2s`{eZPKmY&#pS^Z_OI>?rR#s$KP?=NL8Y82d;mOylclA&A z>dH5e2ic^+3?yOTKaj!B;FDOHTBKlj3&>$r07}U&x#w!|~+l(}N!;D!U6lWHgmu z!Z+6~O_{l5cVgDNvRw^tTQ4f`2>+k5obA|)Le9(4$JPJ*@8Eagwc<5mcR75BHxlH# zL=Nuc2{s+arq?ArY|`d!eCrs*%&_Q^v%@nqzg>g-4O=WGButn(_2+p928Gp*>CFsw z#uKhCSk3-ff1Tor|Mw?}Y_Jkw+t_)PfAar5^>6>L5&ooMa>n+)nE0Wy4#y3u51I(v zxnIKLvv@aSirg8Q5-AmSrpn67f|@5M0$nN`&a$s`UOw^W35L6QGiL3ctCvunXu@&$ zi2c)*jfPc!6kppuVh(KfIsAvsm^;?qCtr5HL4<9UMAI3@n~aM$zI4CVt;^?F*8IfL zWS7(v6ISlM!cV;&*+r=HP~BPb132K si$o41_7wJ>W6R_t^|x8D+~l3ae(}d8d7YTTrH&hHJ+c^%-->kr07xXC?f?J) literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Meowing Cat/MeowingCat.gif b/assets/characters/animals/Meowing Cat/MeowingCat.gif new file mode 100644 index 0000000000000000000000000000000000000000..21ff081dc8752eb02c28d561d13d3fbf196473d4 GIT binary patch literal 679 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ z)bR=D<>ejmQTvpqmUTk@Zl}w?B`Mz)7k=Kq_W#8-_ct9oa^&d$|NnuCS>gmvc&^@S z@tU{ktE{NS0u#37JEy2^(&-Rib9Ifx_9iv$u3a4LhXr42RGer%WSC(VV8H6MYJt@{ zqgRR>eKq)6nKTS+1-Q}=U9|qk#j($U(J+61WFw1Wpp~sFA5*;`HJlg)b>i8~9r6NQ z=QLPVf3bE~DxGdxlY3N)Z5@l_rB5~zhYl8;ap9U@w6K6@9`8J##syky`re$X@+cAR za$YFF6~fx$WHndgjUShZzzhWyw^b{SD_(G?N(jb6oR=+Iz#jjgW{Sj&2Tp#Bn{+(H zSAasWNbOZ6I0TtBp&{sp7J^P0RSF_!S{9ps5f!LuWO6!Jww{U8sVSvunhaANRRR#| z!q>8S?D8*Kf(&NGZkV77bm6YBRY^Cz1XNb9+YO3ixC=|5F4Tm^@ga4LIQF!5QfjFR J@&UQf8US^l1FZl6 literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Meowing Cat/MeowingCat.png b/assets/characters/animals/Meowing Cat/MeowingCat.png new file mode 100644 index 0000000000000000000000000000000000000000..a32ff0300cae4966dc5a1a201531648203bf5fef GIT binary patch literal 673 zcmV;S0$%-zP)Px%TS-JgR9J=WmN7^hVHC%IXERh1yNE-~U0S4@XrYiwQG$~s)KV%`37zfIf`XGv zx7MLcGKfQ`3XbK5rXXy!U_q z|9f|EA9T@07hRk|(^Sz(&a3XKbvxB>*Q2d}O;d#sLR{3`%3V}unX%b6=1KvrLduUIB`*Hc_8<>(z9r=H(zie^P2Fge4*!h$V2J3B`rF$cij z>nHS%juW0a;C5AE*L+oTxp1!5<;TyLe-bZZAb8|UMu~<@M^kw;q^@hYwmTD-D zznp1`*7mBQIDyF-yMgnQmtCNYzN~*AfLT%SpCt~;1%e{S!OunnsH$;}x7HB)G62JR zt!em%feckOj@Zd?>WF5gVZi(hsZ^@v05bZr{(a639dE61^wnTs$lz!n28Ims`*3Gz zg5cl?432QBPJsURP0AX$3Vj*A53tGaUVUdO+Rw0FYh$n#gKSb@29hxFAIM;5@JXypEmAPt4&<;ZfTWlh{xgAS5D;MCW2l%jb)q9*vjGoF zrN_^tbAMV_)jKkMJ;J_9&hk_HB3qv=E_^1_!uU3(3%9TPZU5`v$H`I?guS;^9mu<1 z9`@wmU$28zHP>D~5&XI_Y<*J2Tg&sGCsjV}NVc^*{^sGs@2ls=R%vKYdAQzUzBqqK zwfxz(Q?->#rX0FC^`+ylw6a%E_a8p|H}*$Be?|J=T$Q&!_h#+ctowEMyw$fDTUst$ zI|Ov(uaAu2PzHtVCLo4*gBiseydZB(a^!Px;Bl30(LQ%8wqv(P$5if)rAw_R?5~)d zW#u$^e&5W0%Vk%+sy6Yh^|aUF*Z(-Z@%xSGYdRe3<0^7vL&W sxcvp=_YC*ytZj}Ms&cj@~+Z@X4Ly|Ns97slfm&VFD*SSMUANHX+l2<9e;TrdPCAQ-|WZ z6Bm`3V+$H(n%NUKEIglg!&pF|r8ke$NNV2f#KcwF0xT9c4|*wx)ZGp~r=`KYC(O`t zr(nU=^omQt9gANTJFrm0X(3>zS!7Ecn#R~v5mhlq<;L0*ib`ymUF#Zo${(`kc?)j~ zZ+FXKU|LStI+lAP3KynbRTTs| zjFrML3q^HU!5ro5Yuh?xGzAW=59HyPx%2T4RhR9J=WmO)DbK^TT##Y=x6f_5N?q6C9F)uo93K$jHhSU;juV!xr=O3<+) z_t>!v%`O(WQeg$rDnxYYQkUrK5Z|z~jk>zhcIbn_VQ1cXzxP=O7Wl9K@?An0B!od> z_Yq17VGviZ5P|{>P0!&QcV#)cJt!!^U(qum@8Iz6s#glW8wm!kFZS1_r-(s=!y-i(izP*?1K6{_ z`)>GwVCGCBA~JKPY#=DWc6yyo7rtlzPGYwyAH>7`7i*_&2e6agt7-M-d-ab9VbJ5F zgXaA?hDT=s0HxBIyjLSbQRVsd%@ypb4a>^IaT*aJ3@RTV$UW|J-1FOuQxq=iSePD{ zXD=0>B{xk@#4$MVfw7r+xt>m^lm>zV z?4&fe zY<*0(+53hpD^JN}O0MgQ&2{jA)&RrSM}cpO>2wMlax;@bH(y#hJwJDxM#Qr60H9p0 bzoP#F+NvKpXbLgo00000NkvXXu0mjfslpA@ literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Pasturing Sheep/PasturingSheep.png.import b/assets/characters/animals/Pasturing Sheep/PasturingSheep.png.import new file mode 100644 index 0000000..7856e23 --- /dev/null +++ b/assets/characters/animals/Pasturing Sheep/PasturingSheep.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvg3idufs050w" +path="res://.godot/imported/PasturingSheep.png-aed02be6fa372b65f45c92ee8c6681b5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Pasturing Sheep/PasturingSheep.png" +dest_files=["res://.godot/imported/PasturingSheep.png-aed02be6fa372b65f45c92ee8c6681b5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/SleepDog.png b/assets/characters/animals/SleepDog.png new file mode 100644 index 0000000000000000000000000000000000000000..2f269d3f2c187fde5f1281644257989bafcc311c GIT binary patch literal 1238 zcmbW1T~HGT5XX-X4aI_@ok0;nQABWR7_kZiCIx~KnG&TCs4yG|6)FN6Ao7(Q0@Y|s zLluD*F=|>`j3rUbKnUSvgi=g33d9Hzs3MR6Nm?)o3EW+eX=nQ0ec0XEhyDNd|FD;i zMpK;}-5db`aEd%ki2(pxyahgXSdHh?umZ-5OPSjxY~gj?t9x0S zG^wRf^fa~KZmZm-x@Uv|MQT5-hZoO8)~3mo+EELOlp<1?EG!~zdOFzGWrgB@he#wIvIFM# zdvN=Dm$I_5h8wRk41}$DlVD}gV;N6bLNo#Z1DmWXAp@J-u-(SMn0^^AKgk9-wapBc zOU!nF$o9tBBf8&F?;3Rg-#ANz?t)MpS^go;G~;bvx@|T7sJhl*GH zzOQyAS5x%FssSMgqeByA*W|4ES(OmP{MdB5qUDE8A!`yKOB!PRw90#x5VzV-S${3A zD6U3***^?sBfU%bUiTzB8hdcyV(@VoL)C>C4}k`m*}z}^E3&|GjM+^L8-BW;PCmxsg&`LENco%)@eX} zdiKbBM_~&&SIS<%nwA8&;VTs{PKkdFR?C{RX}p764(EAhKA%-PLFFHtJ8ix_s_#kh z=WsYVZHWz+Zo(rdrPFwKsIf2s6HCLV^bw-qC?jin0XWDkJ6aE`9++Tff^dipdUluu0L$C`Lo5Y_RW=QwD_GtFGEO3 zk;!$OPgbC>rZF!hN@^<--wQ&g)WnGe1xfZoC^v2fS|DOH*SScX!JjjSp2TGq>g&oWJnnLK!TdG<>orZbbhymp#>9)Cki?ooj( z7nec8$r}U$A`#r8a(O)s@j_zboV;t9PtJyBHr!+{ki+n$Qmbo+?HTh}Bd2h)aTGE5 zsG();MciZ`LKBC$n|^R|F`@>Xk6BzW!1Q7+73x4g6Oe2U;V4FGJ=WF?y-oylOrHyn z2K&1?i-wq<;bD0osR)-BCSI3~A9JsquiQhIRCI4$0ehZ`Jysrbv<|*gy|z#I8b3=o zzD(RFfo^R{nnwGUJoj`qwSW5ormbKj@vJH~BDe`+drb>#@8oS?n_d=(tvrj!h-gYn HSW5ZdzM6d} literal 0 HcmV?d00001 diff --git a/assets/characters/animals/SleepDog.png.import b/assets/characters/animals/SleepDog.png.import new file mode 100644 index 0000000..355b1ad --- /dev/null +++ b/assets/characters/animals/SleepDog.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7hgiys1h18ov" +path="res://.godot/imported/SleepDog.png-5a732d01d494bef231adf10678a32db9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/SleepDog.png" +dest_files=["res://.godot/imported/SleepDog.png-5a732d01d494bef231adf10678a32db9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Slow Turtle/SlowTurtle.aseprite b/assets/characters/animals/Slow Turtle/SlowTurtle.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..ff7c48070f900b87ee2e977459e72ca089c23afb GIT binary patch literal 1087 zcmcC#VPJT$l!ZY62o)F@85kH&05Jjp#Xy2!d4wqSSlK|+e|=;D+X{3FgBTFAD}b#; zvLp-0W&ycQ0mx8NFmcteNwYNU53{~ssCIKf+PlNEet$BX`7|JFpMm+5Jnu~XAa4~T z8%ulp5`%=M=)8x?v;W7ReRBHtpa1{=&tAK|rLH|QD=RWAsLZKrjgisK@Z{^&yZWbl zb>$n#gKSb@29hxFAIM;5@JXypEmAPt1LUwOfTY+N{xgAS5D;MCWT=>voZ!H~>-qQp ziy4f(4<<2xoc<^NTm9j886r}VvK@baC2C8&zb(Kpz4@i@T#A zDnh@bt@H2|w)JQJ&kuUlI`x|;2g_@3|Ff;hGwLS9P1qBdDin50^~}5fFWJ`rudRJn z(DUY7emD2Qtb)WD_ilug&Pil9VqU^0?RKqOPTt_}i)V)oJa}&Iz44{#5bN}xEoT@Q zbYDM~KLT{=uaAu2pauo-79fWBg#*Pe9D~I#x^@o#oXn(Uo1aX$+rz`)QgQt(&?_i@ zK*R?diXXVZeo)}e@ObsVJyB?D)7O1nH^GZZ46?@0ex0F$S-MW%DZsvdcrB}GM-%b|bxF$Y( zRo}xrv7Ht7mWfey3DB?XJPBZfT>n0lK(NqFkaIVX`^RinjoJ*Ux- sgAEuL6*?6LO*S0~XZ4CNzHG1gr>3}j*Nq20T;NDxrE@}}ZX{R(06cr|>;M1& literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Slow Turtle/SlowTurtle.png b/assets/characters/animals/Slow Turtle/SlowTurtle.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4643ae0c7faaab3cdd70d0e2d05e384c6fd60f GIT binary patch literal 634 zcmV-=0)_pFP)Px%G)Y83R9J=WmCtJvQ5?iSu|ZR4q>+SX13h>MZYy+ADxL%>f>5R8j2F_mK3q@?h*jYi5Sv6+{xae>ve=5=Pu}c&o`l){3(Fd0{7Ev-mBN2Q@PyF!Ka^rP8!wM^S4(I z9}Ujp49IL&@$g~*P9p&J3t+XtM)b>x7}L^uhyYSA@W!&gU6vFvyci%FoF(7mMFe9M z2K@#;{_re2^Xqj3SS_$o{l_(xV|^+BQyIHxzR1<(rIoJo`K@#6aMg~FiU#5?or+z1G!Bfa_>(eSSV8`TdDWJ#oo#KI24 z@K*dg+)nTK%*X&QRx)%J^6c$yn^+q@kt#A5f~B{6dH}c6JMQ&>8n5tm>j1WIyC&ZH zw8mY32k%SYaeFp!dp39(%8*u*wr2F}hqjpu8PByH=e72Vfkc89g{m`K$fO#N#JNc@|0i-XN?9C^9ROyH@Le0*k|S U3Ta%;zW@LL07*qoM6N<$f=fm$dH?_b literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Slow Turtle/SlowTurtle.png.import b/assets/characters/animals/Slow Turtle/SlowTurtle.png.import new file mode 100644 index 0000000..2119a39 --- /dev/null +++ b/assets/characters/animals/Slow Turtle/SlowTurtle.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddpod17b0clk4" +path="res://.godot/imported/SlowTurtle.png-23aae53fe1e7eaed37e13b3e52381e08.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Slow Turtle/SlowTurtle.png" +dest_files=["res://.godot/imported/SlowTurtle.png-23aae53fe1e7eaed37e13b3e52381e08.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Snow Fox/SnowFox.aseprite b/assets/characters/animals/Snow Fox/SnowFox.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..358e6e1e95d2ece45a2af73ff34fca37412bfea4 GIT binary patch literal 1082 zcmcCwVPJT$l!ZY62o)F@85kH&05Jjp#Xy2!d4wqSSXn^Re|=;D+X{3FgBTFAD}b#; zvLp-0W&ycQ0mx8NFmcteNwYNU53{~ssCIKf+PlNEet$BX`7|JFpMm+5Jnu~XAa4~T z8%ulp5`%=M=)8x?v;W7ReRBHtpa1{=&tAK|rLH|QD=RWAsLZKrjgisK@Z{^&yZWbl zb>$n#gKSb@29hxFAIM;5@JXypEmAPt4dk#YfTWli{xgAS5D;MCWvG}lb<%0xW&;5i zO_eE4K@59$C~CB8Y@cIUa7Ncv!q&Ul?Hb!*uf?f*>wYutT9;e<|3rFWcdY&Xp6Md- zPp3bfdbi{Khx>11TVDR;T7NI2qObMvYn>|nt;;I4eizBh$-njgb3UZ`UizA{)vo8K zTvB{~^jD3ptBvub!`1q8f9nXY-~C3z-*4mf?r-Ji-oKD8hen^9<^Pzkez?Q8 z{B2AYC|-YkWCVvaD13JSF~ln@C|=gcvHnx~Gfbh%-PrYk z{)ZagsqNGJO)peWy1(!RBai}$^E|7RxlbwTvj?-Td;{$)s6!E}Yn;FwL#m-Z;&c=euEFf7#Ugnb)6YBsu(B zUpLSGtaIhE@3MWhzsod!oVzEocwhE?RiE?W*E?4}Y!u6HxA_uxR$Kh{?~7ITO#E;A zwmYBS-{q~TzM@+9vhix!4OLIxO}~4t)J}PsT=h)$?S0>u%2nI1k$uGyBMqqfhP}zj5yM|Ns9%YA^sxsK5!&)q5?nCDYCy6zoxoP{{Zg+nA{E zE{fGvQNn3&pG~1in^R}AmQqcVq5?y)C3o|ScFr}C>n|ra3djmH99$FbAi#1W@KB%6 zJC;+qr*1Bbx>YongBmUihPdo??cpzx1uRb_#5|%J<|ZoWd7pC(n;&ddd=~L inF7b2#`jmh{bk#m<~8H^q)&D8!9m4JVIPx%MM*?KR9J=WR6S_hKp1^CnL2kcR2NJGB?)yxGPQ$nJ9H=>>LnBn2?f)&(528H znjvmGcFQ6MOfm?&5GPZI4()KNJ;f+4jxmuDmJNn@_NePp9hXFsW$a>F{NNDZ-M#nj zeVh)MVTKuofe?uW)&DgJkyzv8f)OI|;nt&Q1l4~VWBC&zF-mnNf>J$n1E$@;VgAuD zBJo%hU9$oJ=$aM8W1(mq{XrA$w#`R>&C6mRc4{rbfit;p+M)~^}0KlzztPvrFv)$HK#I4bw;Vqag4HrmHB4-60>xsD3yQGqPGo+b zu=wp&Bv$Gp^TYa!fy4mg`bYl=plX{o literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Snow Fox/SnowFox.png.import b/assets/characters/animals/Snow Fox/SnowFox.png.import new file mode 100644 index 0000000..f78e0cb --- /dev/null +++ b/assets/characters/animals/Snow Fox/SnowFox.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cig2j8vh061c2" +path="res://.godot/imported/SnowFox.png-5da2eb6b56f0d3049f1451c7aed0b878.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Snow Fox/SnowFox.png" +dest_files=["res://.godot/imported/SnowFox.png-5da2eb6b56f0d3049f1451c7aed0b878.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.aseprite b/assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..f747378f89a64179545e09eb882cf1e2c3c61d4f GIT binary patch literal 1087 zcmcC#VPJT$l!ZY62o)F@85kH&05Jjp#Xy2!d4wqSSeZc6e|=;D+X{3FgBTFAD}b#; zvLp-0W&ycQ0mx8NFmcteNwYNU53{~ssCIKf+PlNEet$BX`7|JFpMm+5Jnu~XAa4~T z8%ulp5`%=M=)8x?v;W7ReRBHtpa1{=&tAK|rLH|QD=RWAsLZKrjgisK@Z{^&yZWbl zb>$n#gKSb@29hxFAIM;5@JXypEmAPt1>~?QfTWli{xgAS5D;MCWvG~woY26)>-qQp zjf^A)4_%Ig#hf!)gLjwyOj%>HD{{vfhL!$YeE;r8hIUNdSNcsM%-A7G!E%CCj){+c z2mdDK>5>YTGo)fnPUw^vPx$)iu)+QXyO~{-S34emQKg^GayWBB+>E*u+ilDceZ z)2p(Xkj3W1$1tJE^wdc-U+jeYg5>yku||vK^+8wROZ-8TMPzuw`g_r%#jgCo8}%pb z6Cz)vDZD<~o>=Et&aU$&A?t$Su6w5?4;Dx*5nm=B*}rzLxy<6(tcMjWQ_K&1$y|~3 zcf0ZS*4eyChtDu=oOssxTK_t6%bE={yXE+o%wn9(%n&E&r*j<5BirE~AtO5WmwtQj z|J*94H6|R%#>^^glbBz!uRQABY_LnxV7Ft|hlfiZBpA4vGaqpaYwm8_n3(6t7hPh# zA#uhmgg4fLyaCkR;#hPdui@q8fUCdq)AP8^rH{1DWKB|@-M&UXR=?;+g0XnC&4eUS Ke5ALUUjzWClU&{a literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.gif b/assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.gif new file mode 100644 index 0000000000000000000000000000000000000000..f43a16f1c76d7145791ee3fdf6ba8a39252c8cec GIT binary patch literal 651 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNNY&y zYp813ncLdhdnW}4cUBc%&IsPReDbZc2mk;74^oK)SRw>Yc&^@Sah<{9e4|j`Tu~*i zu1V5C68Up#f+k3m$KBz$tH`#%AmYW3na-F*ig1sSXXfPx%ElET{R9J=Wl)q~laTvxw7cw|G*eF=UL5x~Zu5+f~7)m?j@&_Er)WM-$LjH$j zNF56qD^$r3QfJBFR6^|u(I^&<5+P|FoZP-0%ANN!Sk5A)zRSb$-t#`s`+V0DXEhUKfraWDVxK;|^F*hac`vYN{guwJB|Urk9DrR#p{)&U zsH#PF6@`n-W6wdkxGZk&zEH1}@j|2TXTs2LYXj<)vI|wUNWD__^B-7$B^Q^)#pN+= zZNUCP3BZQkuFn2JiPPE{hevy^K|upFDql!Zt2O{U(T{J{?_FQf)&@3I)gry?D_{Of zXV{Wnz9^9|q&Tgexo}(AG@onLhAV`i0nUpLc=|W6cl*_oFXiI0I6T^;tquGR2Y_x@ zC!0;0r}g&Ddpg6GWSB5!3>jq;=cydgS+z*EiF54D&MwsKLiq zX?D&L^WZy!@GzPEHUT8)?Vl?lAh_Ka)$n#gKSb@29hxFAIM;5@JXypEmAOC1LUwOfTWlh{xgAS5D;MCW2l(3G{}*!L4oJ7 z;-m^iJC}Qh+dpvHG2dUha@mr|4#AvDIXT-7uPo-@GvDt5FN4*h>&)k;7tN_WZC-5~ zGC$~-Y5kMG(N*t0b<2Ncc)xywomI2o=9i2L>TCIn*Cy)O{*cuvJ$|C}`m4qpO4Yyj zT*>&F(33s+R{EBzD^46+*&m&m_3Dk^#o)EyUi|)6-&+-<$)X{00O+z`9~r?x3kuK; zKn!s^Gm6`JL2jRTk+Z>o$Hls%$^NM08=F`U_X3`|t3OT9RutJNWwCD7ou$4`JCbGE znGUr(EPwHJ!9R<0oAR|L;O1z&ZN2yDiF4n*PYM>?b?bDO zt+#m~cH(8;w7u+inrbW_FWnwxo4~HCvERQqb^UU^V-epueq6J^+OhXu*4vt=*`;;r zwsL0WjGZT>Rvboi|7JYypF8m)?_mWV7s(|aKOJS4%xrJHBxuAoxBEqHOwrZ=(X5vx zD&J&p_`U3!BQLweo@s8}sp?_g=Gl`tVk1?bn-fG5T|D-u>|K|4=r+`PYx9 z&V9R|Iu?jM@^L@2_fvzr!t(8w?)()jKMRg|@7*Q0p;>Us{prt72KvWpKF#j0c|AYt fNZ|XZ`Ri+9#mkKzKitXeFE9P~0GbzuS`+{PObmDS literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Stinky Skunk/StinkySkunk.gif b/assets/characters/animals/Stinky Skunk/StinkySkunk.gif new file mode 100644 index 0000000000000000000000000000000000000000..f34db7a04e240fd154ce67c85c3edc9619613c7f GIT binary patch literal 641 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ zsH&>ExH#wK<*iXrpFL;xkt0X{|NjqCg8^8A1x|Rb-fPAZ!|Wu@&eERPpp+?~xO`jQ z&P)SWr8n$tpEG3UH-A{n_?E+dvXQ671~-qUl3iK?T*faGPG1#byV=MfBha&7%Co`X zS?7E+vxvWZu2giF#dU!%JRFxY4<-sIW%4D5Ny%Q%V|Qv$OlNiLl{p}zV5ahg=fo4n zBRcaq0yHKS>=5N_ULzKzAd(cpsI4H7yfNXUhJnC>XvU_fLuLI+)C(_*+i-U!g-J2H d&yqCPx$yGcYrR9J=WmOpO7FcikWpbYd5ak5lGqIY0tq)Wvm$PLOhDkYr*9f-t&*x>?1 z1Ux3r9m@7PfFmcADt~Cb^hwBZoZt77Pkzq;|M4FH0LCn0%p%?Ip(PlzNJdi=?qOgX zjm9iv7Hu|L@_dgx-)m&Ty$o!s(S|kENwkY#+YCZvMxEqAFo*x{BicnsQvus%^j8{f z^LNxq7%pmkd^zHH-`K#zF~)p0Ll`btE=MW+@?!ilqU(YXl01?q- zG9k5|WKF4p@>(71@NM(on+IbSdA^s65D{%Q+x%A+lGp0Js{Abjb@C=~ZhkTj$GBjS zoXa|OT^B(xhwHleGgbNV_=RMXlA~_k6e2UiaFK5jRjeG*F2Z2B#s`4Ga*Yt@8mr2` zPN!D}>gKPG!8qRE6aav?M+^PS2+j*@Rrs=jy7__ualA*8q;MP?{PJ<#?nA!b?>_-J zAD6&&hpoc@WS|bd@IOF>g~$vcGUIgmgyYyqk`w?6Yh`z<@X|o}jBdUI*T)xwi-_=DYGh000000NkvXXu0mjf D5##B& literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Stinky Skunk/StinkySkunk.png.import b/assets/characters/animals/Stinky Skunk/StinkySkunk.png.import new file mode 100644 index 0000000..0e3d8b5 --- /dev/null +++ b/assets/characters/animals/Stinky Skunk/StinkySkunk.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx323aeidjler" +path="res://.godot/imported/StinkySkunk.png-4c08d373fe1dc8fbb5695a9ace20973e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Stinky Skunk/StinkySkunk.png" +dest_files=["res://.godot/imported/StinkySkunk.png-4c08d373fe1dc8fbb5695a9ace20973e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Timber Wolf/TimberWolf.aseprite b/assets/characters/animals/Timber Wolf/TimberWolf.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..f00ee35758588a72b0f7cdde0aadd36e378b9423 GIT binary patch literal 1171 zcmbQt!ocugDGP%D5GpV*GB7Zl0Ad6Hih%^d@(5Atu{waJ|N6)RwiW0U1~DLJR{&dy zWJwl~%>r_r0+6AkVB)G_lV)kyA7*{OQ0?Y|w0DPR{r+S&^JzfVJ_GY9dES}&LEb7x zHkS7GB?bvi(RmM(XaA2s`{eZPKmY&#pS^Z_OI>?rR#s$KP?=NL8Y82d;mOylclA&A z>dH5e2ic^+3?yOTKaj!B;FDOHTBKlj6Ubpz07)@2{AU8uARxfN&rmTZIYEK%#Hmw% zjvrTF^8MOW+y9OxJcoZAd1YUj@$vsz@3h9RjTr*-MgAJto-i@|m6*r+GIH?(zH97@ zHs0)iW1mvrbR{p=PV#7-fPAFAkFFKl%GQyC3~x`-Cu>uoGgc&3A;~R?O)d>V$5KrP!Mw!=#5_=8Nu-Y3jL!%4Dl!n zibr{HdbH(B<}8+Tgr*f|b=S# zZAM(m{=;8x-KuWBs@$&Z!E>|rMI!&@{x#yZaS3V3!OTg`cUV42gFKgXWkM1g!;G~q gdmf^B>LT1zOemh>!|AC(8G8^9PM44VH!Ncf088_>i2wiq literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Timber Wolf/TimberWolf.gif b/assets/characters/animals/Timber Wolf/TimberWolf.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ae2739bb4c815f8864017b7051c10b77f011cac GIT binary patch literal 677 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ z*qPhf+Iy#`=B`mt?{90}x_t8HC9_T*T72uu9*{~Tz>*|z!gKZ7#An*gTn~;jIyPx| zY>IV!wQj~F5s!sg2{UA#?W^oskh5GsgHMuQ|KOds0v?kN9WaSlYZGVW=pn(8utD+n zXFiUd2fsJGQ#rS~A(5e+`<86;gMZc^OsncEn^YPz1gYW72#_=PTD(`*RWa!VYmkcEMMrlZp5XRLj_DavZCs5?k{$v=Y)xU=Cbu>)Gv#c! zQhRt^Lt?`;7Cxqr#}zu3zbrDpE5}F;$HjpiccX1*aeyO773U%a&vMp`)nV~L3a+PG zlZvKPeb;nwbpnOq?DKgRcVq=T4jeZChM`}y0wfF%z66Hh4qzBg%Q?Ra6o%?7x!WBZ V`rm&Js;&ixA1j5?OuO*21^{BXPx%bxA})R9J=WmN94(Q5eVnsRt#Cq$PxwfB2Ah=0(U(U!jT*<(LvAYJ>Dhhpb*@f{=()$ZNQD`z|{)%?;z!C)0aIw6LT15mNm)IcgxJ`q9z*6A8&WNDV0DHSA`# zCpO?L{jmTj{gCR1kw^moj6@nC)jyGVA+LeILNpicA!C4-zA{)ixVezm(CfBfnKno^ zg^u0_$);eLwvaFY=GZh>hz{H9wqPXEm`y*1kw}ANQ|F?u@Wq9^Hq?Y4bZ&kT$>a;{ zy?QSpkA)v!PA%E|A0mT zr10kE7Xf%XC~Ls9`aZhxL+%UWt11AXRMdwCi7j13FdSeo*4DQefN=nMh|~$ov>8NE z11!_Vub;D+x$whffQ-IENmZL|#8*|6iaM&z_Q)mx*dT-Cy#P{pqZ|}9fY;^^DXXs- z#;I>@eam_KI)hSC$GcA@EXShwc(BhJT#8=Dm8Avb4r{n`Gltw@%_T4nV71xCy^R~F zmn+!Wx$n9{ghU(}17!7GuK<7efe#D^h~v1{z;UgCbn5= zzJEIlywLhMfKQ&i0RR`kN%oI2Kvtgt5P8?V!ZK}XfHLdT>bst?N1L12e}90h*H(ro h^6LPGYW~*!zX7c*vwXLBRQvz{002ovPDHLkV1l7nLpuNf literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Timber Wolf/TimberWolf.png.import b/assets/characters/animals/Timber Wolf/TimberWolf.png.import new file mode 100644 index 0000000..d33b962 --- /dev/null +++ b/assets/characters/animals/Timber Wolf/TimberWolf.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctg64vc7kxwcq" +path="res://.godot/imported/TimberWolf.png-6517eed8f8f91d741f29eab507d7592a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/characters/animals/Timber Wolf/TimberWolf.png" +dest_files=["res://.godot/imported/TimberWolf.png-6517eed8f8f91d741f29eab507d7592a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/assets/characters/animals/Tiny Chick/TinyChick.aseprite b/assets/characters/animals/Tiny Chick/TinyChick.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..7010441275887320eb652a83c610bdd74b7e4cb3 GIT binary patch literal 1055 zcmb1VVPJT$l!ZY62o)F@85kH&05JmiFff7y!SV=E>ah+3P5uw!~@Qdz89f{#&vvznuZr2g;H(%;r8Ck(^; z%wznO15HI;zIz3K(s$b<=Je;N<&SFV9}d!c)j4Z~wEsWo{&gVgb-%~O6362~mK!xq z|L*Po(2;#PBY2&wSC64lh_dpE2#;n5pL9cSdu8P-Q_JTUM74wmBwO28UtbxtsZpdg zLnJ*+$=ydl-{kfG?#+*refEawx0`ZD8cyGz*Ev5eu{FvkA+Y%VC#~HV3}er_Yt313 z<9hABUupg8BVrp}&0@dp`ge8ymkkB4Yiu6gKEHA0lHTg(rug_gd5~`vn34SdAIN5B z@JXypEmAO?0OYVLFfcGNurmB-f~n$W;AW_plbmpXWz#03{}T*&ArpGVizpx0kkBS)-l_M!_XUNN?>KX7I~&NJ6mk7PjOjienEUurQd9paC(E3AkoCW258v_s?>9WS!W_&UG9u@)71KPms{zF?U^f@hbzvt&`jK5AwhR033*OV*mgE literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Tiny Chick/TinyChick.gif b/assets/characters/animals/Tiny Chick/TinyChick.gif new file mode 100644 index 0000000000000000000000000000000000000000..902efc95b29c2402f9e4ca62c270b0d8ca5f30b8 GIT binary patch literal 549 zcmZ?wbh9u|6krfwC}&_${Lk&@8WQa67~pE8XTZ$J02KPk!YKlzb$}SCNPwXkNXyE~ zWN1ky=hdu>U|1M#dbX0`PZq}!AGQB?SpFZ-y4&gU=i_yddN5$I6FA|ydauRnv&BCS ziW#H`B_$iJSUy$jRFTZvFNX?pjXir_H{51QV_-{kZf#89k(zgUnM#9z!jgl|j^3+X zsNw``m=j8|IYDz(YHd+5RGi)n05hUq~2r!Y7*G(6*DeX~}G5##_? L3gdvH0I&uCIYGLZ literal 0 HcmV?d00001 diff --git a/assets/characters/animals/Tiny Chick/TinyChick.png b/assets/characters/animals/Tiny Chick/TinyChick.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ac7e2415be641f0f67921b8ad2395e65497cdb GIT binary patch literal 400 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%0Du5VL_t&$)J?B2 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�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

SbIy$x#aOK=$Aa~f4K~h9 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 slZ&|Lo)E{w{{Q@7aL&kq`cS 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 + + + + + $GODOT_PROJECT_NAME + + $GODOT_HEAD_INCLUDE + + + Your browser does not support the canvas tag. + + + +

+ + + + + diff --git a/icon.svg b/icon.svg deleted file mode 100644 index c6bbb7d..0000000 --- a/icon.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/project.godot b/project.godot index 581b109..80cacf3 100644 --- a/project.godot +++ b/project.godot @@ -17,7 +17,8 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true config/name="Clicker" run/main_scene="uid://bqtexca6cdr54" config/features=PackedStringArray("4.6", "Forward Plus") -config/icon="res://icon.svg" +boot_splash/bg_color=Color(0.5921569, 0.44313726, 0.2901961, 1) +boot_splash/image="uid://bndq3avrtfck0" [autoload] @@ -28,6 +29,7 @@ DebugMenu="*uid://cggqb75a8w8r" Inventory="*res://scripts/inventory.gd" Unlocks="*res://scripts/unlocks.gd" Audio="*res://scripts/audio.gd" +AnimalFriendsManager="*res://scripts/animal_friends_manager.gd" [display] diff --git a/resources/UnlockData.tres b/resources/UnlockData.tres index 87baba5..b0ffd5a 100644 --- a/resources/UnlockData.tres +++ b/resources/UnlockData.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" script_class="UnlockDataCollection" load_steps=12 format=3 uid="uid://b4c01yrmp1wf2"] +[gd_resource type="Resource" script_class="UnlockDataCollection" format=3 uid="uid://b4c01yrmp1wf2"] [ext_resource type="Script" uid="uid://bg1ymgbdcwc0j" path="res://resources/UnlockDataCollection.gd" id="1_gdehu"] [ext_resource type="Script" uid="uid://biqqffne7dd8r" path="res://resources/UnlockDataResource.gd" id="2_1js7i"] @@ -6,13 +6,13 @@ [sub_resource type="Resource" id="Resource_gdehu"] script = ExtResource("2_1js7i") unlock_id = 1 -unlock_name = "Marketing" +unlock_name = "Market Charm" unlock_description = "Affects the amount people are willing to pay for your whittling" base_cost = 100 is_scaling = true max_rank = 8 -cost_ladder = [100, 350, 1000, 3000, 9000, 28000, 80000, 220000] -effect_ladder = [1.08, 1.18, 1.3, 1.45, 1.65, 1.9, 2.3, 3.0] +cost_ladder = Array[int]([100, 350, 1000, 3000, 9000, 28000, 80000, 220000]) +effect_ladder = Array[float]([1.08, 1.18, 1.3, 1.45, 1.65, 1.9, 2.3, 3.0]) base_modifiers = { "sale_price_modifier": 1.08 } @@ -21,13 +21,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_1js7i"] script = ExtResource("2_1js7i") unlock_id = 2 -unlock_name = "Wood" +unlock_name = "Sharper Blades" unlock_description = "Increases the amount of wood produced per click" base_cost = 30 is_scaling = true max_rank = 5 -cost_ladder = [30, 100, 300, 900, 2500] -effect_ladder = [2.0, 3.0, 5.0, 7.0, 10.0] +cost_ladder = Array[int]([30, 100, 300, 900, 2500]) +effect_ladder = Array[float]([2.0, 3.0, 5.0, 7.0, 10.0]) base_modifiers = { "wood_per_click_modifier": 2.0 } @@ -36,13 +36,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_xbpe0"] script = ExtResource("2_1js7i") unlock_id = 3 -unlock_name = "Demand" -unlock_description = "How many whittled products can be purchased per tick" +unlock_name = "Trade Winds" +unlock_description = "How many whittled products can be sold per tick" base_cost = 120 is_scaling = true max_rank = 7 -cost_ladder = [120, 400, 1200, 4000, 12000, 38000, 110000] -effect_ladder = [2.0, 3.0, 5.0, 7.0, 10.0, 14.0, 18.0] +cost_ladder = Array[int]([120, 400, 1200, 4000, 12000, 38000, 110000]) +effect_ladder = Array[float]([2.0, 3.0, 5.0, 7.0, 10.0, 14.0, 18.0]) base_modifiers = { "purchase_rate_modifier": 2.0 } @@ -51,13 +51,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_nbe0w"] script = ExtResource("2_1js7i") unlock_id = 4 -unlock_name = "Efficiency" +unlock_name = "Whittler's Focus" unlock_description = "How many things you can produce per whittle" base_cost = 60 is_scaling = true max_rank = 6 -cost_ladder = [60, 400, 1800, 8000, 35000, 140000] -effect_ladder = [2.0, 3.0, 4.0, 5.0, 6.0, 8.0] +cost_ladder = Array[int]([60, 400, 1800, 8000, 35000, 140000]) +effect_ladder = Array[float]([2.0, 3.0, 4.0, 5.0, 6.0, 8.0]) base_modifiers = { "efficiency_modifier": 2.0 } @@ -66,7 +66,7 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_ppuju"] script = ExtResource("2_1js7i") unlock_id = 5 -unlock_name = "Wholesale" +unlock_name = "Guild Contract" unlock_description = "Sell multiples of 100 at 20% less income" base_cost = 35000 base_modifiers = { @@ -77,13 +77,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_chx6j"] script = ExtResource("2_1js7i") unlock_id = 6 -unlock_name = "Multicraft" -unlock_description = "Just craft more stuff" +unlock_name = "Forest Friends" +unlock_description = "Your furry friends start crafting for some reason..." base_cost = 6000 is_scaling = true max_rank = 5 -cost_ladder = [6000, 20000, 55000, 140000, 320000] -effect_ladder = [1.0, 2.0, 3.0, 4.0, 5.0] +cost_ladder = Array[int]([6000, 20000, 55000, 140000, 320000]) +effect_ladder = Array[float]([1.0, 2.0, 3.0, 4.0, 5.0]) base_modifiers = { "multicraft_increase_modifier": 1.0 } @@ -92,13 +92,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_f82ch"] script = ExtResource("2_1js7i") unlock_id = 7 -unlock_name = "Autowood" -unlock_description = "Automatically gather a percent of a clicks wood per tick" +unlock_name = "Beaver Brigade" +unlock_description = "Automatically gain wood" base_cost = 150 is_scaling = true max_rank = 5 -cost_ladder = [150, 600, 2000, 6500, 20000] -effect_ladder = [0.1, 0.2, 0.35, 0.55, 0.8] +cost_ladder = Array[int]([150, 600, 2000, 6500, 20000]) +effect_ladder = Array[float]([0.1, 0.2, 0.35, 0.55, 0.8]) base_modifiers = { "autowood_modifier": 0.1 } @@ -107,13 +107,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_premium"] script = ExtResource("2_1js7i") unlock_id = 8 -unlock_name = "Premium Crafts" +unlock_name = "Artisan's Touch" unlock_description = "Your reputation for quality allows higher prices" base_cost = 8000 is_scaling = true max_rank = 5 -cost_ladder = [8000, 25000, 70000, 160000, 350000] -effect_ladder = [1.08, 1.18, 1.3, 1.45, 1.65] +cost_ladder = Array[int]([8000, 25000, 70000, 160000, 350000]) +effect_ladder = Array[float]([1.15, 1.3, 1.45, 1.65, 1.8]) base_modifiers = { "premium_price_modifier": 1.08 } @@ -122,13 +122,13 @@ metadata/_custom_type_script = "uid://biqqffne7dd8r" [sub_resource type="Resource" id="Resource_reputation"] script = ExtResource("2_1js7i") unlock_id = 9 -unlock_name = "Reputation" +unlock_name = "Legendary Crafter" unlock_description = "Loyal customers provide steady passive income" base_cost = 4000 is_scaling = true max_rank = 5 -cost_ladder = [4000, 12000, 35000, 90000, 200000] -effect_ladder = [4.0, 10.0, 22.0, 42.0, 75.0] +cost_ladder = Array[int]([4000, 12000, 35000, 90000, 200000]) +effect_ladder = Array[float]([4.0, 10.0, 22.0, 42.0, 75.0]) base_modifiers = { "reputation_income": 4.0 } diff --git a/scenes/animal.tscn b/scenes/animal.tscn new file mode 100644 index 0000000..fe9ccc7 --- /dev/null +++ b/scenes/animal.tscn @@ -0,0 +1,473 @@ +[gd_scene format=3 uid="uid://bfkpy8wqqktca"] + +[ext_resource type="Script" uid="uid://uhlsvqaaemre" path="res://scenes/scripts/animal.gd" id="1_hb82n"] +[ext_resource type="Texture2D" uid="uid://cig2j8vh061c2" path="res://assets/characters/animals/Snow Fox/SnowFox.png" id="1_ufccv"] +[ext_resource type="Texture2D" uid="uid://ckvge3k08px5c" path="res://assets/tiles/sun.png" id="2_35nom"] +[ext_resource type="Texture2D" uid="uid://1uh6meq2g7pw" path="res://assets/characters/animals/Spikey Porcupine/SpikeyPorcupine.png" id="2_236rq"] +[ext_resource type="Texture2D" uid="uid://ctg64vc7kxwcq" path="res://assets/characters/animals/Timber Wolf/TimberWolf.png" id="3_3c5tq"] +[ext_resource type="Texture2D" uid="uid://dccs841gqvsnr" path="res://assets/characters/animals/Meowing Cat/MeowingCat.png" id="4_ieass"] +[ext_resource type="Texture2D" uid="uid://drghlunsulio" path="res://assets/characters/animals/Honking Goose/HonkingGoose.png" id="5_ieass"] +[ext_resource type="Texture2D" uid="uid://rvdwc66bww3" path="res://assets/characters/animals/Croaking Toad/CroakingToad.png" id="6_d7epe"] +[ext_resource type="Texture2D" uid="uid://elhjscadwqu0" path="res://assets/characters/animals/Tiny Chick/TinyChick.png" id="7_brjsm"] +[ext_resource type="Texture2D" uid="uid://b7hgiys1h18ov" path="res://assets/characters/animals/SleepDog.png" id="8_ybi86"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_35nom"] +atlas = ExtResource("1_ufccv") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3u0el"] +atlas = ExtResource("1_ufccv") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_brrv0"] +atlas = ExtResource("1_ufccv") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_2g4xt"] +atlas = ExtResource("1_ufccv") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_m5q2l"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_35nom") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3u0el") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_brrv0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_2g4xt") +}], +"loop": true, +"name": &"default", +"speed": 4.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_3v7ex"] +atlas = ExtResource("2_236rq") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3c5tq"] +atlas = ExtResource("2_236rq") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ieass"] +atlas = ExtResource("2_236rq") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d7epe"] +atlas = ExtResource("2_236rq") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_brjsm"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_3v7ex") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3c5tq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ieass") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_d7epe") +}], +"loop": true, +"name": &"default", +"speed": 4.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_brjsm"] +atlas = ExtResource("3_3c5tq") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ybi86"] +atlas = ExtResource("3_3c5tq") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_hb82n"] +atlas = ExtResource("3_3c5tq") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fiknr"] +atlas = ExtResource("3_3c5tq") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_d06xb"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_brjsm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ybi86") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_hb82n") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fiknr") +}], +"loop": true, +"name": &"default", +"speed": 2.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_gceah"] +atlas = ExtResource("4_ieass") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_s21jh"] +atlas = ExtResource("4_ieass") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xjlt7"] +atlas = ExtResource("4_ieass") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jp041"] +atlas = ExtResource("4_ieass") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_7do3a"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_gceah") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_s21jh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xjlt7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jp041") +}], +"loop": true, +"name": &"default", +"speed": 4.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_d06xb"] +atlas = ExtResource("5_ieass") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_7do3a"] +atlas = ExtResource("5_ieass") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qag4x"] +atlas = ExtResource("5_ieass") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_10oeq"] +atlas = ExtResource("5_ieass") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_lt1bt"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_d06xb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_7do3a") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qag4x") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_10oeq") +}], +"loop": true, +"name": &"default", +"speed": 4.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_lt1bt"] +atlas = ExtResource("6_d7epe") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_748p7"] +atlas = ExtResource("6_d7epe") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_h4cte"] +atlas = ExtResource("6_d7epe") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rori6"] +atlas = ExtResource("6_d7epe") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_gbowl"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_lt1bt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_748p7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_h4cte") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_rori6") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_gbowl"] +atlas = ExtResource("7_brjsm") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_em8nj"] +atlas = ExtResource("7_brjsm") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j1qxf"] +atlas = ExtResource("7_brjsm") +region = Rect2(32, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lowru"] +atlas = ExtResource("7_brjsm") +region = Rect2(48, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_20wpp"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_gbowl") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_em8nj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j1qxf") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lowru") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_20wpp"] +atlas = ExtResource("8_ybi86") +region = Rect2(0, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_eaemt"] +atlas = ExtResource("8_ybi86") +region = Rect2(64, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xa74n"] +atlas = ExtResource("8_ybi86") +region = Rect2(128, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_v8kal"] +atlas = ExtResource("8_ybi86") +region = Rect2(192, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_r1mgj"] +atlas = ExtResource("8_ybi86") +region = Rect2(256, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wxa41"] +atlas = ExtResource("8_ybi86") +region = Rect2(320, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_33tgj"] +atlas = ExtResource("8_ybi86") +region = Rect2(384, 0, 64, 64) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l8a8u"] +atlas = ExtResource("8_ybi86") +region = Rect2(448, 0, 64, 64) + +[sub_resource type="SpriteFrames" id="SpriteFrames_d57ma"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_20wpp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_eaemt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xa74n") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_v8kal") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_r1mgj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wxa41") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_33tgj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l8a8u") +}], +"loop": true, +"name": &"default", +"speed": 3.0 +}] + +[sub_resource type="Curve" id="Curve_lrhn5"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_okhi1"] +curve = SubResource("Curve_lrhn5") + +[sub_resource type="Gradient" id="Gradient_my7n2"] +colors = PackedColorArray(0.6267965, 0.35946804, 0.115510084, 0.3764706, 0.5640522, 0.46861154, 0.16076079, 0.627451) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_rkhd4"] +gradient = SubResource("Gradient_my7n2") + +[sub_resource type="Curve" id="Curve_dp8ca"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_deeqb"] +curve = SubResource("Curve_dp8ca") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_0lw5n"] +lifetime_randomness = 0.73 +particle_flag_disable_z = true +emission_shape = 1 +emission_sphere_radius = 1.0 +angle_min = 1.0728835e-05 +angle_max = 115.70001 +inherit_velocity_ratio = 0.154 +direction = Vector3(0, 0, 0) +spread = 98.933 +initial_velocity_max = 2.0 +gravity = Vector3(0, 0, 0) +linear_accel_min = 0.99999774 +linear_accel_max = 4.9999976 +scale_min = 0.19999999 +scale_max = 0.7 +scale_curve = SubResource("CurveTexture_deeqb") +color_ramp = SubResource("GradientTexture1D_rkhd4") +alpha_curve = SubResource("CurveTexture_okhi1") +hue_variation_min = -0.11000002 +hue_variation_max = 0.089999974 +turbulence_enabled = true +turbulence_noise_strength = 0.56 +turbulence_noise_scale = 4.861 + +[sub_resource type="Curve" id="Curve_rkhd4"] +_data = [Vector2(0, 0.007272601), 0.0, 0.0, 0, 0, Vector2(0.46874994, 0.758909), 0.0, 0.0, 0, 0, Vector2(0.73632807, 0.8865454), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_lrhn5"] +curve = SubResource("Curve_rkhd4") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_agfs1"] +particle_flag_disable_z = true +gravity = Vector3(0, 0, 0) +linear_accel_min = -2.2351742e-06 +linear_accel_max = 6.4299974 +radial_accel_min = -2.2351742e-06 +radial_accel_max = 23.289997 +tangential_accel_min = -24.100002 +tangential_accel_max = 10.439998 +color = Color(0.84313726, 0.56078434, 0, 0.7921569) +alpha_curve = SubResource("CurveTexture_lrhn5") + +[node name="Character" type="Node2D" unique_id=1357587844] +script = ExtResource("1_hb82n") +show_shavings = null + +[node name="Fox" type="AnimatedSprite2D" parent="." unique_id=565500848] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_m5q2l") +autoplay = "default" +frame_progress = 0.44348216 + +[node name="Porcupine" type="AnimatedSprite2D" parent="." unique_id=1272266059] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_brjsm") +autoplay = "default" +frame = 3 +frame_progress = 0.8018118 + +[node name="Wolf" type="AnimatedSprite2D" parent="." unique_id=1759146555] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_d06xb") +autoplay = "default" +frame = 3 +frame_progress = 0.19724818 + +[node name="Cat" type="AnimatedSprite2D" parent="." unique_id=1332976928] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_7do3a") +autoplay = "default" +frame_progress = 0.031060848 + +[node name="Goose" type="AnimatedSprite2D" parent="." unique_id=222745417] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_lt1bt") +autoplay = "default" +frame_progress = 0.4729133 + +[node name="Frog" type="AnimatedSprite2D" parent="." unique_id=679106242] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_gbowl") +autoplay = "default" +frame = 1 +frame_progress = 0.27542892 + +[node name="Chick" type="AnimatedSprite2D" parent="." unique_id=1754919209] +unique_name_in_owner = true +visible = false +sprite_frames = SubResource("SpriteFrames_20wpp") +autoplay = "default" +frame = 1 +frame_progress = 0.11994407 + +[node name="Dog" type="AnimatedSprite2D" parent="." unique_id=197188039] +unique_name_in_owner = true +visible = false +position = Vector2(0, -32) +sprite_frames = SubResource("SpriteFrames_d57ma") +autoplay = "default" + +[node name="Dust" type="GPUParticles2D" parent="." unique_id=785652497] +visible = false +position = Vector2(0, 1) +amount = 100 +texture = ExtResource("2_35nom") +lifetime = 10.0 +preprocess = 2.0 +explosiveness = 0.06 +randomness = 0.39 +process_material = SubResource("ParticleProcessMaterial_0lw5n") + +[node name="Shavings" type="GPUParticles2D" parent="." unique_id=1628407210] +unique_name_in_owner = true +visible = false +preprocess = 2.0 +process_material = SubResource("ParticleProcessMaterial_agfs1") diff --git a/scenes/button.tscn b/scenes/button.tscn index 2ad2a86..664af4a 100644 --- a/scenes/button.tscn +++ b/scenes/button.tscn @@ -1,33 +1,43 @@ -[gd_scene load_steps=7 format=3 uid="uid://b0bmsqlrg77le"] +[gd_scene format=3 uid="uid://b0bmsqlrg77le"] [ext_resource type="Texture2D" uid="uid://dx134esqj3kg3" path="res://assets/ui/buttonLong_brown.png" id="1_1bdt2"] [ext_resource type="Texture2D" uid="uid://bmdc4875jf16r" path="res://assets/ui/buttonLong_brown_pressed.png" id="2_8m7bo"] -[ext_resource type="Texture2D" uid="uid://ddghl4cooepr1" path="res://assets/ui/buttonLong_blue.png" id="3_t81cg"] -[ext_resource type="Texture2D" uid="uid://f0tde4s55m2o" path="res://assets/ui/buttonLong_grey.png" id="4_is61r"] +[ext_resource type="Texture2D" uid="uid://c3gmw2rffktva" path="res://assets/ui/buttonLong_beige_pressed.png" id="3_8m7bo"] +[ext_resource type="Texture2D" uid="uid://bk377v70i8bsw" path="res://assets/ui/buttonLong_blue_pressed.png" id="4_8m7bo"] [ext_resource type="Script" uid="uid://dj7uoaxxat5n4" path="res://scenes/scripts/button.gd" id="5_8m7bo"] [ext_resource type="Theme" uid="uid://bnbtwoxxd6cg5" path="res://assets/theme/clicker.theme" id="5_iw4ej"] -[node name="TextureButton" type="TextureButton"] +[node name="TextureButton" type="TextureButton" unique_id=186080222] custom_minimum_size = Vector2(100, 25) -offset_right = 100.0 -offset_bottom = 25.0 +offset_right = 103.0 +offset_bottom = 32.0 tooltip_text = "I need a tooltip bro" texture_normal = ExtResource("1_1bdt2") texture_pressed = ExtResource("2_8m7bo") -texture_hover = ExtResource("3_t81cg") -texture_disabled = ExtResource("4_is61r") +texture_hover = ExtResource("3_8m7bo") +texture_disabled = ExtResource("4_8m7bo") ignore_texture_size = true stretch_mode = 0 script = ExtResource("5_8m7bo") -[node name="CenterContainer" type="CenterContainer" parent="."] +[node name="CenterContainer" type="CenterContainer" parent="." unique_id=313903696] clip_contents = true custom_minimum_size = Vector2(100, 25) layout_mode = 0 offset_right = 100.0 offset_bottom = 25.0 -[node name="Label" type="Label" parent="CenterContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer" unique_id=1263225362] +layout_mode = 2 +theme_override_constants/separation = 0 + +[node name="NameLabel" type="Label" parent="CenterContainer/VBoxContainer" unique_id=1225878363] +layout_mode = 2 +theme = ExtResource("5_iw4ej") +text = "-" +horizontal_alignment = 1 + +[node name="PriceLabel" type="Label" parent="CenterContainer/VBoxContainer" unique_id=1012864835] layout_mode = 2 theme = ExtResource("5_iw4ej") text = "-" diff --git a/scenes/config_panel.tscn b/scenes/config_panel.tscn new file mode 100644 index 0000000..b545a0b --- /dev/null +++ b/scenes/config_panel.tscn @@ -0,0 +1,91 @@ +[gd_scene format=3 uid="uid://bqy5j8xm7o8ra"] + +[ext_resource type="Script" path="res://scenes/scripts/config_panel.gd" id="1_config"] + +[node name="ConfigPanel" type="Panel"] +unique_name_in_owner = true +light_mask = 2 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -200.0 +offset_top = -150.0 +offset_right = 200.0 +offset_bottom = 150.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_config") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 20 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 20 +theme_override_constants/margin_bottom = 20 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +layout_mode = 2 +theme_override_constants/separation = 15 + +[node name="TitleLabel" type="Label" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 +text = "Sound Settings" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="MusicContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/MusicContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Background Music" +vertical_alignment = 1 + +[node name="MusicToggle" type="CheckButton" parent="MarginContainer/VBoxContainer/MusicContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="ChopContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/ChopContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Wood Chop Sound" +vertical_alignment = 1 + +[node name="ChopToggle" type="CheckButton" parent="MarginContainer/VBoxContainer/ChopContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="MoneyContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/MoneyContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Money Sound" +vertical_alignment = 1 + +[node name="MoneyToggle" type="CheckButton" parent="MarginContainer/VBoxContainer/MoneyContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="HSeparator2" type="HSeparator" parent="MarginContainer/VBoxContainer"] +layout_mode = 2 + +[node name="CloseButton" type="Button" parent="MarginContainer/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "Close" diff --git a/scenes/game.tscn b/scenes/game.tscn deleted file mode 100644 index 170b5f8..0000000 --- a/scenes/game.tscn +++ /dev/null @@ -1,3 +0,0 @@ -[gd_scene format=3 uid="uid://duhwm7m5hc506"] - -[node name="Game" type="Node3D"] diff --git a/scenes/game2.tscn b/scenes/game2.tscn index 22808b9..c5efb4e 100644 --- a/scenes/game2.tscn +++ b/scenes/game2.tscn @@ -18,11 +18,16 @@ [ext_resource type="Script" uid="uid://cpimo8q5dcjxf" path="res://scenes/scripts/fire_light.gd" id="16_5kdtj"] [ext_resource type="PackedScene" uid="uid://cbrkq6jd5a4ho" path="res://scenes/character.tscn" id="17_1hpkv"] [ext_resource type="PackedScene" uid="uid://cnyxwsj6i27ja" path="res://scenes/stock_pile.tscn" id="17_deeqb"] +[ext_resource type="PackedScene" uid="uid://bfkpy8wqqktca" path="res://scenes/animal.tscn" id="17_k8jaa"] [ext_resource type="PackedScene" uid="uid://bubjxrs8qmr4y" path="res://scenes/wood_pile.tscn" id="17_oibj5"] [ext_resource type="Script" uid="uid://cm84m3olmcc8o" path="res://scenes/scripts/ui_control.gd" id="17_q7h7c"] [ext_resource type="PackedScene" uid="uid://b0bmsqlrg77le" path="res://scenes/button.tscn" id="19_v4v8k"] +[ext_resource type="PackedScene" path="res://scenes/config_panel.tscn" id="20_config"] +[ext_resource type="Texture2D" uid="uid://dylc6y7ajsln3" path="res://assets/ui/panel_brown.png" id="22_hcndq"] +[ext_resource type="FontFile" uid="uid://bfq6d6y56gr4s" path="res://assets/font/m5x7.ttf" id="22_k8i0y"] [ext_resource type="Theme" uid="uid://bnbtwoxxd6cg5" path="res://assets/theme/clicker.theme" id="22_q7h7c"] [ext_resource type="Texture2D" uid="uid://dx134esqj3kg3" path="res://assets/ui/buttonLong_brown.png" id="23_lv1cq"] +[ext_resource type="FontFile" uid="uid://d2vuqc82hbh5b" path="res://assets/font/NotoColorEmoji-Regular.ttf" id="24_chdjo"] [ext_resource type="Texture2D" uid="uid://bmdc4875jf16r" path="res://assets/ui/buttonLong_brown_pressed.png" id="24_k8i0y"] [ext_resource type="Texture2D" uid="uid://ddghl4cooepr1" path="res://assets/ui/buttonLong_blue.png" id="25_hcndq"] [ext_resource type="Texture2D" uid="uid://f0tde4s55m2o" path="res://assets/ui/buttonLong_grey.png" id="26_chdjo"] @@ -1946,9 +1951,26 @@ gradient = SubResource("Gradient_5kdtj") fill = 1 fill_from = Vector2(0.5, 0.5) +[sub_resource type="FontVariation" id="FontVariation_hcndq"] +base_font = ExtResource("22_k8i0y") +variation_embolden = 0.2 + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q7h7c"] bg_color = Color(0, 0, 0, 0.7921569) +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_mjadu"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_k8jaa"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hp34j"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_lxcs1"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hxr5a"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_mjadu"] +bg_color = Color(0.5921569, 0.44313726, 0.2901961, 1) + [node name="GameScene" type="Node2D" unique_id=1879752572] [node name="Scene" type="Node2D" parent="." unique_id=1170541436] @@ -1960,42 +1982,57 @@ metadata/_edit_lock_ = true [node name="Sprite2D" type="Sprite2D" parent="Scene/Background" unique_id=1234031660] position = Vector2(43, -45) texture = ExtResource("1_xrrf0") +metadata/_edit_lock_ = true [node name="Sprite2D2" type="Sprite2D" parent="Scene/Background" unique_id=531673597] position = Vector2(43, -45) texture = ExtResource("2_kh4a2") +metadata/_edit_lock_ = true [node name="Sprite2D3" type="Sprite2D" parent="Scene/Background" unique_id=1328011980] position = Vector2(43, -45) texture = ExtResource("3_8j387") +metadata/_edit_lock_ = true [node name="Sprite2D4" type="Sprite2D" parent="Scene/Background" unique_id=236948197] position = Vector2(43, -45) texture = ExtResource("4_5dhap") +metadata/_edit_lock_ = true [node name="Sprite2D5" type="Sprite2D" parent="Scene/Background" unique_id=1992550436] position = Vector2(44, -45) texture = ExtResource("5_s427y") +metadata/_edit_lock_ = true [node name="BGTrees2" type="TileMapLayer" parent="Scene" unique_id=1214041213] position = Vector2(-49, 59) tile_map_data = PackedByteArray("AAACAPr/BgAAAAEAAAACAPv/BgAAAAIAAAACAPz/BgAAAAMAAAACAP3/BgAAAAQAAAADAPn/BgABAAAAAAADAPr/BgABAAEAAAADAPv/BgABAAIAAAADAPz/BgABAAMAAAADAP3/BgABAAQAAAADAP7/BgABAAUAAAAEAPn/BgACAAAAAAAEAPr/BgACAAEAAAAEAPv/BgACAAIAAAAEAPz/BgACAAMAAAAEAP3/BgACAAQAAAAEAP7/BgACAAUAAAAEAP//BgACAAYAAAAFAPn/BgADAAAAAAAFAPr/BgADAAEAAAAFAPv/BgADAAIAAAAFAPz/BgADAAMAAAAFAP3/BgADAAQAAAAGAPr/BgAEAAEAAAAGAPv/BgAEAAIAAAAGAPz/BgAEAAMAAAAGAP3/BgAEAAQAAAAOAPr/BgAAAAEAAAAOAPv/BgAAAAIAAAAOAPz/BgAAAAMAAAAOAP3/BgAAAAQAAAAPAPn/BgABAAAAAAAPAPr/BgABAAEAAAAPAPv/BgABAAIAAAAPAPz/BgABAAMAAAAPAP3/BgABAAQAAAAPAP7/BgABAAUAAAAQAPn/BgACAAAAAAAQAPr/BgACAAEAAAAQAPv/BgACAAIAAAAQAPz/BgACAAMAAAAQAP3/BgACAAQAAAAQAP7/BgACAAUAAAAQAP//BgACAAYAAAARAPn/BgADAAAAAAARAPr/BgADAAEAAAARAPv/BgADAAIAAAARAPz/BgADAAMAAAARAP3/BgADAAQAAAASAPr/BgAEAAEAAAASAPv/BgAEAAIAAAASAPz/BgAEAAMAAAASAP3/BgAEAAQAAAD5//z/BwAAAAcAAAD5//3/BwAAAAgAAAD5//7/BwAAAAkAAAD5////BwAAAAoAAAD6//v/BwABAAYAAAD6//z/BwABAAcAAAD6//3/BwABAAgAAAD6//7/BwABAAkAAAD6////BwABAAoAAAD7//n/BwACAAQAAAD7//r/BwACAAUAAAD7//v/BwACAAYAAAD7//z/BwACAAcAAAD7//3/BwACAAgAAAD7//7/BwACAAkAAAD7////BwACAAoAAAD8//f/BwADAAIAAAD8//j/BwADAAMAAAD8//n/BwADAAQAAAD8//r/BwADAAUAAAD8//v/BwADAAYAAAD8//z/BwADAAcAAAD8//3/BwADAAgAAAD8//7/BwADAAkAAAD9//b/BwAEAAEAAAD9//f/BwAEAAIAAAD9//j/BwAEAAMAAAD9//n/BwAEAAQAAAD9//r/BwAEAAUAAAD9//v/BwAEAAYAAAD9//z/BwAEAAcAAAD9//3/BwAEAAgAAAD9//7/BwAEAAkAAAD+//b/BwAFAAEAAAD+//f/BwAFAAIAAAD+//j/BwAFAAMAAAD+//n/BwAFAAQAAAD+//r/BwAFAAUAAAD+//v/BwAFAAYAAAD+//z/BwAFAAcAAAD+//3/BwAFAAgAAAD+//7/BwAFAAkAAAD///X/BwAGAAAAAAD///b/BwAGAAEAAAD///f/BwAGAAIAAAD///j/BwAGAAMAAAD///n/BwAGAAQAAAD///r/BwAGAAUAAAD///v/BwAGAAYAAAD///z/BwAGAAcAAAD///3/BwAGAAgAAAAAAPj/BwAHAAMAAAAAAPn/BwAHAAQAAAAAAPr/BwAHAAUAAAAMAP7/AQAMABQAAAAMAP//AQAMABUAAAANAP7/AQANABQAAAANAP//AQANABUAAAAOAP7/AQAOABQAAAAOAP//AQAOABUAAAAPAP//AQAPABUAAAAKAP//AQAKABUAAAALAP//AQALABUAAAAAAP7/AQAAABwAAAAAAP//AQAAAB0AAAABAP7/AQABABwAAAABAP//AQABAB0AAAACAP7/AQACABwAAAACAP//AQACAB0AAAADAP//AQADAB0AAAAVAP//AQAGAB0AAAAWAP//AQAHAB0AAAA=") tile_set = SubResource("TileSet_btr28") +metadata/_edit_lock_ = true [node name="BGTrees1" type="TileMapLayer" parent="Scene" unique_id=232331490] position = Vector2(-49, 59) tile_map_data = PackedByteArray("AAD9//7/BAAKAAMAAAD9////BAAKAAQAAAD+////BAALAAQAAAAHAP7/AgAGAAsAAAAHAP//AgAGAAwAAAAIAP3/AgAHAAoAAAAIAP7/AgAHAAsAAAAIAP//AgAHAAwAAAAJAP7/AgAIAAsAAAAJAP//AgAIAAwAAAABAPj/AgAAAAUAAAABAPn/AgAAAAYAAAACAPf/AgABAAQAAAACAPj/AgABAAUAAAACAPn/AgABAAYAAAACAPr/AgABAAcAAAADAPf/AgACAAQAAAADAPj/AgACAAUAAAADAPn/AgACAAYAAAADAPr/AgACAAcAAAAEAPX/AgADAAIAAAAEAPb/AgADAAMAAAAEAPf/AgADAAQAAAAEAPj/AgADAAUAAAAEAPn/AgADAAYAAAAEAPr/AgADAAcAAAAEAPv/AgADAAgAAAAFAPT/AgAEAAEAAAAFAPX/AgAEAAIAAAAFAPb/AgAEAAMAAAAFAPf/AgAEAAQAAAAFAPj/AgAEAAUAAAAFAPn/AgAEAAYAAAAFAPr/AgAEAAcAAAAFAPv/AgAEAAgAAAAGAPT/AgAFAAEAAAAGAPX/AgAFAAIAAAAGAPb/AgAFAAMAAAAGAPf/AgAFAAQAAAAGAPj/AgAFAAUAAAAGAPn/AgAFAAYAAAAGAPr/AgAFAAcAAAAGAPv/AgAFAAgAAAAHAPP/AgAGAAAAAAAHAPT/AgAGAAEAAAAHAPX/AgAGAAIAAAAHAPb/AgAGAAMAAAAHAPf/AgAGAAQAAAAHAPj/AgAGAAUAAAAHAPn/AgAGAAYAAAAHAPr/AgAGAAcAAAAHAPv/AgAGAAgAAAAHAPz/AgAGAAkAAAAIAPP/AgAHAAAAAAAIAPT/AgAHAAEAAAAIAPX/AgAHAAIAAAAIAPb/AgAHAAMAAAAIAPf/AgAHAAQAAAAIAPj/AgAHAAUAAAAIAPn/AgAHAAYAAAAIAPr/AgAHAAcAAAAIAPv/AgAHAAgAAAAIAPz/AgAHAAkAAAAJAPP/AgAIAAAAAAAJAPT/AgAIAAEAAAAJAPX/AgAIAAIAAAAJAPb/AgAIAAMAAAAJAPf/AgAIAAQAAAAJAPj/AgAIAAUAAAAJAPn/AgAIAAYAAAAJAPr/AgAIAAcAAAAJAPv/AgAIAAgAAAAJAPz/AgAIAAkAAAAJAP3/AgAIAAoAAAAKAPP/AgAJAAAAAAAKAPT/AgAJAAEAAAAKAPX/AgAJAAIAAAAKAPb/AgAJAAMAAAAKAPf/AgAJAAQAAAAKAPj/AgAJAAUAAAAKAPn/AgAJAAYAAAAKAPr/AgAJAAcAAAAKAPv/AgAJAAgAAAAKAP//AgAJAAwAAAALAPP/AgAKAAAAAAALAPT/AgAKAAEAAAALAPX/AgAKAAIAAAALAPb/AgAKAAMAAAALAPf/AgAKAAQAAAALAPj/AgAKAAUAAAALAPn/AgAKAAYAAAALAPr/AgAKAAcAAAALAPv/AgAKAAgAAAAMAPT/AgALAAEAAAAMAPX/AgALAAIAAAAMAPb/AgALAAMAAAAMAPf/AgALAAQAAAAMAPj/AgALAAUAAAAMAPn/AgALAAYAAAAMAPr/AgALAAcAAAAMAPv/AgALAAgAAAAMAPz/AgALAAkAAAANAPT/AgAMAAEAAAANAPX/AgAMAAIAAAANAPb/AgAMAAMAAAANAPf/AgAMAAQAAAANAPj/AgAMAAUAAAANAPn/AgAMAAYAAAANAPr/AgAMAAcAAAANAPv/AgAMAAgAAAANAPz/AgAMAAkAAAAOAPf/AgANAAQAAAAOAPj/AgANAAUAAAAOAPn/AgANAAYAAAAOAPr/AgANAAcAAAAOAPv/AgANAAgAAAAPAPj/AgAOAAUAAAAPAPn/AgAOAAYAAAAPAPr/AgAOAAcAAAAPAPv/AgAOAAgAAAAQAPj/AgAPAAUAAAAQAPn/AgAPAAYAAAAQAPr/AgAPAAcAAAAQAPv/AgAPAAgAAAD5//v/BAAGAAAAAAD5//z/BAAGAAEAAAD5//3/BAAGAAIAAAD5//7/BAAGAAMAAAD6//v/BAAHAAAAAAD6//z/BAAHAAEAAAD6//3/BAAHAAIAAAD6//7/BAAHAAMAAAD7//v/BAAIAAAAAAD7//z/BAAIAAEAAAD7//3/BAAIAAIAAAD7//7/BAAIAAMAAAD7////BAAIAAQAAAD7/wAABAAIAAUAAAD8//z/BAAJAAEAAAD8//3/BAAJAAIAAAD8//7/BAAJAAMAAAD8////BAAJAAQAAAD8/wAABAAJAAUAAAD9/wAABAAKAAUAAAD+/wAABAALAAUAAAD5////BAAGAAMAAAD5/wAABAAGAAMAAAD6/wEABAAGAAMAAAD6/wIABAAGAAMAAAD6/wMABAAGAAMAAAD5/wMABAAGAAMAAAD5/wQABAAGAAMAAAD6/wQABAAGAAMAAAD7/wQABAAGAAMAAAD8/wQABAAGAAMAAAD9/wQABAAGAAMAAAD9/wMABAAGAAMAAAD8/wMABAAGAAMAAAD7/wMABAAGAAMAAAD4/wIABAAGAAMAAAD4/wEABAAGAAMAAAD5/wEABAAGAAMAAAD6/wAABAAGAAMAAAD6////BAAGAAMAAAD5/wIABAAGAAMAAAD7/wEABAAGAAMAAAD8/wEABAAGAAMAAAD9/wEABAAGAAMAAAD+/wEABAAGAAMAAAD+/wIABAAGAAMAAAD9/wIABAAGAAMAAAD8/wIABAAGAAMAAAD7/wIABAAGAAMAAAD+/wMABAAGAAMAAAD+/wQABAAGAAMAAAD4/wMABAAGAAMAAAD4/wQABAAGAAMAAAD4////BAAGAAMAAAD4//7/AAAEAA8AAAD4//3/AAAEAA4AAADx////AAACAA8AAADy////AAACAA8AAADz//7/AAADAA8AAADz////AAACAA8AAAD0//7/AAAEAA8AAAD0////AAACAA8AAAD1//7/AAABAA8AAAD1////AAACAA8AAAD2////AAACAA8AAAD1//v/AAABAAwAAAD1//z/AAABAA0AAAD1//3/AAABAA4AAAD2//v/AAACAAwAAAD2//z/AAACAA0AAAD2//3/AAACAA4AAAD2//7/AAACAA8AAAD3//v/AAADAAwAAAD3//z/AAADAA0AAAD3//3/AAADAA4AAAD3//7/AAADAA8AAAD4//v/AAAEAAwAAAD4//z/AAAEAA0AAADx//v/AAADAAwAAADx//z/AAADAA0AAADx//3/AAADAA4AAADx//7/AAADAA8AAADy//v/AAAEAAwAAADy//z/AAAEAA0AAADy//3/AAAEAA4AAADy//7/AAAEAA8AAADz//v/AAADAAwAAADz//z/AAADAA0AAADz//3/AAADAA4AAAD0//v/AAAEAAwAAAD0//z/AAAEAA0AAAD0//3/AAAEAA4AAADv//v/AAABAAwAAADv//z/AAABAA0AAADv//3/AAABAA4AAADv//7/AAABAA8AAADw//v/AAACAAwAAADw//z/AAACAA0AAADw//3/AAACAA4AAADw//7/AAACAA8AAAD3////AAACAA8AAADw////AAACAA8AAADv////AAACAA8AAAA=") tile_set = SubResource("TileSet_btr28") +metadata/_edit_lock_ = true [node name="BGTrees0" type="TileMapLayer" parent="Scene" unique_id=192241590] position = Vector2(-49, 59) tile_map_data = PackedByteArray("AAARAPn/BgAAAAEAAAARAPr/BgAAAAIAAAARAPv/BgAAAAMAAAARAPz/BgAAAAQAAAASAPj/BgABAAAAAAASAPn/BgABAAEAAAASAPr/BgABAAIAAAASAPv/BgABAAMAAAASAPz/BgABAAQAAAASAP3/BgABAAUAAAATAPj/BgACAAAAAAATAPn/BgACAAEAAAATAPr/BgACAAIAAAATAPv/BgACAAMAAAATAPz/BgACAAQAAAATAP3/BgACAAUAAAATAP7/BgACAAYAAAAUAPj/BgADAAAAAAAUAPn/BgADAAEAAAAUAPr/BgADAAIAAAAUAPv/BgADAAMAAAAUAPz/BgADAAQAAAAVAPn/BgAEAAEAAAAVAPr/BgAEAAIAAAAVAPv/BgAEAAMAAAAVAPz/BgAEAAQAAADx//n/BgAAAAEAAADx//r/BgAAAAIAAADx//v/BgAAAAMAAADx//z/BgAAAAQAAADy//j/BgABAAAAAADy//n/BgABAAEAAADy//r/BgABAAIAAADy//v/BgABAAMAAADy//z/BgABAAQAAADy//3/BgABAAUAAADz//j/BgACAAAAAADz//n/BgACAAEAAADz//r/BgACAAIAAADz//v/BgACAAMAAADz//z/BgACAAQAAADz//3/BgACAAUAAADz//7/BgACAAYAAAD0//j/BgADAAAAAAD0//n/BgADAAEAAAD0//r/BgADAAIAAAD0//v/BgADAAMAAAD0//z/BgADAAQAAAD1//n/BgAEAAEAAAD1//r/BgAEAAIAAAD1//v/BgAEAAMAAAD1//z/BgAEAAQAAAD1//7/AQAAABwAAAD1////AQAAAB0AAAD2//7/AQABABwAAAD2////AQABAB0AAAD3//7/AQACABwAAAD3////AQACAB0AAAD4////AQADAB0AAADv//7/AQAAABwAAADv////AQAAAB0AAADw//7/AQABABwAAADw////AQABAB0AAADx//7/AQACABwAAADx////AQACAB0AAADy////AQADAB0AAAD5//v/CAAWAAAAAAD5//z/CAAWAAEAAAD5//3/CAAWAAIAAAD5//7/CAAWAAMAAAD6//v/CAAXAAAAAAD6//z/CAAXAAEAAAD6//3/CAAXAAIAAAD6//7/CAAXAAMAAAD5////CAAUAAMAAAD6////CAAVAAMAAAD3//n/CAAaAAIAAAD3//r/CAAaAAMAAAD4//n/CAAbAAIAAAD4//r/CAAbAAMAAAA=") tile_set = SubResource("TileSet_btr28") +metadata/_edit_lock_ = true [node name="BackgroundDecor" type="TileMapLayer" parent="Scene" unique_id=1466162064] position = Vector2(-49, 59) tile_map_data = PackedByteArray("AAD9//7/AQAAAAQAAAD9////AQAAAAUAAAD+//3/AQABAAMAAAD+//7/AQABAAQAAAD+////AQABAAUAAAD///3/AQACAAMAAAD///7/AQACAAQAAAD/////AQACAAUAAAAAAP3/AQADAAMAAAAAAP7/AQADAAQAAAAAAP//AQADAAUAAAABAP3/AQAEAAMAAAABAP7/AQAEAAQAAAABAP//AQAEAAUAAAACAP7/AQAFAAQAAAACAP//AQAFAAUAAAAEAP7/AQAGAAQAAAAEAP//AQAGAAUAAAAFAP3/AQAHAAMAAAAFAP7/AQAHAAQAAAAFAP//AQAHAAUAAAAGAP3/AQAIAAMAAAAGAP7/AQAIAAQAAAAGAP//AQAIAAUAAAAHAP3/AQAJAAMAAAAHAP7/AQAJAAQAAAAHAP//AQAJAAUAAAAIAP3/AQAKAAMAAAAIAP7/AQAKAAQAAAAIAP//AQAKAAUAAAAJAP7/AQALAAQAAAAJAP//AQALAAUAAADx////AQAKABUAAADy////AQALABUAAADz//7/AQAMABQAAADz////AQAMABUAAAD0//7/AQANABQAAAD0////AQANABUAAAD1//7/AQAOABQAAAD1////AQAOABUAAAD2////AQAPABUAAAARAP//AQAKABUAAAASAP//AQALABUAAAATAP7/AQAMABQAAAATAP//AQAMABUAAAAUAP7/AQANABQAAAAUAP//AQANABUAAAAVAP7/AQAOABQAAAAVAP//AQAOABUAAAAWAP//AQAPABUAAAA=") tile_set = SubResource("TileSet_btr28") +metadata/_edit_lock_ = true + +[node name="Cat" parent="Scene" unique_id=1357587844 groups=["animal_friends"] instance=ExtResource("17_k8jaa")] +position = Vector2(127, 35) +animal_type = "Cat" +flip_horizontal = true +show_shavings = true [node name="LeafParticles" type="GPUParticles2D" parent="Scene" unique_id=420003071] material = SubResource("CanvasItemMaterial_w330p") @@ -2034,11 +2071,41 @@ script = ExtResource("16_5kdtj") position = Vector2(-49, 59) tile_map_data = PackedByteArray("AAD9/wAAAAABAAwAAAD+/wAAAAACAAwAAAD//wAAAAADAAwAAAAAAAAAAAABAAwAAAABAAAAAAACAAwAAAACAAAAAAADAAwAAAADAAAAAAABAAwAAAAEAAAAAAACAAwAAAAFAAAAAAADAAwAAAAGAAAAAAABAAwAAAAHAAAAAAACAAwAAAAIAAAAAAADAAwAAAAJAAAAAAABAAwAAAAKAAAAAAACAAwAAAAKAAEAAAACAA0AAAAKAAIAAAACAA4AAAAKAAMAAAADAA4AAAAKAAQAAAADAA8AAAAHAAEAAAACAA0AAAAHAAIAAAACAA4AAAAHAAMAAAACAA4AAAAIAAEAAAADAA0AAAAIAAIAAAADAA4AAAAIAAMAAAADAA4AAAAJAAEAAAABAA0AAAAJAAIAAAABAA4AAAAJAAMAAAACAA4AAAAEAAEAAAACAA0AAAAEAAIAAAACAA4AAAAEAAMAAAADAA4AAAAFAAEAAAADAA0AAAAFAAIAAAADAA4AAAAFAAMAAAACAA4AAAAGAAEAAAABAA0AAAAGAAIAAAABAA4AAAAGAAMAAAADAA4AAAABAAEAAAACAA0AAAABAAIAAAACAA4AAAABAAMAAAACAA4AAAACAAEAAAADAA0AAAACAAIAAAADAA4AAAACAAMAAAADAA4AAAADAAEAAAABAA0AAAADAAIAAAABAA4AAAADAAMAAAACAA4AAAD+/wEAAAACAA0AAAD+/wIAAAACAA4AAAD+/wMAAAACAA8AAAD//wEAAAADAA0AAAD//wIAAAADAA4AAAD//wMAAAADAA8AAAAAAAEAAAABAA0AAAAAAAIAAAABAA4AAAAAAAMAAAABAA8AAAD9/wEAAAABAA0AAAD9/wIAAAABAA4AAAD9/wMAAAABAA8AAAAHAAQAAAACAA8AAAAIAAQAAAADAA8AAAAJAAQAAAACAA8AAAAEAAQAAAADAA8AAAAFAAQAAAACAA8AAAAGAAQAAAADAA8AAAABAAQAAAACAA8AAAACAAQAAAADAA8AAAADAAQAAAACAA8AAAD+/wQAAAACABAAAAD//wQAAAADABAAAAAAAAQAAAABABAAAAD9/wQAAAABABAAAADw/wAAAAAAAAwAAADw/wEAAAACAA4AAADw/wIAAAACAA8AAADw/wMAAAACAA4AAADw/wQAAAACAA8AAADx/wAAAAABAAwAAADx/wEAAAADAA4AAADx/wIAAAADAA8AAADx/wMAAAADAA4AAADx/wQAAAADAA8AAADy/wAAAAACAAwAAADy/wEAAAACAA0AAADy/wIAAAACAA4AAADy/wMAAAACAA8AAADy/wQAAAACABAAAADz/wAAAAADAAwAAADz/wEAAAADAA0AAADz/wIAAAADAA4AAADz/wMAAAADAA8AAADz/wQAAAADABAAAAD0/wAAAAABAAwAAAD0/wEAAAABAA0AAAD0/wIAAAABAA4AAAD0/wMAAAABAA8AAAD0/wQAAAABABAAAAD1/wAAAAACAAwAAAD1/wEAAAACAA0AAAD1/wIAAAACAA4AAAD1/wMAAAACAA8AAAD1/wQAAAACABAAAAD2/wAAAAADAAwAAAD2/wEAAAADAA0AAAD2/wIAAAADAA4AAAD2/wMAAAADAA8AAAD2/wQAAAADABAAAAD3/wAAAAABAAwAAAD3/wEAAAABAA0AAAD3/wIAAAABAA4AAAD3/wMAAAABAA8AAAD3/wQAAAABABAAAAD4/wAAAAACAAwAAAD4/wEAAAACAA0AAAD4/wIAAAACAA4AAAD4/wMAAAACAA8AAAD4/wQAAAACABAAAAD5/wAAAAADAAwAAAD5/wEAAAADAA0AAAD5/wIAAAADAA4AAAD5/wMAAAADAA8AAAD5/wQAAAADABAAAAD6/wAAAAABAAwAAAD6/wEAAAABAA0AAAD6/wIAAAABAA4AAAD6/wMAAAABAA8AAAD6/wQAAAABABAAAAD7/wAAAAACAAwAAAD7/wEAAAACAA0AAAD7/wIAAAACAA4AAAD7/wMAAAACAA8AAAD7/wQAAAACABAAAAD8/wAAAAADAAwAAAD8/wEAAAADAA0AAAD8/wIAAAADAA4AAAD8/wMAAAADAA8AAAD8/wQAAAADABAAAAALAAAAAAADAAwAAAALAAEAAAADAA0AAAALAAIAAAADAA4AAAALAAMAAAADAA8AAAALAAQAAAADABAAAAAMAAAAAAABAAwAAAAMAAEAAAABAA0AAAAMAAIAAAABAA4AAAAMAAMAAAABAA8AAAAMAAQAAAABABAAAAANAAAAAAACAAwAAAANAAEAAAACAA0AAAANAAIAAAACAA4AAAANAAMAAAACAA8AAAANAAQAAAACABAAAAAOAAAAAAADAAwAAAAOAAEAAAADAA0AAAAOAAIAAAADAA4AAAAOAAMAAAADAA8AAAAOAAQAAAADABAAAAAPAAAAAAABAAwAAAAPAAEAAAABAA0AAAAPAAIAAAABAA4AAAAPAAMAAAABAA8AAAAPAAQAAAABABAAAAAQAAAAAAACAAwAAAAQAAEAAAACAA0AAAAQAAIAAAACAA4AAAAQAAMAAAACAA8AAAAQAAQAAAACABAAAAARAAAAAAABAAwAAAARAAEAAAABAA0AAAARAAIAAAABAA4AAAARAAMAAAABAA8AAAARAAQAAAABABAAAAASAAAAAAACAAwAAAASAAEAAAACAA0AAAASAAIAAAACAA4AAAASAAMAAAACAA8AAAASAAQAAAACABAAAAATAAAAAAADAAwAAAATAAEAAAADAA0AAAATAAIAAAADAA4AAAATAAMAAAADAA8AAAATAAQAAAADABAAAAAUAAAAAAABAAwAAAAUAAEAAAABAA0AAAAUAAIAAAABAA4AAAAUAAMAAAABAA8AAAAUAAQAAAABABAAAAAVAAAAAAACAAwAAAAVAAEAAAACAA0AAAAVAAIAAAACAA4AAAAVAAMAAAACAA8AAAAVAAQAAAACABAAAAAWAAAAAAADAAwAAAAWAAEAAAADAA0AAAAWAAIAAAADAA4AAAAWAAMAAAADAA8AAAAWAAQAAAADABAAAADx/wUAAAADAA4AAADx/wYAAAADAA8AAADy/wUAAAADAA4AAADy/wYAAAADAA8AAADz/wUAAAACAA4AAADz/wYAAAACAA8AAAD0/wUAAAADAA4AAAD0/wYAAAADAA8AAAD1/wUAAAACAA4AAAD1/wYAAAACAA8AAAD2/wUAAAADAA4AAAD2/wYAAAADAA8AAAD3/wUAAAACAA4AAAD3/wYAAAACAA8AAAD4/wUAAAADAA4AAAD4/wYAAAADAA8AAAD5/wUAAAACAA4AAAD5/wYAAAACAA8AAAD6/wUAAAADAA4AAAD6/wYAAAADAA8AAAD7/wUAAAACAA4AAAD7/wYAAAACAA8AAAD8/wUAAAADAA4AAAD8/wYAAAADAA8AAAD9/wUAAAACAA4AAAD9/wYAAAACAA8AAAD+/wUAAAADAA4AAAD+/wYAAAADAA8AAAD//wUAAAACAA4AAAD//wYAAAACAA8AAAAAAAUAAAADAA4AAAAAAAYAAAADAA8AAAABAAUAAAACAA4AAAABAAYAAAACAA8AAAACAAUAAAADAA4AAAACAAYAAAADAA8AAAADAAUAAAACAA4AAAADAAYAAAACAA8AAAAEAAUAAAADAA4AAAAEAAYAAAADAA8AAAAFAAUAAAACAA4AAAAFAAYAAAACAA8AAAAGAAUAAAADAA4AAAAGAAYAAAADAA8AAAAHAAUAAAACAA4AAAAHAAYAAAACAA8AAAAIAAUAAAADAA4AAAAIAAYAAAADAA8AAAAJAAUAAAACAA4AAAAJAAYAAAACAA8AAAAKAAUAAAADAA4AAAAKAAYAAAADAA8AAAALAAUAAAACAA4AAAALAAYAAAACAA8AAAAMAAUAAAADAA4AAAAMAAYAAAADAA8AAAANAAUAAAACAA4AAAANAAYAAAACAA8AAAAOAAUAAAADAA4AAAAOAAYAAAADAA8AAAAPAAUAAAACAA4AAAAPAAYAAAACAA8AAAAQAAUAAAADAA4AAAAQAAYAAAADAA8AAAARAAUAAAACAA4AAAARAAYAAAACAA8AAAASAAUAAAADAA4AAAASAAYAAAADAA8AAAATAAUAAAACAA4AAAATAAYAAAACAA8AAAAUAAUAAAADAA4AAAAUAAYAAAADAA8AAAAVAAUAAAACAA4AAAAVAAYAAAACAA8AAAAWAAUAAAADAA4AAAAWAAYAAAADAA8AAADw/wUAAAACAA4AAADw/wYAAAACAA8AAAAKAP7/AQAOAAAAAAAKAP//AQAOAAEAAAALAP7/AQAPAAAAAAALAP//AQAPAAEAAAA=") tile_set = SubResource("TileSet_btr28") +metadata/_edit_lock_ = true [node name="InteractionLayer" type="Node2D" parent="Scene" unique_id=955061762] +[node name="Goose" parent="Scene/InteractionLayer" unique_id=495867136 groups=["animal_friends"] instance=ExtResource("17_k8jaa")] +position = Vector2(-187, 19) +animal_type = "Goose" +flip_horizontal = true +show_shavings = true + +[node name="Fox" parent="Scene/InteractionLayer" unique_id=1333255729 groups=["animal_friends"] instance=ExtResource("17_k8jaa")] +position = Vector2(-52, 51) +animal_type = "Fox" +show_shavings = true + +[node name="Frog" parent="Scene/InteractionLayer" unique_id=1883056059 groups=["animal_friends"] instance=ExtResource("17_k8jaa")] +position = Vector2(-127, 51) +animal_type = "Frog" +show_shavings = true + +[node name="Wolf" parent="Scene/InteractionLayer" unique_id=526034363 groups=["animal_friends"] instance=ExtResource("17_k8jaa")] +position = Vector2(-149, -29) +animal_type = "Wolf" +flip_horizontal = true +show_shavings = true + +[node name="Dog" parent="Scene/InteractionLayer" unique_id=165373951 instance=ExtResource("17_k8jaa")] +position = Vector2(28, 59) +animal_type = "Dog" +show_shavings = false +metadata/_edit_lock_ = true + [node name="Character" parent="Scene/InteractionLayer" unique_id=916171989 instance=ExtResource("17_1hpkv")] -position = Vector2(-62, 29) +position = Vector2(-70, 29) +metadata/_edit_lock_ = true [node name="StockPile" parent="Scene/InteractionLayer" unique_id=1961584119 instance=ExtResource("17_deeqb")] position = Vector2(-215, 51) @@ -2051,17 +2118,21 @@ position = Vector2(164, 48) position = Vector2(-49, 59) tile_map_data = PackedByteArray("AAACAP7/AQACAAYAAAACAP//AQACAAcAAAADAP7/AQADAAYAAAADAP//AQADAAcAAAAHAP//AQAYAAcAAAAIAP//AQAZAAcAAADz////AQAIAAkAAAD0////AQAJAAkAAAD3////AQAKAAkAAAD4////AQALAAkAAADw////AQAWAAcAAADx////AQAXAAcAAAD8////AQAGAA0AAAD9////AQAHAA0AAAD5////AQAGAA8AAAD6////AQAHAA8AAAAOAP//AQAIAA8AAAAPAP7/AQAJAA4AAAAPAP//AQAJAA8AAAAQAP7/AQAKAA4AAAAQAP//AQAKAA8AAAARAP//AQALAA8AAAATAP//AQAGAA0AAAAUAP//AQAHAA0AAAAJAP//AQAGAA0AAAAKAP//AQAHAA0AAAALAP//AQAKAAkAAAAMAP//AQALAAkAAAA=") tile_set = SubResource("TileSet_btr28") +metadata/_edit_lock_ = true [node name="Camera2D" type="Camera2D" parent="." unique_id=1719721614] zoom = Vector2(2, 2) +metadata/_edit_lock_ = true [node name="UI" type="Control" parent="." unique_id=1827364964] +light_mask = 2 layout_mode = 3 anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 theme = ExtResource("22_q7h7c") script = ExtResource("17_q7h7c") +metadata/_edit_lock_ = true [node name="Panel" type="Panel" parent="UI" unique_id=35561461] visible = false @@ -2080,31 +2151,77 @@ offset_right = 45.0 offset_bottom = -5.0 theme_override_font_sizes/font_size = 12 +[node name="CurrencyLabel" type="Label" parent="UI" unique_id=508512755] +unique_name_in_owner = true +layout_mode = 0 +offset_left = -41.0 +offset_top = -137.0 +offset_right = 43.0 +offset_bottom = -120.375 +theme = ExtResource("22_q7h7c") +theme_override_fonts/font = SubResource("FontVariation_hcndq") +theme_override_font_sizes/font_size = 21 +text = "Currency" +horizontal_alignment = 1 + +[node name="CurrenciesBG" type="Sprite2D" parent="UI" unique_id=400039529] +position = Vector2(-246.24998, -132) +scale = Vector2(0.7450001, 0.44000018) +texture = ExtResource("22_hcndq") + [node name="Currencies" type="VBoxContainer" parent="UI" unique_id=1952407607] layout_mode = 0 -offset_left = -284.0 -offset_top = -159.0 -offset_right = -239.0 -offset_bottom = -103.0 +offset_left = -278.0 +offset_top = -151.0 +offset_right = -182.0 +offset_bottom = -114.0 theme_override_constants/separation = 5 alignment = 1 -[node name="CurrencyLabel" type="Label" parent="UI/Currencies" unique_id=508512755] -unique_name_in_owner = true +[node name="HBoxContainer" type="HBoxContainer" parent="UI/Currencies" unique_id=1028765341] layout_mode = 2 -theme = ExtResource("22_q7h7c") -text = "Currency" -[node name="WoodLabel" type="Label" parent="UI/Currencies" unique_id=173301448] +[node name="RichTextLabel2" type="RichTextLabel" parent="UI/Currencies/HBoxContainer" unique_id=622882040] +clip_contents = false +custom_minimum_size = Vector2(10, 14) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("24_chdjo") +theme_override_font_sizes/normal_font_size = 9 +text = "🪵" +scroll_active = false +autowrap_mode = 0 +autowrap_trim_flags = 0 + +[node name="WoodLabel" type="Label" parent="UI/Currencies/HBoxContainer" unique_id=173301448] unique_name_in_owner = true layout_mode = 2 theme = ExtResource("22_q7h7c") +theme_override_font_sizes/font_size = 18 text = "0" -[node name="StockLabel" type="Label" parent="UI/Currencies" unique_id=1137115173] +[node name="HBoxContainer2" type="HBoxContainer" parent="UI/Currencies" unique_id=231882591] +layout_mode = 2 + +[node name="RichTextLabel" type="RichTextLabel" parent="UI/Currencies/HBoxContainer2" unique_id=248143892] +clip_contents = false +custom_minimum_size = Vector2(10, 14) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_fonts/normal_font = ExtResource("24_chdjo") +theme_override_font_sizes/normal_font_size = 10 +text = "📦" +scroll_active = false +autowrap_mode = 0 +autowrap_trim_flags = 0 + +[node name="StockLabel" type="Label" parent="UI/Currencies/HBoxContainer2" unique_id=1137115173] unique_name_in_owner = true layout_mode = 2 theme = ExtResource("22_q7h7c") +theme_override_font_sizes/font_size = 18 text = "0" [node name="UnlockContainer" type="GridContainer" parent="UI" unique_id=1701514762] @@ -2112,9 +2229,9 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -282.0 -offset_top = 79.0 -offset_right = 242.0 +offset_left = -257.0 +offset_top = 87.0 +offset_right = 217.0 offset_bottom = 115.0 grow_horizontal = 2 grow_vertical = 2 @@ -2128,10 +2245,11 @@ size_flags_vertical = 0 [node name="Timer" type="Label" parent="UI" unique_id=405529286] unique_name_in_owner = true layout_mode = 0 -offset_left = -20.0 +offset_left = -29.0 offset_top = -157.0 -offset_right = 20.0 -offset_bottom = -144.0 +offset_right = 29.0 +offset_bottom = -138.79167 +theme_override_font_sizes/font_size = 23 text = "00:00:00" [node name="GameCompleted" type="Panel" parent="UI" unique_id=1824061781] @@ -2156,6 +2274,7 @@ text = "YOU WIN!" horizontal_alignment = 1 [node name="CompletionTimeLabel" type="Label" parent="UI/GameCompleted" unique_id=1845505160] +unique_name_in_owner = true layout_mode = 0 offset_left = 221.0 offset_top = 211.0 @@ -2183,6 +2302,7 @@ Completion Time" horizontal_alignment = 1 [node name="TextEdit" type="TextEdit" parent="UI/GameCompleted" unique_id=637671853] +unique_name_in_owner = true layout_mode = 0 offset_left = 35.0 offset_top = 277.0 @@ -2192,6 +2312,7 @@ theme = ExtResource("22_q7h7c") placeholder_text = "Your Name (Optional)" [node name="SubmitScoreButton" type="TextureButton" parent="UI/GameCompleted" unique_id=111534642] +unique_name_in_owner = true custom_minimum_size = Vector2(100, 25) layout_mode = 0 offset_left = 171.0 @@ -2221,6 +2342,17 @@ theme = ExtResource("22_q7h7c") text = "Submit Score" horizontal_alignment = 1 +[node name="SubmissionStatusLabel" type="Label" parent="UI/GameCompleted" unique_id=976543210] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 281.0 +offset_top = 277.0 +offset_right = 450.0 +offset_bottom = 304.0 +theme_override_font_sizes/font_size = 12 +horizontal_alignment = 1 +vertical_alignment = 1 + [node name="ContinueButton" type="TextureButton" parent="UI/GameCompleted" unique_id=1202982034] unique_name_in_owner = true custom_minimum_size = Vector2(100, 25) @@ -2252,4 +2384,33 @@ theme = ExtResource("22_q7h7c") text = "Continue Whittling" horizontal_alignment = 1 +[node name="ConfigButton" type="Button" parent="UI" unique_id=2147483647] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 255.0 +offset_top = 134.0 +offset_right = 275.0 +offset_bottom = 153.0 +theme = ExtResource("22_q7h7c") +theme_override_colors/font_color = Color(0.3764706, 0.31764707, 0.16078432, 1) +theme_override_colors/font_pressed_color = Color(0.7882353, 0.36078432, 0.19215687, 1) +theme_override_colors/font_hover_color = Color(0.49803922, 0.4627451, 0.2901961, 1) +theme_override_fonts/font = ExtResource("24_chdjo") +theme_override_font_sizes/font_size = 13 +theme_override_styles/normal = SubResource("StyleBoxEmpty_mjadu") +theme_override_styles/pressed = SubResource("StyleBoxEmpty_k8jaa") +theme_override_styles/hover = SubResource("StyleBoxEmpty_hp34j") +theme_override_styles/disabled = SubResource("StyleBoxEmpty_lxcs1") +theme_override_styles/focus = SubResource("StyleBoxEmpty_hxr5a") +text = "🎵" + +[node name="ConfigPanel" parent="UI" unique_id=281194599 instance=ExtResource("20_config")] +visible = false +layout_mode = 1 +offset_left = -129.0 +offset_top = -132.0 +offset_right = 90.0 +offset_bottom = 81.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_mjadu") + [connection signal="pressed" from="UI/GameCompleted/ContinueButton" to="UI" method="_on_continue_button_pressed"] diff --git a/scenes/scripts/animal.gd b/scenes/scripts/animal.gd new file mode 100644 index 0000000..e739839 --- /dev/null +++ b/scenes/scripts/animal.gd @@ -0,0 +1,79 @@ +@tool +extends Node2D + +@export var animal_type : String: + set(value): + animal_type = value + if is_node_ready(): + _update_sprite() + +@export var flip_horizontal : bool = false: + set(value): + flip_horizontal = value + if is_node_ready(): + _update_sprite() + +@export var show_shavings : bool = false: + set(value): + show_shavings = value + if is_node_ready(): + _update_shavings() + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + _update_sprite() + _update_shavings() + + +func _update_sprite() -> void: + + # Hide all animal sprites first + %Fox.visible = false + %Porcupine.visible = false + %Wolf.visible = false + %Cat.visible = false + %Goose.visible = false + %Frog.visible = false + %Chick.visible = false + %Dog.visible = false + + # Show the appropriate animal based on animal_type + var active_sprite: AnimatedSprite2D + match animal_type: + "Fox": + %Fox.visible = true + active_sprite = %Fox + "Porcupine": + %Porcupine.visible = true + active_sprite = %Porcupine + "Wolf": + %Wolf.visible = true + active_sprite = %Wolf + "Cat": + %Cat.visible = true + active_sprite = %Cat + "Goose": + %Goose.visible = true + active_sprite = %Goose + "Frog": + %Frog.visible = true + active_sprite = %Frog + "Chick": + %Chick.visible = true + active_sprite = %Chick + "Dog": + %Dog.visible = true + active_sprite = %Dog + + # Apply horizontal flip if enabled + if active_sprite: + active_sprite.flip_h = flip_horizontal + + +func _update_shavings() -> void: + %Shavings.visible = show_shavings + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/scenes/scripts/animal.gd.uid b/scenes/scripts/animal.gd.uid new file mode 100644 index 0000000..20884b1 --- /dev/null +++ b/scenes/scripts/animal.gd.uid @@ -0,0 +1 @@ +uid://uhlsvqaaemre diff --git a/scenes/scripts/button.gd b/scenes/scripts/button.gd index 13baf3f..30da171 100644 --- a/scenes/scripts/button.gd +++ b/scenes/scripts/button.gd @@ -1,58 +1,136 @@ extends TextureButton -@onready var label: Label = $CenterContainer/Label # Adjust path to your Label node +@onready var name_label: Label = $CenterContainer/VBoxContainer/NameLabel +@onready var price_label: Label = $CenterContainer/VBoxContainer/PriceLabel -var unlock_id = "" # Store the unlock ID +var unlock_id = -1 # Store the unlock ID +var unlock_description_text = "" # Store the description for custom tooltip func _ready(): - label.visible = false # Hide label initially + name_label.visible = false # Hide label initially + price_label.visible = false adjust_label_font_size() # Connect the pressed signal pressed.connect(_on_button_pressed) + # Connect to currency changes to update button state + Inventory.currency_changed.connect(_on_currency_changed) + # Connect to unlock events to update button state when items are unlocked + Unlocks.item_unlocked.connect(_on_item_unlocked) func setup(unlock_data): # Log.pr("Setting up button for unlock:", unlock_data.unlock_name) unlock_id = unlock_data.unlock_id # Store the ID - if label: - label.visible = false - label.text = unlock_data.unlock_name + " " + str(unlock_data.get_next_rank()) - label.text = label.text + " - " + Global.currency_symbol + str(unlock_data.get_next_cost()) - label.text = label.text + "\n" + unlock_data.get_next_modifiers_string() - #self.disabled = unlock_data.is_unlocked + if name_label and price_label: + name_label.visible = false + price_label.visible = false + update_button_state(unlock_data) adjust_label_font_size() else: - Log.pr("Warning: Label node not found in button.") + Log.pr("Warning: Label nodes not found in button.") + +func update_button_state(unlock_data): + # Store unlock description for custom tooltip + if unlock_data.unlock_description: + unlock_description_text = unlock_data.unlock_description + tooltip_text = unlock_data.unlock_description + + # Check if at max rank + if not unlock_data.can_rank_up(): + self.disabled = true + name_label.text = unlock_data.unlock_name + " (MAX)" + price_label.text = "" + return + + # Build name text - only show rank if it's a scaling unlock + if unlock_data.is_scaling: + name_label.text = unlock_data.unlock_name + " " + str(unlock_data.get_next_rank()) + else: + name_label.text = unlock_data.unlock_name + + # Build price text + price_label.text = Global.currency_symbol + Global.format_number(unlock_data.get_next_cost()) + + # Check if player has enough currency + var cost = unlock_data.get_next_cost() + var current_currency = Inventory.get_currency() + self.disabled = current_currency < cost + +func _on_currency_changed(new_amount: float): + # Update button state when currency changes + if unlock_id >= 0: + var unlock_data = Unlocks.get_unlock_by_id(unlock_id) + if unlock_data: + update_button_state(unlock_data) + +func _on_item_unlocked(): + # Update button state when any item is unlocked (in case this button reached max rank) + if unlock_id >= 0: + var unlock_data = Unlocks.get_unlock_by_id(unlock_id) + if unlock_data: + update_button_state(unlock_data) + adjust_label_font_size() func _on_button_pressed(): # Log.pr("Button pressed, unlocking item:", unlock_id) Unlocks.unlock_item(unlock_id) func adjust_label_font_size(): - if not label: + if not name_label or not price_label: return var available_width = size.x - 10 var available_height = size.y - 10 - # Start with a reasonable font size - var font_size = 32 + + # Calculate font sizes for both labels + # Name label gets 60% of the height, price label gets 40% + var name_height = available_height * 0.6 + var price_height = available_height * 0.4 + + # Start with reasonable font sizes + var name_font_size = 32 + var price_font_size = 24 var min_font_size = 8 - # Get or create a font - var font = label.get_theme_font("font") - # Binary search for the optimal font size - while font_size > min_font_size: - label.add_theme_font_size_override("font_size", font_size) - # Force update and get the actual text size - await get_tree().process_frame - var text_size = font.get_string_size(label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size) - # Check if it fits - if text_size.x <= available_width and text_size.y <= available_height: + + # Get fonts + var name_font = name_label.get_theme_font("font") + var price_font = price_label.get_theme_font("font") + + # Calculate name label font size without applying it + while name_font_size > min_font_size: + var text_size = name_font.get_string_size(name_label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, name_font_size) + if text_size.x <= available_width and text_size.y <= name_height: break - # Reduce font size and try again - font_size -= 1 - label.add_theme_font_size_override("font_size", font_size) - label.visible = true # Show label after resizing is complete + name_font_size -= 1 + + # Calculate price label font size without applying it + while price_font_size > min_font_size: + var text_size = price_font.get_string_size(price_label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, price_font_size) + if text_size.x <= available_width and text_size.y <= price_height: + break + price_font_size -= 1 + + # Apply both font sizes at once + name_label.add_theme_font_size_override("font_size", name_font_size) + price_label.add_theme_font_size_override("font_size", price_font_size) + + name_label.visible = true + price_label.visible = true # Call this function whenever you change the label text func set_label_text(new_text: String): - if label: - label.visible = false # Hide while resizing - label.text = new_text + if name_label: + name_label.visible = false # Hide while resizing + price_label.visible = false + name_label.text = new_text + price_label.text = "" adjust_label_font_size() + +# Override to create custom tooltip with larger font +func _make_custom_tooltip(for_text: String) -> Object: + var tooltip_label = Label.new() + tooltip_label.text = for_text + tooltip_label.add_theme_font_size_override("font_size", 26) + + # Create a panel container for background + var panel = PanelContainer.new() + panel.add_child(tooltip_label) + + return panel diff --git a/scenes/scripts/config_panel.gd b/scenes/scripts/config_panel.gd new file mode 100644 index 0000000..80ee62e --- /dev/null +++ b/scenes/scripts/config_panel.gd @@ -0,0 +1,41 @@ +extends Panel + +@onready var music_toggle: CheckButton = %MusicToggle +@onready var chop_toggle: CheckButton = %ChopToggle +@onready var money_toggle: CheckButton = %MoneyToggle +@onready var close_button: Button = %CloseButton + +func _ready(): + # Initialize toggle states from Global settings + music_toggle.button_pressed = Global.play_background_music + chop_toggle.button_pressed = Global.play_chop_sound + money_toggle.button_pressed = Global.play_money_sound + + # Connect signals + music_toggle.toggled.connect(_on_music_toggled) + chop_toggle.toggled.connect(_on_chop_toggled) + money_toggle.toggled.connect(_on_money_toggled) + close_button.pressed.connect(_on_close_pressed) + + # Start hidden + visible = false + +func _on_music_toggled(enabled: bool): + Global.play_background_music = enabled + var audio_manager = get_node("/root/Audio") + if enabled: + audio_manager.play_background_music() + else: + audio_manager.stop_background_music() + +func _on_chop_toggled(enabled: bool): + Global.play_chop_sound = enabled + +func _on_money_toggled(enabled: bool): + Global.play_money_sound = enabled + +func _on_close_pressed(): + visible = false + +func toggle_visibility(): + visible = !visible diff --git a/scenes/scripts/config_panel.gd.uid b/scenes/scripts/config_panel.gd.uid new file mode 100644 index 0000000..a8d36ed --- /dev/null +++ b/scenes/scripts/config_panel.gd.uid @@ -0,0 +1 @@ +uid://2jm25u1ehlac diff --git a/scenes/scripts/ui_control.gd b/scenes/scripts/ui_control.gd index f94d094..c163777 100644 --- a/scenes/scripts/ui_control.gd +++ b/scenes/scripts/ui_control.gd @@ -8,10 +8,19 @@ extends Control @onready var timer_label : Label = %Timer @onready var game_complete_screen : Panel = %GameCompleted +@onready var completion_time_label : Label = %CompletionTimeLabel @onready var continue_button : TextureButton = %ContinueButton +@onready var config_button : Button = %ConfigButton +@onready var config_panel : Panel = %ConfigPanel +@onready var player_name_input : TextEdit = %TextEdit +@onready var submit_score_button : TextureButton = %SubmitScoreButton +@onready var submission_status_label : Label = %SubmissionStatusLabel var game_timer : Timer var elapsed_time := 0.0 +var current_nonce : String = "" +var bridge = null +var score_submitted := false func _ready(): populate_modifiers_display() @@ -34,6 +43,7 @@ func _ready(): Inventory.currency_changed.connect(_on_currency_changed) Inventory.currency_added.connect(spawn_currency_increase) + Inventory.currency_added.connect(_on_currency_added) Inventory.wood_changed.connect(_on_currency_changed) Inventory.wood_added.connect(spawn_wood_increase) Inventory.stock_added.connect(spawn_stock_increase) @@ -41,17 +51,27 @@ func _ready(): Unlocks.item_unlocked.connect(populate_unlock_buttons) GameManager.currency_goal_met.connect(_on_currency_goal_met) + if config_button: + config_button.pressed.connect(_on_config_button_pressed) + + if submit_score_button: + submit_score_button.pressed.connect(_on_submit_score_button_pressed) + + # Initialize JavaScript bridge for web builds + if OS.has_feature("web"): + bridge = JavaScriptBridge.get_interface("godotBridge") + # get_tree().paused = true func update_currency_label(): - currency_label.text = Global.currency_symbol + " " + str(int(Inventory.get_currency())) + currency_label.text = Global.currency_symbol + Global.format_number(Inventory.get_currency()) func update_wood_label(): - wood_label.text = "W: " + str(int(Inventory.get_wood())) + wood_label.text = Global.format_number(Inventory.get_wood()) func update_stock_label(): - stock_label.text = "S: " + str(int(Inventory.get_stock())) + stock_label.text = Global.format_number(Inventory.get_stock()) func spawn_currency_increase(value, _total): spawn_inventory_change_value(value, _total, "+", Global.currency_symbol, Global.money_color) @@ -64,7 +84,7 @@ func spawn_stock_increase(value, _total): func spawn_inventory_change_value(value, _total, display_sign: String = "+", symbol: String = "", label_color: Color = Color.WHITE): var float_label = Label.new() - float_label.text = display_sign + symbol + str(int(abs(value))) + float_label.text = display_sign + symbol + Global.format_number(abs(value)) float_label.add_theme_font_size_override("font_size", 16) float_label.modulate = label_color @@ -99,10 +119,10 @@ func populate_unlock_buttons(): func populate_modifiers_display(): var modifiers_text = "" - modifiers_text = modifiers_text + "Sale Price: " + Global.currency_symbol + str(Unlocks.get_sale_price_per_item()) + "\n" - modifiers_text = modifiers_text + "Items Produced Per Tick: " + str(Unlocks.get_items_produced_per_tick()) + "\n" - modifiers_text = modifiers_text + "Wood per Click: " + str(Unlocks.get_wood_per_click()) + "\n\n" - modifiers_text = modifiers_text + "Demand: " + str(int(Unlocks.get_sale_demand())) + "\n\n" + modifiers_text = modifiers_text + "Sale Price: " + Global.currency_symbol + Global.format_number(Unlocks.get_sale_price_per_item()) + "\n" + modifiers_text = modifiers_text + "Items Produced Per Tick: " + Global.format_number(Unlocks.get_items_produced_per_tick()) + "\n" + modifiers_text = modifiers_text + "Wood per Click: " + Global.format_number(Unlocks.get_wood_per_click()) + "\n\n" + modifiers_text = modifiers_text + "Demand: " + Global.format_number(Unlocks.get_sale_demand()) + "\n\n" modifiers_text = modifiers_text + "Current Modifiers:\n" for key in Unlocks.current_modifiers.keys(): @@ -129,7 +149,20 @@ func _on_timer_tick(): func _on_currency_goal_met(): Log.pr("Currency goal met!") get_tree().paused = true + completion_time_label.text = format_time(elapsed_time) game_complete_screen.visible = true + score_submitted = false + + # Request nonce from API when game is completed + if bridge != null: + # Disable submit button until nonce is received + submit_score_button.disabled = true + submission_status_label.visible = false + _request_nonce() + else: + # No web bridge available, hide the submit button entirely + submit_score_button.visible = false + submission_status_label.visible = false func format_time(seconds: float) -> String: var total_seconds := int(seconds) @@ -145,3 +178,228 @@ func _on_continue_button_pressed() -> void: Global.game_continue_pressed = true game_complete_screen.visible = false get_tree().paused = false + +func _on_config_button_pressed() -> void: + if config_panel: + config_panel.toggle_visibility() + +func _on_currency_added(_value, _total): + var audio_manager = get_node("/root/Audio") + if audio_manager: + audio_manager.play_money_sound() + +# HIGH SCORE SUBMISSION FUNCTIONS + +func _request_nonce(): + if bridge == null: + return + + # Call JavaScript bridge to request nonce + var result = bridge.requestNonce() + + # Set up polling to check if nonce was received + # (since JS callbacks are async) + var nonce_check_timer = Timer.new() + nonce_check_timer.wait_time = 0.5 + nonce_check_timer.one_shot = false + nonce_check_timer.process_mode = Node.PROCESS_MODE_ALWAYS # Run even when paused + add_child(nonce_check_timer) + + var attempts = 0 + var max_attempts = 20 # 10 seconds total + + nonce_check_timer.timeout.connect(func(): + attempts += 1 + var nonce = _get_nonce_from_js() + + if nonce != null and nonce != "" and nonce != "null": + current_nonce = nonce + # Enable submit button when nonce is ready + submit_score_button.disabled = false + nonce_check_timer.stop() + nonce_check_timer.queue_free() + elif attempts >= max_attempts: + # Failed to get nonce - show error and keep button disabled + submission_status_label.text = "Failed to connect to server" + submission_status_label.modulate = Color(1.0, 0.3, 0.3) # Red + submission_status_label.visible = true + nonce_check_timer.stop() + nonce_check_timer.queue_free() + ) + + nonce_check_timer.start() + +func _get_nonce_from_js() -> String: + if bridge == null: + return "" + + # Try to get the nonce that JavaScript stored + var result = JavaScriptBridge.eval(""" + (function() { + if (window.godotNonce) { + return window.godotNonce; + } + return ''; + })(); + """, true) + + return str(result) if result != null else "" + +func _on_submit_score_button_pressed(): + if score_submitted: + submission_status_label.text = "Score already submitted!" + submission_status_label.modulate = Color(1.0, 0.8, 0.3) # Yellow + submission_status_label.visible = true + return + + if bridge == null or current_nonce == "": + # This shouldn't happen as button should be disabled + return + + # Disable button during submission and show status + submit_score_button.disabled = true + submission_status_label.text = "Submitting..." + submission_status_label.modulate = Color(1.0, 1.0, 1.0) # White + submission_status_label.visible = true + + # Get player name from input and sanitize + var player_name = _sanitize_player_name(player_name_input.text) + if player_name == "": + player_name = "Anonymous" + + # Get completion time in seconds + var completion_time_seconds = int(elapsed_time) + + # Create and encode payload on GDScript side + var encoded_payload = _create_encoded_payload(current_nonce, player_name, completion_time_seconds) + + # Call JavaScript to submit score with pre-encoded payload and nonce + bridge.submitScore(encoded_payload, current_nonce) + + # Poll for submission result + var submit_check_timer = Timer.new() + submit_check_timer.wait_time = 0.5 + submit_check_timer.one_shot = false + submit_check_timer.process_mode = Node.PROCESS_MODE_ALWAYS # Run even when paused + add_child(submit_check_timer) + + var attempts = 0 + var max_attempts = 30 # 15 seconds total + + submit_check_timer.timeout.connect(func(): + attempts += 1 + var result = _get_submission_result_from_js() + + if result.has("completed") and result["completed"]: + submission_status_label.visible = true + if result["success"]: + submission_status_label.text = result.get("message", "Score submitted!") + submission_status_label.modulate = Color(0.5, 1.0, 0.5) # Green + score_submitted = true + + # Show rank if available + if result.has("rank") and result["rank"] > 0: + submission_status_label.text += " (Rank #%d)" % result["rank"] + else: + submission_status_label.text = result.get("message", "Failed to submit") + submission_status_label.modulate = Color(1.0, 0.3, 0.3) # Red + submit_score_button.disabled = false + + submit_check_timer.stop() + submit_check_timer.queue_free() + elif attempts >= max_attempts: + submission_status_label.text = "Submission timeout" + submission_status_label.modulate = Color(1.0, 0.3, 0.3) # Red + submission_status_label.visible = true + submit_score_button.disabled = false + submit_check_timer.stop() + submit_check_timer.queue_free() + ) + + submit_check_timer.start() + +func _get_submission_result_from_js() -> Dictionary: + if bridge == null: + return {} + + var result = JavaScriptBridge.eval(""" + (function() { + if (window.godotSubmissionResult) { + var result = window.godotSubmissionResult; + window.godotSubmissionResult = null; // Clear after reading + return JSON.stringify(result); + } + return '{}'; + })(); + """, true) + + if result != null and result != "": + var json = JSON.new() + var error = json.parse(str(result)) + if error == OK: + return json.data + + return {} + +func _create_encoded_payload(nonce: String, player_name: String, completion_time: int) -> String: + # Create the payload as JSON + var payload = { + "nonce": nonce, + "gameId": "whittling-clicker", # Unique identifier for this game + "playerName": player_name, + "completionTime": completion_time, + "timestamp": Time.get_unix_time_from_system() * 1000 # Convert to milliseconds + } + + var json_string = JSON.stringify(payload) + + # XOR encode with key derived from nonce + var key = "WHITTLING_KEY_" + nonce.substr(0, 8) + var encoded_bytes = _xor_encode(json_string, key) + + # Base64 encode (using raw bytes) + var base64_encoded = Marshalls.raw_to_base64(encoded_bytes) + + return base64_encoded + +func _sanitize_player_name(name: String) -> String: + # Strip leading/trailing whitespace + name = name.strip_edges() + + # Remove control characters and most special characters, keep letters, numbers, spaces, and safe punctuation + var safe_name = "" + for i in range(name.length()): + var c = name[i] + var code = name.unicode_at(i) + + # Allow: letters, numbers, spaces, hyphens, underscores, periods + # Block: control chars, path separators, quotes, angle brackets, etc + if (code >= 48 and code <= 57) or \ + (code >= 65 and code <= 90) or \ + (code >= 97 and code <= 122) or \ + c == " " or c == "-" or c == "_" or c == ".": + safe_name += c + + # Limit length to 50 characters + safe_name = safe_name.substr(0, 50) + + # Remove multiple consecutive spaces + while safe_name.find(" ") != -1: + safe_name = safe_name.replace(" ", " ") + + # Strip again after processing + safe_name = safe_name.strip_edges() + + return safe_name + +func _xor_encode(text: String, key: String) -> PackedByteArray: + var text_bytes = text.to_utf8_buffer() + var key_bytes = key.to_utf8_buffer() + var key_length = key_bytes.size() + var result = PackedByteArray() + + for i in range(text_bytes.size()): + var xor_byte = text_bytes[i] ^ key_bytes[i % key_length] + result.append(xor_byte) + + return result diff --git a/scenes/simulator.tscn b/scenes/simulator.tscn deleted file mode 100644 index d5b2274..0000000 --- a/scenes/simulator.tscn +++ /dev/null @@ -1,124 +0,0 @@ -[gd_scene format=3 uid="uid://br6hgvb4buyji"] - -[ext_resource type="Script" uid="uid://citjokiv6skqi" path="res://scripts/sim_direct.gd" id="1_sim"] - -[node name="Simulator" type="Control" unique_id=1833845714] -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -script = ExtResource("1_sim") - -[node name="MarginContainer" type="MarginContainer" parent="." unique_id=689981813] -layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 -theme_override_constants/margin_left = 20 -theme_override_constants/margin_top = 20 -theme_override_constants/margin_right = 20 -theme_override_constants/margin_bottom = 20 - -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer" unique_id=1425713346] -layout_mode = 2 -theme_override_constants/separation = 15 - -[node name="Title" type="Label" parent="MarginContainer/VBoxContainer" unique_id=1101365395] -layout_mode = 2 -theme_override_font_sizes/font_size = 32 -text = "Unlock Simulator" -horizontal_alignment = 1 - -[node name="StatusPanel" type="PanelContainer" parent="MarginContainer/VBoxContainer" unique_id=21717961] -layout_mode = 2 - -[node name="VBox" type="VBoxContainer" parent="MarginContainer/VBoxContainer/StatusPanel" unique_id=846585479] -layout_mode = 2 -theme_override_constants/separation = 8 - -[node name="StatusLabel" type="Label" parent="MarginContainer/VBoxContainer/StatusPanel/VBox" unique_id=234737032] -layout_mode = 2 -theme_override_font_sizes/font_size = 20 -text = "Status: Initializing..." - -[node name="ProgressLabel" type="Label" parent="MarginContainer/VBoxContainer/StatusPanel/VBox" unique_id=2064314389] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "Progress: 0.0% (0/0)" - -[node name="ProgressBar" type="ProgressBar" parent="MarginContainer/VBoxContainer/StatusPanel/VBox" unique_id=1093115744] -custom_minimum_size = Vector2(0, 30) -layout_mode = 2 -max_value = 1.0 -step = 0.001 -show_percentage = false - -[node name="RateLabel" type="Label" parent="MarginContainer/VBoxContainer/StatusPanel/VBox" unique_id=2006247697] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "Speed: 0.0 combos/sec" - -[node name="ETALabel" type="Label" parent="MarginContainer/VBoxContainer/StatusPanel/VBox" unique_id=300266005] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "ETA: Calculating..." - -[node name="CachePanel" type="PanelContainer" parent="MarginContainer/VBoxContainer" unique_id=242908015] -layout_mode = 2 - -[node name="VBox" type="VBoxContainer" parent="MarginContainer/VBoxContainer/CachePanel" unique_id=1164261399] -layout_mode = 2 -theme_override_constants/separation = 8 - -[node name="CacheTitle" type="Label" parent="MarginContainer/VBoxContainer/CachePanel/VBox" unique_id=615421163] -layout_mode = 2 -theme_override_font_sizes/font_size = 20 -text = "Cache Statistics" - -[node name="CacheHitsLabel" type="Label" parent="MarginContainer/VBoxContainer/CachePanel/VBox" unique_id=1993375767] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "Cache Hits: 0" - -[node name="CacheMissesLabel" type="Label" parent="MarginContainer/VBoxContainer/CachePanel/VBox" unique_id=159876992] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "Cache Misses: 0" - -[node name="CacheRateLabel" type="Label" parent="MarginContainer/VBoxContainer/CachePanel/VBox" unique_id=51938306] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "Hit Rate: 0.0%" - -[node name="CacheSizeLabel" type="Label" parent="MarginContainer/VBoxContainer/CachePanel/VBox" unique_id=2001183562] -layout_mode = 2 -theme_override_font_sizes/font_size = 16 -text = "Cache Entries: 0" - -[node name="ResultsPanel" type="PanelContainer" parent="MarginContainer/VBoxContainer" unique_id=1825974467] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="VBox" type="VBoxContainer" parent="MarginContainer/VBoxContainer/ResultsPanel" unique_id=339315001] -layout_mode = 2 - -[node name="ResultsTitle" type="Label" parent="MarginContainer/VBoxContainer/ResultsPanel/VBox" unique_id=975903988] -layout_mode = 2 -theme_override_font_sizes/font_size = 20 -text = "Results" - -[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/VBoxContainer/ResultsPanel/VBox" unique_id=1950199865] -layout_mode = 2 -size_flags_vertical = 3 - -[node name="ResultsLabel" type="RichTextLabel" parent="MarginContainer/VBoxContainer/ResultsPanel/VBox/ScrollContainer" unique_id=107644773] -layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 -bbcode_enabled = true -text = "Waiting for results..." -fit_content = true diff --git a/scripts/animal_friends_manager.gd b/scripts/animal_friends_manager.gd new file mode 100644 index 0000000..a342d0a --- /dev/null +++ b/scripts/animal_friends_manager.gd @@ -0,0 +1,101 @@ +extends Node + +## Manages the visibility of animal friends in the animal_friends group +## Animals start invisible and are revealed one at a time randomly as ranks are unlocked + +const ANIMAL_FRIENDS_UNLOCK_ID: int = 6 # Forest Friends unlock + +var all_animals: Array[Node] = [] +var hidden_animals: Array[Node] = [] +var revealed_animals: Array[Node] = [] +var last_known_rank: int = 0 + +func _ready() -> void: + # Wait a frame to ensure all nodes are ready + call_deferred("_initialize") + +func _initialize() -> void: + # Get all nodes in the animal_friends group + all_animals = get_tree().get_nodes_in_group("animal_friends") + + if all_animals.is_empty(): + Log.pr("Warning: No animal friends found in the animal_friends group") + return + + # Shuffle the animals to randomize the order they'll be revealed + all_animals.shuffle() + + # Start with all animals hidden + for animal in all_animals: + animal.visible = false + hidden_animals.append(animal) + + Log.pr("Animal Friends Manager initialized with %d animals" % all_animals.size()) + + # Get the Forest Friends unlock to track its rank + var forest_friends = Unlocks.get_unlock_by_id(ANIMAL_FRIENDS_UNLOCK_ID) + if forest_friends: + last_known_rank = forest_friends.current_rank + # Reveal animals based on current rank (for game loads) + _reveal_animals_for_current_rank() + else: + Log.pr("Warning: Forest Friends unlock (ID %d) not found" % ANIMAL_FRIENDS_UNLOCK_ID) + + # Connect to unlock signal to detect when new ranks are purchased + Unlocks.item_unlocked.connect(_on_item_unlocked) + +func _reveal_animals_for_current_rank() -> void: + # Reveal one animal per rank in the Forest Friends unlock + var forest_friends = Unlocks.get_unlock_by_id(ANIMAL_FRIENDS_UNLOCK_ID) + if not forest_friends: + return + + var ranks_to_reveal = forest_friends.current_rank + for i in range(ranks_to_reveal): + if hidden_animals.is_empty(): + break + _reveal_next_animal() + +func _on_item_unlocked() -> void: + # Check if the Forest Friends unlock was ranked up + var forest_friends = Unlocks.get_unlock_by_id(ANIMAL_FRIENDS_UNLOCK_ID) + if not forest_friends: + return + + var current_rank = forest_friends.current_rank + var new_ranks = current_rank - last_known_rank + + if new_ranks > 0: + Log.pr("Forest Friends ranked up! Revealing %d animal friend(s)" % new_ranks) + + # Reveal one animal for each new rank + for i in range(new_ranks): + if hidden_animals.is_empty(): + Log.pr("All animal friends have been revealed!") + break + _reveal_next_animal() + + last_known_rank = current_rank + +func _reveal_next_animal() -> void: + if hidden_animals.is_empty(): + return + + # Take the first animal from the shuffled hidden list (random order) + var animal = hidden_animals.pop_front() + animal.visible = true + revealed_animals.append(animal) + + Log.pr("Revealed animal friend: %s (%d/%d visible)" % [animal.name, revealed_animals.size(), all_animals.size()]) + +## Debug function to manually reveal the next animal +func debug_reveal_next() -> void: + _reveal_next_animal() + +## Debug function to hide all animals +func debug_reset_all() -> void: + for animal in all_animals: + animal.visible = false + hidden_animals = all_animals.duplicate() + revealed_animals.clear() + Log.pr("All animals hidden") diff --git a/scripts/animal_friends_manager.gd.uid b/scripts/animal_friends_manager.gd.uid new file mode 100644 index 0000000..a67e2c5 --- /dev/null +++ b/scripts/animal_friends_manager.gd.uid @@ -0,0 +1 @@ +uid://ewmlbda2adc7 diff --git a/scripts/audio.gd b/scripts/audio.gd index ea268d5..334fe05 100644 --- a/scripts/audio.gd +++ b/scripts/audio.gd @@ -7,16 +7,24 @@ func _ready(): play_background_music() func play_chop_sound(): + if not Global.play_chop_sound: + return ## Pick one of the chopping sounds randomly var chop_sounds = [ - "res://assets/audio/ogg/SFX/Chopping and Mining/chop 1.ogg", - "res://assets/audio/ogg/SFX/Chopping and Mining/chop 2.ogg", - "res://assets/audio/ogg/SFX/Chopping and Mining/chop 3.ogg", - "res://assets/audio/ogg/SFX/Chopping and Mining/chop 4.ogg" + "res://assets/audio/OGG/SFX/chopping/chop1.ogg", + "res://assets/audio/OGG/SFX/chopping/chop2.ogg", + "res://assets/audio/OGG/SFX/chopping/chop3.ogg", + "res://assets/audio/OGG/SFX/chopping/chop4.ogg" ] var random_index = randi() % chop_sounds.size() play_sound_effect(chop_sounds[random_index]) +func play_money_sound(): + if not Global.play_money_sound: + return + # Using a simple coin sound - you can replace with your own sound file + play_sound_effect("res://assets/audio/coin.mp3") + func play_sound_effect(sound_path: String): var sfx_player = AudioStreamPlayer.new() @@ -26,10 +34,22 @@ func play_sound_effect(sound_path: String): sfx_player.play() sfx_player.connect("finished", sfx_player.queue_free) +var music_player: AudioStreamPlayer = null + func play_background_music(): - var music_player = AudioStreamPlayer.new() + if not Global.play_background_music: + return + if music_player: + return # Already playing + music_player = AudioStreamPlayer.new() music_player.stream = load("res://assets/audio/background_music.ogg") music_player.volume_db = -10 # Set volume to a comfortable level music_player.autoplay = true add_child(music_player) music_player.play() + +func stop_background_music(): + if music_player: + music_player.stop() + music_player.queue_free() + music_player = null diff --git a/scripts/globals.gd b/scripts/globals.gd index b58e330..9d08dac 100644 --- a/scripts/globals.gd +++ b/scripts/globals.gd @@ -2,6 +2,8 @@ extends Node # SETTINGS var play_background_music: bool = true +var play_chop_sound: bool = true +var play_money_sound: bool = false var game_continue_pressed : bool = false # STRINGS @@ -13,7 +15,7 @@ var wood_color: Color = Color(0.95, 0.6, 0.35) # Light pumpkin orange (autumn le var stock_color: Color = Color(0.6, 0.75, 0.95) # Light periwinkle blue (clear autumn sky) # GAMEPLAY VALUES -var target_currency: float = 1000000 +var target_currency: float = 100 var base_sale_price: float = 30 var base_wood_respawn: float = 5 # seconds var wood_per_click: float = 5 @@ -30,3 +32,17 @@ var autowood_unlock_id: int = 7 var premium_crafts_unlock_id: int = 8 var reputation_unlock_id: int = 9 + +# FORMAT NUMBERS WITH COMMAS FOR DISPLAY +func format_number(value: float) -> String: + var num_str = str(int(value)) + var result = "" + var length = num_str.length() + + for i in range(length): + result += num_str[i] + var remaining = length - i - 1 + if remaining > 0 and remaining % 3 == 0: + result += "," + + return result diff --git a/scripts/sim_cached.gd b/scripts/sim_cached.gd deleted file mode 100644 index a719385..0000000 --- a/scripts/sim_cached.gd +++ /dev/null @@ -1,931 +0,0 @@ -class_name UnlockSimulatorCached -extends Control - -# CACHED VERSION - Uses aggressive chunk-based caching for 10-100x speedup - -# Load the actual game resources -var unlock_collection: UnlockDataCollection = load("res://resources/UnlockData.tres") -var inventory_resource: InventoryResource = load("res://resources/InventoryData.tres") - -# Results tracking -var all_results: Array[Dictionary] = [] -var results_mutex: Mutex = Mutex.new() - -# Chunk-based caching for intermediate simulation states -# Key: "unlock_id:rank,..." sorted string -# Value: {cache_key, ticks, currency, wood, stock, current_ranks, modifiers} -var simulation_cache: Dictionary = {} -var cache_mutex: Mutex = Mutex.new() - -# Global unlock struct cache (build once, clone per simulation) -var global_unlock_structs: Array[Dictionary] = [] -var global_unlock_structs_mutex: Mutex = Mutex.new() -var unlock_structs_initialized: bool = false - -# Manual thread pool -var num_threads: int = 14 # Increase this for more CPU usage -var threads: Array[Thread] = [] -var task_queue: Array[Dictionary] = [] -var queue_mutex: Mutex = Mutex.new() -var completed_count: int = 0 -var completed_mutex: Mutex = Mutex.new() -var active_threads: int = 0 -var threads_done: bool = false - -# Pre-calculated cost arrays for faster lookup - OPTIMIZATION -var cost_cache: Dictionary = {} - -var start_time: int = 0 -var total_combinations: int = 0 -var last_progress_time: int = 0 -var monitoring_active: bool = false -var cache_hits: int = 0 -var cache_misses: int = 0 - -# UI References -@onready var status_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/StatusLabel -@onready var progress_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/ProgressLabel -@onready var progress_bar = $MarginContainer/VBoxContainer/StatusPanel/VBox/ProgressBar -@onready var rate_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/RateLabel -@onready var eta_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/ETALabel -@onready var cache_hits_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheHitsLabel -@onready var cache_misses_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheMissesLabel -@onready var cache_rate_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheRateLabel -@onready var cache_size_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheSizeLabel -@onready var results_label = $MarginContainer/VBoxContainer/ResultsPanel/VBox/ScrollContainer/ResultsLabel - -func _ready(): - GameManager.tick.stop() - print("=== CACHED Unlock Simulator Started ===") - print("Using aggressive chunk-based caching for 10-100x speedup") - var cpu_count = OS.get_processor_count() - print("CPU cores detected: %d" % cpu_count) - print("Creating %d worker threads (adjust num_threads variable for more/less)" % num_threads) - - # Update UI - status_label.text = "Status: Starting cached simulation..." - results_label.text = "[b]CACHED Unlock Simulator Started[/b]\n\nCPU cores: %d\nWorker threads: %d\n\nGenerating combinations..." % [cpu_count, num_threads] - - run_comprehensive_test() - -func _process(_delta): - if monitoring_active: - # Only update progress once per second - var current_time = Time.get_ticks_msec() - if current_time - last_progress_time >= 1000: - last_progress_time = current_time - update_progress() - -func update_progress(): - """Update progress display""" - var current_count = 0 - completed_mutex.lock() - current_count = completed_count - completed_mutex.unlock() - - # Check if all work is complete - if current_count >= total_combinations: - monitoring_active = false - finish_processing() - return - - var percent = float(current_count) / total_combinations * 100.0 - var elapsed = (Time.get_ticks_msec() - start_time) / 1000.0 - var rate = current_count / elapsed if elapsed > 0 else 0 - var eta_seconds = (total_combinations - current_count) / rate if rate > 0 else 0 - - # Calculate cache hit rate - var total_cache_checks = cache_hits + cache_misses - var cache_hit_rate = (float(cache_hits) / total_cache_checks * 100.0) if total_cache_checks > 0 else 0.0 - - # Format ETA - var eta_str = "" - if eta_seconds > 0: - var eta_minutes = int(eta_seconds) / 60 - var eta_secs = int(eta_seconds) % 60 - if eta_minutes > 0: - eta_str = "%dm %ds" % [eta_minutes, eta_secs] - else: - eta_str = "%ds" % eta_secs - else: - eta_str = "calculating..." - - print("Progress: %.1f%% (%d/%d) - %.1f combos/sec - Cache: %.1f%% hits - ETA: %s" % [ - percent, current_count, total_combinations, rate, cache_hit_rate, eta_str - ]) - - # Update UI - status_label.text = "Status: Running simulation..." - progress_label.text = "Progress: %.1f%% (%d/%d)" % [percent, current_count, total_combinations] - progress_bar.value = percent / 100.0 - rate_label.text = "Speed: %.1f combos/sec" % rate - eta_label.text = "ETA: %s" % eta_str - - # Update cache stats - cache_hits_label.text = "Cache Hits: %d" % cache_hits - cache_misses_label.text = "Cache Misses: %d" % cache_misses - cache_rate_label.text = "Hit Rate: %.1f%%" % cache_hit_rate - cache_mutex.lock() - cache_size_label.text = "Cache Entries: %d" % simulation_cache.size() - cache_mutex.unlock() - -func worker_thread(thread_id: int): - """Worker thread function that pulls tasks from the queue""" - # Local batch storage to reduce mutex contention - OPTIMIZATION - var local_results: Array[Dictionary] = [] - var local_count: int = 0 - var batch_size: int = 10 # Process 10 before syncing - - while true: - # Get next task from queue - var task_data = null - queue_mutex.lock() - if task_queue.size() > 0: - task_data = task_queue.pop_front() - queue_mutex.unlock() - - # If no more tasks, flush results and exit - if task_data == null: - if local_results.size() > 0: - results_mutex.lock() - all_results.append_array(local_results) - results_mutex.unlock() - - # CRITICAL FIX: Update completed count when flushing final batch - completed_mutex.lock() - completed_count += local_results.size() - completed_mutex.unlock() - break - - # Process the task - var result = simulate_rank_combination_pure(task_data.combo, task_data.unlock_data, 1000000) - - # Store in local batch - local_results.append(result) - local_count += 1 - - # Flush batch periodically to reduce mutex contention - if local_results.size() >= batch_size: - results_mutex.lock() - all_results.append_array(local_results) - results_mutex.unlock() - - # CRITICAL FIX: Update progress counter with mutex protection - completed_mutex.lock() - completed_count += local_results.size() - completed_mutex.unlock() - - local_results.clear() - local_count = 0 - -func get_cache_key(current_ranks: Dictionary) -> String: - """Generate a cache key from current unlock ranks""" - var sorted_keys = current_ranks.keys() - sorted_keys.sort() - var key_parts = [] - for k in sorted_keys: - key_parts.append(str(k) + ":" + str(current_ranks[k])) - return ",".join(key_parts) - -func try_load_best_prefix_from_cache(rank_targets: Dictionary) -> Variant: - """Balanced cache lookup - fast with good coverage (~10-15 lookups)""" - - cache_mutex.lock() - - # Try exact match first - var full_key = get_cache_key(rank_targets) - if simulation_cache.has(full_key): - cache_hits += 1 - var result = simulation_cache[full_key] - cache_mutex.unlock() - return result - - # Sort unlock IDs for consistent ordering - var unlock_ids = rank_targets.keys() - unlock_ids.sort() - var num_unlocks = unlock_ids.size() - - var best_match = null - var best_rank_sum = 0 - - # STRATEGY: Try progressively shorter prefixes by dropping unlocks from the END - # This is the most common pattern: {1,2,3,4,5} → {1,2,3,4} → {1,2,3} → {1,2} → {1} - # Covers 80%+ of cache reuse because combinations are generated in sorted order - - for prefix_len in range(num_unlocks - 1, 0, -1): - var subset = {} - for i in range(prefix_len): - subset[unlock_ids[i]] = rank_targets[unlock_ids[i]] - - var key = get_cache_key(subset) - if simulation_cache.has(key): - var cached_entry = simulation_cache[key] - var rank_sum = 0 - for r in cached_entry.current_ranks.values(): - rank_sum += r - - # Keep best match (longest prefix) - if rank_sum > best_rank_sum: - best_match = cached_entry - best_rank_sum = rank_sum - # Early exit if we found a substantial match - if prefix_len >= num_unlocks - 2: - break - - if best_match != null: - cache_hits += 1 - else: - cache_misses += 1 - cache_mutex.unlock() - - return best_match - -func should_cache_state(current_ranks: Dictionary, targets_remaining: int) -> bool: - """Decide if this state is worth caching""" - # Don't cache if all targets reached - if targets_remaining == 0: - return false - - # Cache aggressively for early states - var total_ranks = 0 - var active_unlocks = 0 - - for rank in current_ranks.values(): - if rank > 0: - total_ranks += rank - active_unlocks += 1 - - # Cache if: multiple unlocks active OR significant progress on one - return (active_unlocks >= 2) or (total_ranks >= 2) - -func simulate_rank_combination_pure(rank_targets: Dictionary, unlock_data_array: Array, max_ticks: int, track_purchases: bool = false) -> Dictionary: - """Optimized pure simulation function with struct-based unlocks""" - var currency: float = 0.0 - var stock: float = 0.0 - var wood: float = 0.0 - - # Purchase tracking (only enabled for top results) - var purchases: Array[Dictionary] = [] - - # GLOBAL STRUCT CACHE - Build once, clone per simulation - # This avoids rebuilding cost/effect tables for every simulation - var unlocks: Array[Dictionary] = [] - var unlock_by_id: Dictionary = {} - - if not unlock_structs_initialized: - global_unlock_structs_mutex.lock() - if not unlock_structs_initialized: # Double-check pattern - for unlock_data in unlock_data_array: - var base_mods = unlock_data.base_modifiers - - # Pre-calculate cost table for first 20 ranks (avoid pow() in hot loop) - var cost_table: Array[float] = [] - if unlock_data.is_scaling: - # Use cost_ladder if defined, otherwise use exponential scaling - if unlock_data.has("cost_ladder") and unlock_data.cost_ladder.size() > 0: - # Use fixed cost ladder - for cost in unlock_data.cost_ladder: - cost_table.append(float(cost)) - # Fill remaining slots with last cost for safety - while cost_table.size() < 21: - cost_table.append(cost_table[cost_table.size() - 1]) - else: - # Fallback to exponential scaling - var base_cost_float = float(unlock_data.base_cost) - var mult = unlock_data.cost_scaling_multiplier - for r in range(21): # Pre-calc ranks 0-20 - cost_table.append(base_cost_float * pow(mult, r)) - else: - cost_table.append(float(unlock_data.base_cost)) - - # Pre-calculate effect scale factors for first 20 ranks - var effect_scale_table: Array[float] = [] - var effect_mult = unlock_data.effect_scaling_multiplier - for r in range(21): - if r == 0: - effect_scale_table.append(0.0) # No effect at rank 0 - elif r == 1: - effect_scale_table.append(1.0) # Base effect at rank 1 - else: - effect_scale_table.append(pow(effect_mult, r - 1)) - - var unlock_struct = { - "id": unlock_data.unlock_id, - "name": unlock_data.unlock_name, - "base_cost": unlock_data.base_cost, - "is_scaling": unlock_data.is_scaling, - "max_rank": unlock_data.max_rank, - "cost_multiplier": unlock_data.cost_scaling_multiplier, - "effect_multiplier": unlock_data.effect_scaling_multiplier, - "base_mods": base_mods, - "cost_table": cost_table, # Pre-calculated costs - "effect_scale_table": effect_scale_table, # Pre-calculated effect scales - # Pre-calculate whether this unlock affects each modifier (avoids string lookups) - "affects_sale_price": base_mods.has("sale_price_modifier"), - "affects_efficiency": base_mods.has("efficiency_modifier"), - "affects_wood_per_click": base_mods.has("wood_per_click_modifier"), - "affects_purchase_rate": base_mods.has("purchase_rate_modifier"), - "affects_autowood": base_mods.has("autowood_modifier"), - "is_multicraft": base_mods.has("multicraft_increase_modifier"), - # Cache base modifier values to avoid dictionary lookups - "sale_price_value": base_mods.get("sale_price_modifier", 1.0), - "efficiency_value": base_mods.get("efficiency_modifier", 1.0), - "wood_per_click_value": base_mods.get("wood_per_click_modifier", 1.0), - "purchase_rate_value": base_mods.get("purchase_rate_modifier", 1.0), - "autowood_value": base_mods.get("autowood_modifier", 0.0) - } - global_unlock_structs.append(unlock_struct) - - unlock_structs_initialized = true - global_unlock_structs_mutex.unlock() - - # Clone structs for this simulation (fast shallow copy) - for template in global_unlock_structs: - var unlock = template.duplicate(false) # Shallow copy - unlock.current_rank = 0 # Reset rank for this simulation - unlocks.append(unlock) - unlock_by_id[unlock.id] = unlock - - var ticks: int = 0 - # Removed purchases array - it's only needed for debug output and slows down simulation - - # Track how many targets still need to be reached - OPTIMIZATION - var targets_remaining: int = 0 - var current_ranks: Dictionary = {} - var active_unlock_ids: Array = [] # Only check unlocks that haven't reached target yet - for unlock_id in rank_targets.keys(): - current_ranks[unlock_id] = 0 - targets_remaining += rank_targets[unlock_id] - active_unlock_ids.append(unlock_id) - - # Modifiers as individual variables for faster access - MAJOR OPTIMIZATION - var sale_price_mod: float = 1.0 - var efficiency_mod: float = 1.0 - var wood_per_click_mod: float = 1.0 - var purchase_rate_mod: float = 1.0 - var autowood_mod: float = 0.0 - var multicraft_rank: int = 0 - - var wholesale_unlocked: bool = false - - # Pre-calculate constants - var wood_per_click_base: float = Global.wood_per_click - var cost_per_whittle: float = Global.cost_per_whittle - var base_sale_price: float = Global.base_sale_price - var base_purchase_rate: float = Global.base_purchase_rate - var wholesale_id: int = Global.wholesale_unlock_id - var wholesale_size: float = Global.wholesale_bundle_size - var wholesale_mult: float = Global.wholesale_discount_multiplier - - # CACHE LOOKUP: Try to load from cached intermediate state - # NOTE: Disable cache when tracking purchases to ensure all purchases are recorded - var cached_state = null - if not track_purchases: - cached_state = try_load_best_prefix_from_cache(rank_targets) - - if cached_state != null: - # Restore full state from cache - ticks = cached_state.ticks - currency = cached_state.currency - stock = cached_state.stock - wood = cached_state.wood - - # Restore modifiers - sale_price_mod = cached_state.modifiers.sale_price_mod - efficiency_mod = cached_state.modifiers.efficiency_mod - wood_per_click_mod = cached_state.modifiers.wood_per_click_mod - purchase_rate_mod = cached_state.modifiers.purchase_rate_mod - autowood_mod = cached_state.modifiers.autowood_mod - multicraft_rank = cached_state.modifiers.multicraft_rank - wholesale_unlocked = cached_state.modifiers.wholesale_unlocked - - # Restore unlock ranks - for unlock_id in cached_state.current_ranks.keys(): - if unlock_by_id.has(unlock_id): - unlock_by_id[unlock_id].current_rank = cached_state.current_ranks[unlock_id] - current_ranks[unlock_id] = cached_state.current_ranks[unlock_id] - - # Recalculate targets_remaining and active_unlock_ids - targets_remaining = 0 - active_unlock_ids.clear() - for unlock_id in rank_targets.keys(): - if not current_ranks.has(unlock_id): - current_ranks[unlock_id] = 0 - var remaining = rank_targets[unlock_id] - current_ranks[unlock_id] - if remaining > 0: - targets_remaining += remaining - active_unlock_ids.append(unlock_id) - - # PRE-CALCULATE all next costs to avoid repeated lookups in main loop - var next_costs: Array[float] = [] - next_costs.resize(active_unlock_ids.size()) - - for i in range(active_unlock_ids.size()): - var unlock = unlock_by_id[active_unlock_ids[i]] - var current_rank: int = unlock.current_rank - if current_rank < unlock.cost_table.size(): - next_costs[i] = unlock.cost_table[current_rank] - else: - next_costs[i] = unlock.base_cost * pow(unlock.cost_multiplier, current_rank) - - while ticks < max_ticks: - # Find cheapest affordable unlock using pre-calculated costs - var cheapest_unlock_id: int = -1 - var cheapest_cost: float = INF - var cheapest_unlock = null - var cheapest_index: int = -1 - - if targets_remaining > 0: - for i in range(active_unlock_ids.size()): - if next_costs[i] < cheapest_cost and currency >= next_costs[i]: - cheapest_cost = next_costs[i] - cheapest_unlock_id = active_unlock_ids[i] - cheapest_unlock = unlock_by_id[cheapest_unlock_id] - cheapest_index = i - - # If we can't afford anything and all targets are met, skip to earning 1M - if cheapest_unlock == null and targets_remaining == 0: - if currency >= 1000000.0: - break - # Skip ahead: calculate ticks needed to reach 1M currency - # Use current production rate to estimate - var currency_needed = 1000000.0 - currency - var price_per_item = base_sale_price * sale_price_mod - var items_per_tick = max(1.0, floor(base_purchase_rate * purchase_rate_mod)) - var revenue_per_tick = items_per_tick * price_per_item - - if revenue_per_tick > 0: - var ticks_needed = int(ceil(currency_needed / revenue_per_tick)) - ticks += ticks_needed - currency += revenue_per_tick * ticks_needed - break - - # Purchase the cheapest unlock if found - if cheapest_unlock != null: - currency -= cheapest_cost - cheapest_unlock.current_rank += 1 - current_ranks[cheapest_unlock_id] += 1 - targets_remaining -= 1 - - # Update wholesale cache - if cheapest_unlock_id == wholesale_id: - wholesale_unlocked = true - - # OPTIMIZED modifier update - use ratio instead of recalculating from scratch - var rank: int = cheapest_unlock.current_rank - var prev_rank: int = rank - 1 - - if cheapest_unlock.is_multicraft: - multicraft_rank = rank - - # Get scale factors from pre-calculated tables - var old_scale: float = cheapest_unlock.effect_scale_table[prev_rank] if prev_rank < cheapest_unlock.effect_scale_table.size() else 0.0 - var new_scale: float = cheapest_unlock.effect_scale_table[rank] if rank < cheapest_unlock.effect_scale_table.size() else pow(cheapest_unlock.effect_multiplier, rank - 1) - - # Apply incremental changes using ratio - if cheapest_unlock.affects_sale_price: - var base_bonus: float = cheapest_unlock.sale_price_value - 1.0 - var old_mult: float = 1.0 + base_bonus * old_scale - var new_mult: float = 1.0 + base_bonus * new_scale - sale_price_mod = sale_price_mod * (new_mult / old_mult) - - if cheapest_unlock.affects_efficiency: - var base_bonus: float = cheapest_unlock.efficiency_value - 1.0 - var old_mult: float = 1.0 + base_bonus * old_scale - var new_mult: float = 1.0 + base_bonus * new_scale - efficiency_mod = efficiency_mod * (new_mult / old_mult) - - if cheapest_unlock.affects_wood_per_click: - var base_bonus: float = cheapest_unlock.wood_per_click_value - 1.0 - var old_mult: float = 1.0 + base_bonus * old_scale - var new_mult: float = 1.0 + base_bonus * new_scale - wood_per_click_mod = wood_per_click_mod * (new_mult / old_mult) - - if cheapest_unlock.affects_purchase_rate: - var base_bonus: float = cheapest_unlock.purchase_rate_value - 1.0 - var old_mult: float = 1.0 + base_bonus * old_scale - var new_mult: float = 1.0 + base_bonus * new_scale - purchase_rate_mod = purchase_rate_mod * (new_mult / old_mult) - - if cheapest_unlock.affects_autowood: - autowood_mod = autowood_mod - cheapest_unlock.autowood_value * prev_rank + cheapest_unlock.autowood_value * rank - - # Track purchase if enabled - if track_purchases: - if purchases.size() == 0: - print("DEBUG: First purchase being tracked!") - purchases.append({ - "unlock_id": cheapest_unlock_id, - "unlock_name": cheapest_unlock.name, - "rank": rank, - "cost": cheapest_cost, - "tick": ticks, - "currency_after": currency - }) - - # Update next cost for this unlock or remove from active list - if current_ranks[cheapest_unlock_id] >= rank_targets[cheapest_unlock_id]: - # Target reached - swap with last element and shrink array - var last_idx = active_unlock_ids.size() - 1 - if cheapest_index != last_idx: - active_unlock_ids[cheapest_index] = active_unlock_ids[last_idx] - next_costs[cheapest_index] = next_costs[last_idx] - active_unlock_ids.resize(last_idx) - next_costs.resize(last_idx) - else: - # Update cost for next rank - var new_rank = cheapest_unlock.current_rank - if new_rank < cheapest_unlock.cost_table.size(): - next_costs[cheapest_index] = cheapest_unlock.cost_table[new_rank] - else: - next_costs[cheapest_index] = cheapest_unlock.base_cost * pow(cheapest_unlock.cost_multiplier, new_rank) - - # Removed purchase tracking for performance - only track in debug mode if needed - # Don't append to purchases array on every purchase - - # CACHE INSERTION: Cache this state if valuable - if should_cache_state(current_ranks, targets_remaining): - var cache_key = get_cache_key(current_ranks) - - cache_mutex.lock() - if not simulation_cache.has(cache_key): - simulation_cache[cache_key] = { - "cache_key": cache_key, - "ticks": ticks, - "currency": currency, - "stock": stock, - "wood": wood, - "current_ranks": current_ranks.duplicate(), - "modifiers": { - "sale_price_mod": sale_price_mod, - "efficiency_mod": efficiency_mod, - "wood_per_click_mod": wood_per_click_mod, - "purchase_rate_mod": purchase_rate_mod, - "autowood_mod": autowood_mod, - "multicraft_rank": multicraft_rank, - "wholesale_unlocked": wholesale_unlocked - } - } - cache_mutex.unlock() - - # Simulate one tick - HEAVILY OPTIMIZED - - # 1. Generate wood - var wood_per_click_modified = wood_per_click_base * wood_per_click_mod - - # Manual clicks based on tick range (pre-calculate to avoid repeated conditions) - var manual_clicks: float = 1.0 if ticks < 120 else (0.5 if ticks < 300 else (0.25 if (ticks < 600 and autowood_mod < 0.2) else 0.0)) - - # Total wood generation - var wood_gen: float = manual_clicks * wood_per_click_modified - if autowood_mod > 0.0: - wood_gen += max(wood_per_click_modified * autowood_mod, 1.0) - wood += wood_gen - - # 2. Whittle wood into stock - MATCHES tick_process.gd:19-32 - # Base whittling action (always happens once) - var multicraft_actions = 1 + multicraft_rank # 1 base + multicraft ranks - - # Each whittle action: items_produced_per_tick = cost_per_whittle * efficiency_modifier - var items_per_whittle = cost_per_whittle * efficiency_mod - - for action in range(multicraft_actions): - if wood >= 1: # Need at least 1 wood to whittle - # How much wood needed for this whittle (matches tick_process.gd:63-65) - var wood_needed = ceil(items_per_whittle) - var wood_to_use = min(wood, wood_needed) - var items_produced = wood_to_use # 1 wood = 1 item always - - wood -= wood_to_use - stock += items_produced - else: - break # Not enough wood for more whittle actions - - # 3. Sell stock for currency - MATCHES tick_process.gd:34-58 - var price_per_item = base_sale_price * sale_price_mod - - # 3a. Wholesale selling (if unlocked) - matches tick_process.gd:36-42 - # Sell ALL possible 100-item bundles at 1.2x price - if wholesale_unlocked: - while stock >= wholesale_size: - stock -= wholesale_size - currency += wholesale_size * price_per_item * wholesale_mult - - # 3b. Regular selling - matches tick_process.gd:45-58 - if stock > 0: - var purchase_rate = base_purchase_rate * purchase_rate_mod - var max_stock_to_sell = floor(purchase_rate) - # Always sell at least 1, up to the max - var actual_stock_to_sell = min(stock, max(1.0, max_stock_to_sell)) - stock -= actual_stock_to_sell - currency += actual_stock_to_sell * price_per_item - - ticks += 1 - - var success = currency >= 1000000.0 - - var result = { - "rank_targets": rank_targets, - "success": success, - "ticks": ticks if success else -1, - "final_currency": currency, - "time_formatted": format_time(ticks) if success else "Failed" - } - - # Include purchase timeline if tracking was enabled - if track_purchases: - result["purchases"] = purchases - print("DEBUG: track_purchases=true, purchases.size()=%d" % purchases.size()) - - return result - - -func format_time(ticks: int) -> String: - var seconds = ticks - var minutes = seconds / 60 - var hours = minutes / 60 - - if hours > 0: - return "%dh %dm %ds" % [hours, minutes % 60, seconds % 60] - elif minutes > 0: - return "%dm %ds" % [minutes, seconds % 60] - else: - return "%ds" % seconds - -func generate_all_combinations(unlimited_scaling_cap: int = 5) -> Array[Dictionary]: - """Generate combinations for ALL unlocks dynamically, respecting max_ranks from resource file - - Args: - unlimited_scaling_cap: Maximum rank to test for unlocks with unlimited scaling (default: 5) - Lower values = faster testing, higher = more comprehensive - Cap=3: ~13K combos (~28 sec) | Cap=5: ~47K combos (~93 sec) - Cap=7: ~111K combos (~3.7min) | Cap=10: ~287K combos (~9.6min) - """ - var combinations: Array[Dictionary] = [] - - # Build constraint list from resource file - var unlock_constraints = [] - for unlock in unlock_collection.unlocks: - var max_rank: int - if unlock.max_rank > 0: - max_rank = unlock.max_rank - elif not unlock.is_scaling: - max_rank = 1 # One-shot unlocks - else: - max_rank = unlimited_scaling_cap # Configurable cap for unlimited scaling - - unlock_constraints.append({ - "id": unlock.unlock_id, - "name": unlock.unlock_name, - "max_rank": max_rank - }) - - print("\n=== Generating Combinations ===") - print("Reading from resource file: %d unlocks" % unlock_constraints.size()) - for c in unlock_constraints: - print(" - %s (ID %d): 0-%d ranks" % [c.name, c.id, c.max_rank]) - - # Recursive generation - _generate_combinations_recursive(unlock_constraints, 0, {}, combinations) - - print("Generated %d total combinations" % combinations.size()) - return combinations - -func _generate_combinations_recursive(constraints: Array, index: int, current: Dictionary, output: Array): - """Recursively generate all valid combinations""" - if index >= constraints.size(): - # Skip all-zeros combination - if current.size() > 0: - output.append(current.duplicate()) - return - - var constraint = constraints[index] - for rank in range(constraint.max_rank + 1): - if rank > 0: - current[constraint.id] = rank - - _generate_combinations_recursive(constraints, index + 1, current, output) - - if rank > 0: - current.erase(constraint.id) - -func serialize_unlock_data() -> Array: - """Convert unlock collection to serializable data for threads""" - var unlock_data = [] - for unlock in unlock_collection.unlocks: - unlock_data.append({ - "unlock_id": unlock.unlock_id, - "unlock_name": unlock.unlock_name, - "base_cost": unlock.base_cost, - "is_scaling": unlock.is_scaling, - "max_rank": unlock.max_rank, - "cost_scaling_multiplier": unlock.cost_scaling_multiplier, - "effect_scaling_multiplier": unlock.effect_scaling_multiplier, - "cost_ladder": unlock.cost_ladder.duplicate() if unlock.cost_ladder.size() > 0 else [], - "base_modifiers": unlock.base_modifiers.duplicate() - }) - return unlock_data - -func run_comprehensive_test(): - """Test all combinations dynamically generated from resource file""" - print("\n=== Available Unlocks ===") - for unlock in unlock_collection.unlocks: - var max_rank_str = str(unlock.max_rank) if unlock.max_rank > 0 else "unlimited" - print("ID: %d | %s | Base Cost: %d | Scaling: %s | Max Rank: %s" % [ - unlock.unlock_id, - unlock.unlock_name, - unlock.base_cost, - "Yes" if unlock.is_scaling else "No", - max_rank_str - ]) - print(" Modifiers: ", unlock.base_modifiers) - - print("\n=== Global Constants ===") - print("Base Sale Price: %s" % Global.base_sale_price) - print("Base Purchase Rate: %s" % Global.base_purchase_rate) - print("Cost Per Whittle: %s" % Global.cost_per_whittle) - - # Serialize unlock data for threads - var unlock_data = serialize_unlock_data() - - # CACHE WARMUP: Pre-populate cache with common single-unlock states - print("\n=== Cache Warmup ===") - print("Pre-populating cache with common prefixes...") - for unlock in unlock_collection.unlocks: - var max_warmup_rank = 3 - if unlock.max_rank > 0: - max_warmup_rank = min(unlock.max_rank, 3) - - for rank in range(1, max_warmup_rank + 1): - var warmup_target = {unlock.unlock_id: rank} - simulate_rank_combination_pure(warmup_target, unlock_data, 1000000) - - print("Cache warmup complete. Cache size: %d entries" % simulation_cache.size()) - - # Generate all combinations (configurable cap for unlimited scaling) - var unlimited_cap = 5 # Adjust this to test more/fewer ranks: 3=fast, 5=balanced, 7+=comprehensive - print("\n=== Generation Settings ===") - print("Unlimited scaling cap: %d ranks" % unlimited_cap) - var combinations = generate_all_combinations(unlimited_cap) - total_combinations = combinations.size() - print("\n=== Testing %d Combinations ===" % total_combinations) - - # Fill task queue - task_queue.clear() - for combo in combinations: - task_queue.append({ - "combo": combo, - "unlock_data": unlock_data - }) - - # Reset counters - completed_count = 0 - all_results.clear() - threads_done = false - start_time = Time.get_ticks_msec() - last_progress_time = start_time - monitoring_active = true - - # Create and start threads - print("Starting %d worker threads..." % num_threads) - for i in range(num_threads): - var thread = Thread.new() - thread.start(worker_thread.bind(i)) - threads.append(thread) - - print("All threads started, processing...") - -func finish_processing(): - """Called when all processing is complete""" - print("\nAll combinations complete! Waiting for threads to finish...") - - # Wait for all threads to finish - for thread in threads: - thread.wait_to_finish() - threads.clear() - threads_done = true - - print("All threads finished. Processing results...") - - var total_time = (Time.get_ticks_msec() - start_time) / 1000.0 - - # SAFETY CHECK: Verify result count matches - results_mutex.lock() - var actual_results = all_results.size() - results_mutex.unlock() - - if actual_results != total_combinations: - print("WARNING: Result count mismatch! Expected %d, got %d" % [total_combinations, actual_results]) - print("This indicates a threading issue where some results weren't flushed") - - # Print results - print("\n=== RESULTS ===") - print("Total time: %.1f seconds" % total_time) - print("Total combinations tested: %d (expected %d)" % [actual_results, total_combinations]) - - # Cache statistics - var total_cache_checks = cache_hits + cache_misses - var cache_hit_rate = (float(cache_hits) / total_cache_checks * 100.0) if total_cache_checks > 0 else 0.0 - cache_mutex.lock() - var cache_size = simulation_cache.size() - cache_mutex.unlock() - print("\n=== CACHE STATISTICS ===") - print("Cache hits: %d" % cache_hits) - print("Cache misses: %d" % cache_misses) - print("Hit rate: %.1f%%" % cache_hit_rate) - print("Cache entries stored: %d" % cache_size) - - var successful = all_results.filter(func(r): return r.success) - print("Successful strategies: %d" % successful.size()) - - # Update UI status - status_label.text = "Status: Complete!" - progress_label.text = "Progress: 100%% (%d/%d)" % [all_results.size(), total_combinations] - progress_bar.value = 1.0 - eta_label.text = "Total Time: %.1f seconds" % total_time - - # Build results text for UI - var results_text = "[b]SIMULATION COMPLETE[/b]\n\n" - results_text += "[color=green]Total time: %.1f seconds[/color]\n" % total_time - results_text += "Combinations tested: %d\n" % all_results.size() - results_text += "Successful strategies: %d\n\n" % successful.size() - - results_text += "[b]Cache Performance:[/b]\n" - results_text += " Hits: %d\n" % cache_hits - results_text += " Misses: %d\n" % cache_misses - results_text += " [color=cyan]Hit Rate: %.1f%%[/color]\n" % cache_hit_rate - results_text += " Entries: %d\n\n" % cache_size - - if successful.size() > 0: - # Sort by ticks (fastest first) - successful.sort_custom(func(a, b): return a.ticks < b.ticks) - - # Re-simulate top 10 with detailed purchase tracking - print("\n=== RE-SIMULATING TOP 10 WITH PURCHASE TRACKING ===") - var unlock_data = serialize_unlock_data() - var top_10_detailed: Array = [] - - for i in range(min(10, successful.size())): - var result = successful[i] - print("Re-simulating #%d with track_purchases=true..." % (i + 1)) - var detailed_result = simulate_rank_combination_pure(result.rank_targets, unlock_data, 1000000, true) - print(" Result has purchases key: %s" % detailed_result.has("purchases")) - if detailed_result.has("purchases"): - print(" Purchases array size: %d" % detailed_result.purchases.size()) - top_10_detailed.append(detailed_result) - - print("\n=== TOP 10 FASTEST STRATEGIES (WITH PURCHASE TIMELINE) ===") - results_text += "[b]TOP 10 FASTEST STRATEGIES:[/b]\n\n" - - for i in range(top_10_detailed.size()): - var result = top_10_detailed[i] - print("\n#%d: %s (%d ticks)" % [i + 1, result.time_formatted, result.ticks]) - - # Format ranks with unlock names - var rank_display = [] - for unlock_id in result.rank_targets.keys(): - var unlock_name = get_unlock_name_by_id(unlock_id) - var ranks = result.rank_targets[unlock_id] - rank_display.append("%s: %d" % [unlock_name, ranks]) - print("Target Ranks: %s" % ", ".join(rank_display)) - - # Add to UI - results_text += "[color=yellow]#%d: %s (%d ticks)[/color]\n" % [i + 1, result.time_formatted, result.ticks] - results_text += " Ranks: %s\n" % ", ".join(rank_display) - results_text += " Currency: %.0f\n" % result.final_currency - - # Add purchase timeline - if result.has("purchases") and result.purchases.size() > 0: - print("\nPurchase Timeline:") - results_text += " [b]Purchase Timeline:[/b]\n" - for purchase in result.purchases: - var time_str = format_time(purchase.tick) - print(" %s: %s Rank %d - Cost: %d¥ @ %s" % [ - time_str, purchase.unlock_name, purchase.rank, - purchase.cost, time_str - ]) - results_text += " • %s [color=cyan]%s Rank %d[/color] - %d¥ @ %s\n" % [ - format_time(purchase.tick), purchase.unlock_name, purchase.rank, - purchase.cost, time_str - ] - results_text += "\n" - else: - print("\nNo successful strategies found!") - results_text += "[color=red]No successful strategies found![/color]\n" - - # Update results UI - results_label.text = results_text - -func get_unlock_name_by_id(unlock_id: int) -> String: - """Helper function to get unlock name by ID""" - for unlock in unlock_collection.unlocks: - if unlock.unlock_id == unlock_id: - return unlock.unlock_name - return "Unknown" - -func _exit_tree(): - # Clean up threads - monitoring_active = false - for thread in threads: - if thread.is_alive(): - thread.wait_to_finish() diff --git a/scripts/sim_cached.gd.uid b/scripts/sim_cached.gd.uid deleted file mode 100644 index 642ef22..0000000 --- a/scripts/sim_cached.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bup76ad02kuse diff --git a/scripts/sim_direct.gd b/scripts/sim_direct.gd deleted file mode 100644 index aa28717..0000000 --- a/scripts/sim_direct.gd +++ /dev/null @@ -1,1036 +0,0 @@ -class_name SimulatorDirect -extends Control - -# DIRECT SIMULATOR - Uses real TickProcess with isolated state -# Zero code duplication via dependency injection - -# Load the actual game resources -var unlock_collection: UnlockDataCollection = load("res://resources/UnlockData.tres") - -# Results tracking -var all_results: Array[Dictionary] = [] -var results_mutex: Mutex = Mutex.new() - -# Chunk-based caching for intermediate simulation states -var simulation_cache: Dictionary = {} -var cache_mutex: Mutex = Mutex.new() - -# Global unlock template cache (build once, clone per simulation) -# Pre-calculated lookup tables (built once from UnlockDataResource, then used statically) -var precalc_costs: Dictionary = {} # {unlock_id: [cost_at_rank_0, cost_at_rank_1, ...]} -var precalc_modifiers: Dictionary = {} # {unlock_id: {rank: {"modifier_name": value}}} -var precalc_base_modifiers: Dictionary = {} # {unlock_id: base_modifiers_dict} -var precalc_max_ranks: Dictionary = {} # {unlock_id: max_rank} -var precalc_is_scaling: Dictionary = {} # {unlock_id: is_scaling} -var precalc_unlock_names: Dictionary = {} # {unlock_id: name} -var precalc_initialized: bool = false -var precalc_mutex: Mutex = Mutex.new() - -# Manual thread pool -var num_threads: int = 14 -var threads: Array[Thread] = [] -var task_queue: Array[Dictionary] = [] -var queue_mutex: Mutex = Mutex.new() -var completed_count: int = 0 -var completed_mutex: Mutex = Mutex.new() -var threads_done: bool = false - -var start_time: int = 0 -var total_combinations: int = 0 -var last_progress_time: int = 0 -var monitoring_active: bool = false -var cache_hits: int = 0 -var cache_misses: int = 0 - -# UI References -@onready var status_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/StatusLabel -@onready var progress_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/ProgressLabel -@onready var progress_bar = $MarginContainer/VBoxContainer/StatusPanel/VBox/ProgressBar -@onready var rate_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/RateLabel -@onready var eta_label = $MarginContainer/VBoxContainer/StatusPanel/VBox/ETALabel -@onready var cache_hits_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheHitsLabel -@onready var cache_misses_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheMissesLabel -@onready var cache_rate_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheRateLabel -@onready var cache_size_label = $MarginContainer/VBoxContainer/CachePanel/VBox/CacheSizeLabel -@onready var results_label = $MarginContainer/VBoxContainer/ResultsPanel/VBox/ScrollContainer/ResultsLabel - -func _ready(): - GameManager.tick.stop() - print("=== DIRECT Unlock Simulator Started ===") - print("Using real TickProcess with isolated state via dependency injection") - var cpu_count = OS.get_processor_count() - print("CPU cores detected: %d" % cpu_count) - print("Creating %d worker threads" % num_threads) - - # Update UI - status_label.text = "Status: Starting direct simulation..." - results_label.text = "[b]DIRECT Unlock Simulator Started[/b]\n\nCPU cores: %d\nWorker threads: %d\n\nGenerating combinations..." % [cpu_count, num_threads] - - run_comprehensive_test() - -func _process(_delta): - if monitoring_active: - var current_time = Time.get_ticks_msec() - if current_time - last_progress_time >= 1000: - last_progress_time = current_time - update_progress() - -# ============================================================================= -# ISOLATED GAME STATE CLASS -# ============================================================================= - -class IsolatedGameState: - """Isolated game state using pre-calculated lookup tables (NO object creation!)""" - - # Reference to pre-calculated tables (shared, read-only) - var costs: Dictionary # {unlock_id: [cost_array]} - var modifiers: Dictionary # {unlock_id: {rank: mods_dict}} - var max_ranks: Dictionary # {unlock_id: max_rank} - var is_scaling: Dictionary # {unlock_id: bool} - var base_mods: Dictionary # {unlock_id: base_modifiers} - - # Local inventory state (not Inventory singleton) - var currency: float = 0.0 - var wood: float = 0.0 - var stock: float = 0.0 - - # Cached modifiers (not Unlocks.current_modifiers) - var sale_price_mod: float = 1.0 - var efficiency_mod: float = 1.0 - var wood_per_click_mod: float = 1.0 - var purchase_rate_mod: float = 1.0 - var autowood_mod: float = 0.0 - var multicraft_rank: int = 0 - var wholesale_unlocked: bool = false - - # Simulation state - var ticks: int = 0 - var current_ranks: Dictionary = {} - - # Cache FakeUnlock objects to avoid repeated creation (OPTIMIZATION) - var fake_unlock_cache: Dictionary = {} # {unlock_id: FakeUnlock} - - func _init(precalc_costs: Dictionary, precalc_modifiers: Dictionary, precalc_max_ranks: Dictionary, precalc_is_scaling: Dictionary, precalc_base_mods: Dictionary): - """Initialize with references to pre-calculated lookup tables""" - costs = precalc_costs - modifiers = precalc_modifiers - max_ranks = precalc_max_ranks - is_scaling = precalc_is_scaling - base_mods = precalc_base_mods - - # ============================================================================= - # UNLOCKS SINGLETON INTERFACE REPLACEMENT - # ============================================================================= - - func get_unlock_by_id(unlock_id: int): - """Replacement for Unlocks.get_unlock_by_id() - returns cached fake unlock""" - if not current_ranks.has(unlock_id): - return null - - # Reuse cached FakeUnlock object (just update its state) - var fake = fake_unlock_cache.get(unlock_id) - if fake == null: - fake = FakeUnlock.new() - fake.unlock_id = unlock_id - fake.state = self - fake_unlock_cache[unlock_id] = fake - - # Update state from current_ranks - fake.current_rank = current_ranks.get(unlock_id, 0) - fake.is_unlocked = fake.current_rank > 0 - return fake - - # Nested class for fake unlock objects (uses parent's lookup tables) - class FakeUnlock: - var unlock_id: int - var current_rank: int - var is_unlocked: bool - var state: IsolatedGameState - - func get_next_cost() -> int: - var cost_array = state.costs.get(unlock_id, []) - if current_rank < cost_array.size(): - return cost_array[current_rank] - return 999999999 - - func get_current_modifiers() -> Dictionary: - if not is_unlocked or current_rank == 0: - return {} - var rank_mods = state.modifiers.get(unlock_id, {}) - return rank_mods.get(current_rank, {}) - - func get_modifiers_at_rank(rank: int) -> Dictionary: - """Get modifiers at a specific rank (for calculating deltas)""" - if rank == 0: - return {} - var rank_mods = state.modifiers.get(unlock_id, {}) - return rank_mods.get(rank, {}) - - func can_rank_up() -> bool: - var max_rank = state.max_ranks.get(unlock_id, -1) - if max_rank > 0 and current_rank >= max_rank: - return false - return true - - func unlock() -> bool: - if not can_rank_up(): - return false - current_rank += 1 - is_unlocked = true - state.current_ranks[unlock_id] = current_rank - return true - - func get_modifier_value(modifier_key: String) -> float: - """Replacement for Unlocks.get_modifier_value()""" - match modifier_key: - "sale_price_modifier": return sale_price_mod - "efficiency_modifier": return efficiency_mod - "wood_per_click_modifier": return wood_per_click_mod - "purchase_rate_modifier": return purchase_rate_mod - "autowood_modifier": return autowood_mod - _: return 1.0 - - func get_wood_per_click() -> float: - """Replacement for Unlocks.get_wood_per_click()""" - return Global.wood_per_click * wood_per_click_mod - - func get_items_produced_per_tick() -> float: - """Replacement for Unlocks.get_items_produced_per_tick()""" - return Global.cost_per_whittle * efficiency_mod - - func get_sale_price_per_item() -> float: - """Replacement for Unlocks.get_sale_price_per_item()""" - return Global.base_sale_price * sale_price_mod - - # ============================================================================= - # INVENTORY SINGLETON INTERFACE REPLACEMENT - # ============================================================================= - - func add_wood(amount: float): - """Replacement for Inventory.add_wood()""" - wood += amount - - func get_wood() -> float: - """Replacement for Inventory.get_wood()""" - return wood - - func spend_wood(amount: float) -> bool: - """Replacement for Inventory.spend_wood()""" - if wood >= amount: - wood -= amount - return true - return false - - func add_stock(amount: float): - """Replacement for Inventory.add_stock()""" - stock += amount - - func get_stock() -> float: - """Replacement for Inventory.get_stock()""" - return stock - - func spend_stock(amount: float) -> bool: - """Replacement for Inventory.spend_stock()""" - if stock >= amount: - stock -= amount - return true - return false - - func add_currency(amount: float): - """Replacement for Inventory.add_currency()""" - currency += amount - - func spend_currency(amount: float) -> bool: - """Replacement for Inventory.spend_currency()""" - if currency >= amount: - currency -= amount - return true - return false - - # ============================================================================= - # UNLOCK PURCHASE AND MODIFIER MANAGEMENT - # ============================================================================= - - func purchase_unlock(unlock_id: int) -> bool: - """Purchase an unlock and update modifiers""" - var unlock = get_unlock_by_id(unlock_id) - if not unlock or not unlock.can_rank_up(): - return false - - var cost = unlock.get_next_cost() - if not spend_currency(cost): - return false - - var prev_rank = unlock.current_rank - unlock.unlock() - current_ranks[unlock_id] = unlock.current_rank - - # Update modifier cache - update_modifiers_for_unlock(unlock, prev_rank) - - # Update special flags - if unlock_id == Global.wholesale_unlock_id: - wholesale_unlocked = true - if unlock_id == Global.multicraft_unlock_id: - multicraft_rank = unlock.current_rank - if unlock_id == Global.autowood_unlock_id: - # Autowood is additive, not multiplicative - autowood_mod = calculate_autowood_modifier() - - return true - - func update_modifiers_for_unlock(unlock, prev_rank: int): - """Update cached modifiers when unlock rank changes""" - var old_mods = unlock.get_modifiers_at_rank(prev_rank) - var new_mods = unlock.get_current_modifiers() - - # Calculate ratio for multiplicative modifiers - for key in new_mods.keys(): - var old_val = old_mods.get(key, 1.0) - var new_val = new_mods[key] - var ratio = new_val / old_val if old_val != 0 else new_val - - match key: - "sale_price_modifier": - sale_price_mod *= ratio - "efficiency_modifier": - efficiency_mod *= ratio - "wood_per_click_modifier": - wood_per_click_mod *= ratio - "purchase_rate_modifier": - purchase_rate_mod *= ratio - - func calculate_autowood_modifier() -> float: - """Calculate autowood modifier from scratch (additive)""" - var total = 0.0 - for unlock_id in current_ranks.keys(): - var rank = current_ranks[unlock_id] - if rank > 0: - var rank_mods = modifiers.get(unlock_id, {}) - var mods = rank_mods.get(rank, {}) - if mods.has("autowood_modifier"): - total += mods["autowood_modifier"] - return total - - # ============================================================================= - # INLINED TICK LOGIC (optimized for performance, matches TickProcess exactly) - # ============================================================================= - - func execute_tick(): - """Execute one game tick - INLINED for performance (no TickProcess overhead)""" - # 1. Generate wood from autowood - if autowood_mod > 0.0: - var wood_to_gather = max(get_wood_per_click() * autowood_mod, 1.0) - wood += wood_to_gather - - # 2. Whittle wood into stock - if wood >= 1: - # Base whittling action - var items_produced_per_tick = get_items_produced_per_tick() - var wood_needed = ceil(items_produced_per_tick) - var wood_to_whittle = min(wood, wood_needed) - var items_produced = wood_to_whittle - wood -= wood_to_whittle - stock += items_produced - - # Multicraft additional whittles - for i in range(multicraft_rank): - if wood >= 1: - wood_needed = ceil(items_produced_per_tick) - wood_to_whittle = min(wood, wood_needed) - items_produced = wood_to_whittle - wood -= wood_to_whittle - stock += items_produced - else: - break - - # 3. Sell stock for currency - if stock > 0: - var price_per_item = get_sale_price_per_item() - - # 3a. Wholesale selling (if unlocked) - if wholesale_unlocked: - while stock >= Global.wholesale_bundle_size: - stock -= Global.wholesale_bundle_size - currency += Global.wholesale_bundle_size * price_per_item * Global.wholesale_discount_multiplier - - # 3b. Regular selling - if stock > 0: - var purchase_rate = Global.base_purchase_rate * purchase_rate_mod - var max_stock_to_sell = floor(purchase_rate) - var actual_stock_to_sell = min(stock, max(1.0, max_stock_to_sell)) - stock -= actual_stock_to_sell - currency += actual_stock_to_sell * price_per_item - - ticks += 1 - - # ============================================================================= - # RESET FOR REUSE - # ============================================================================= - - func reset_for_new_simulation(): - """Reset state for a new simulation (OPTIMIZATION: reuse same IsolatedGameState)""" - # Reset inventory - currency = 0.0 - wood = 0.0 - stock = 0.0 - - # Reset modifiers - sale_price_mod = 1.0 - efficiency_mod = 1.0 - wood_per_click_mod = 1.0 - purchase_rate_mod = 1.0 - autowood_mod = 0.0 - multicraft_rank = 0 - wholesale_unlocked = false - - # Reset simulation state - ticks = 0 - current_ranks.clear() - - # ============================================================================= - # SNAPSHOT AND RESTORE FOR CACHING - # ============================================================================= - - func snapshot_for_cache() -> Dictionary: - """Create a snapshot for cache storage""" - return { - "ticks": ticks, - "currency": currency, - "stock": stock, - "wood": wood, - "current_ranks": current_ranks.duplicate(), - "modifiers": { - "sale_price_mod": sale_price_mod, - "efficiency_mod": efficiency_mod, - "wood_per_click_mod": wood_per_click_mod, - "purchase_rate_mod": purchase_rate_mod, - "autowood_mod": autowood_mod, - "multicraft_rank": multicraft_rank, - "wholesale_unlocked": wholesale_unlocked - } - } - - func restore_from_cache(snapshot: Dictionary): - """Restore state from a cache snapshot""" - ticks = snapshot.ticks - currency = snapshot.currency - stock = snapshot.stock - wood = snapshot.wood - - # Restore modifiers - var mods = snapshot.modifiers - sale_price_mod = mods.sale_price_mod - efficiency_mod = mods.efficiency_mod - wood_per_click_mod = mods.wood_per_click_mod - purchase_rate_mod = mods.purchase_rate_mod - autowood_mod = mods.autowood_mod - multicraft_rank = mods.multicraft_rank - wholesale_unlocked = mods.wholesale_unlocked - - # Restore unlock ranks - current_ranks = snapshot.current_ranks.duplicate() - for unlock_id in current_ranks.keys(): - var unlock = get_unlock_by_id(unlock_id) - if unlock: - var target_rank = current_ranks[unlock_id] - unlock.current_rank = target_rank - unlock.is_unlocked = target_rank > 0 - -# ============================================================================= -# TEMPLATE MANAGEMENT -# ============================================================================= - -func build_precalculated_tables(): - """Pre-calculate all costs and modifiers from real UnlockDataResource objects""" - precalc_mutex.lock() - if precalc_initialized: - precalc_mutex.unlock() - return - - print("Pre-calculating unlock tables from UnlockDataResource...") - var start_time = Time.get_ticks_msec() - - for unlock in unlock_collection.unlocks: - var unlock_id = unlock.unlock_id - precalc_unlock_names[unlock_id] = unlock.unlock_name - precalc_is_scaling[unlock_id] = unlock.is_scaling - precalc_max_ranks[unlock_id] = unlock.max_rank if unlock.is_scaling else 1 - precalc_base_modifiers[unlock_id] = unlock.base_modifiers.duplicate(true) - - # Calculate cost ladder for all possible ranks - var cost_array = [] - var max_rank_to_calc = unlock.max_rank if (unlock.is_scaling and unlock.max_rank > 0) else (100 if unlock.is_scaling else 1) - for rank in range(max_rank_to_calc + 1): - unlock.current_rank = rank - cost_array.append(unlock.get_next_cost()) - precalc_costs[unlock_id] = cost_array - - # Calculate modifier values for all possible ranks - var mods_by_rank = {} - for rank in range(max_rank_to_calc + 1): - unlock.current_rank = rank - unlock.is_unlocked = rank > 0 - mods_by_rank[rank] = unlock.get_current_modifiers() - precalc_modifiers[unlock_id] = mods_by_rank - - # Reset unlock state - unlock.current_rank = 0 - unlock.is_unlocked = false - - precalc_initialized = true - var elapsed = Time.get_ticks_msec() - start_time - print("Pre-calculation complete in %d ms for %d unlocks" % [elapsed, precalc_costs.size()]) - precalc_mutex.unlock() - -func create_isolated_state() -> IsolatedGameState: - """Create a new isolated game state using pre-calculated tables""" - if not precalc_initialized: - build_precalculated_tables() - return IsolatedGameState.new(precalc_costs, precalc_modifiers, precalc_max_ranks, precalc_is_scaling, precalc_base_modifiers) - -# ============================================================================= -# CACHE SYSTEM (same as sim_cached.gd) -# ============================================================================= - -func get_cache_key(current_ranks: Dictionary) -> String: - """Generate a cache key from current unlock ranks""" - var sorted_keys = current_ranks.keys() - sorted_keys.sort() - var key_parts = [] - for k in sorted_keys: - key_parts.append(str(k) + ":" + str(current_ranks[k])) - return ",".join(key_parts) - -func try_load_best_prefix_from_cache(rank_targets: Dictionary) -> Variant: - """Balanced cache lookup - fast with good coverage""" - cache_mutex.lock() - - # Try exact match first - var full_key = get_cache_key(rank_targets) - if simulation_cache.has(full_key): - cache_hits += 1 - var result = simulation_cache[full_key] - cache_mutex.unlock() - return result - - # Sort unlock IDs for consistent ordering - var unlock_ids = rank_targets.keys() - unlock_ids.sort() - var num_unlocks = unlock_ids.size() - - var best_match = null - var best_rank_sum = 0 - - # Try progressively shorter prefixes - for prefix_len in range(num_unlocks - 1, 0, -1): - var subset = {} - for i in range(prefix_len): - subset[unlock_ids[i]] = rank_targets[unlock_ids[i]] - - var key = get_cache_key(subset) - if simulation_cache.has(key): - var cached_entry = simulation_cache[key] - var rank_sum = 0 - for r in cached_entry.current_ranks.values(): - rank_sum += r - - if rank_sum > best_rank_sum: - best_match = cached_entry - best_rank_sum = rank_sum - if prefix_len >= num_unlocks - 2: - break - - if best_match != null: - cache_hits += 1 - else: - cache_misses += 1 - cache_mutex.unlock() - - return best_match - -func should_cache_state(current_ranks: Dictionary, targets_remaining: int) -> bool: - """Decide if this state is worth caching""" - if targets_remaining == 0: - return false - - var total_ranks = 0 - var active_unlocks = 0 - - for rank in current_ranks.values(): - if rank > 0: - total_ranks += rank - active_unlocks += 1 - - return (active_unlocks >= 2) or (total_ranks >= 2) - -# ============================================================================= -# MAIN SIMULATION FUNCTION -# ============================================================================= - -func simulate_rank_combination_direct( - rank_targets: Dictionary, - max_ticks: int, - track_purchases: bool = false, - _unused_tick_process = null, # Kept for API compatibility but not used - _unused_state = null # Kept for API compatibility but not used -) -> Dictionary: - """Pure simulation using isolated state with inlined tick logic""" - - # Always create fresh isolated state to avoid thread conflicts - var state = create_isolated_state() - - # Initialize targets - var targets_remaining = 0 - var active_unlock_ids: Array = [] - for unlock_id in rank_targets.keys(): - state.current_ranks[unlock_id] = 0 - targets_remaining += rank_targets[unlock_id] - active_unlock_ids.append(unlock_id) - - # Purchase tracking - var purchases: Array[Dictionary] = [] - - # Try cache restoration - var cached_state = null - if not track_purchases: - cached_state = try_load_best_prefix_from_cache(rank_targets) - - if cached_state != null: - state.restore_from_cache(cached_state) - - # Recalculate remaining targets - targets_remaining = 0 - active_unlock_ids.clear() - for unlock_id in rank_targets.keys(): - var remaining = rank_targets[unlock_id] - state.current_ranks.get(unlock_id, 0) - if remaining > 0: - targets_remaining += remaining - active_unlock_ids.append(unlock_id) - - # Pre-calculate next costs directly from lookup table - var next_costs: Array[float] = [] - next_costs.resize(active_unlock_ids.size()) - for i in range(active_unlock_ids.size()): - var unlock_id = active_unlock_ids[i] - var current_rank = state.current_ranks.get(unlock_id, 0) - var cost_array = state.costs.get(unlock_id, []) - next_costs[i] = cost_array[current_rank] if current_rank < cost_array.size() else 999999999 - - # Main simulation loop - while state.ticks < max_ticks: - # Find cheapest affordable unlock - var cheapest_index = -1 - var cheapest_cost = INF - var cheapest_unlock_id = -1 - - if targets_remaining > 0: - for i in range(active_unlock_ids.size()): - if next_costs[i] < cheapest_cost and state.currency >= next_costs[i]: - cheapest_cost = next_costs[i] - cheapest_unlock_id = active_unlock_ids[i] - cheapest_index = i - - # Exit early if all targets met and goal reached - if cheapest_index == -1 and targets_remaining == 0: - if state.currency >= 1000000.0: - break - # Skip ahead to 1M - var currency_needed = 1000000.0 - state.currency - var price_per_item = state.get_sale_price_per_item() - var items_per_tick = max(1.0, floor( - Global.base_purchase_rate * state.get_modifier_value("purchase_rate_modifier") - )) - var revenue_per_tick = items_per_tick * price_per_item - - if revenue_per_tick > 0: - var ticks_needed = int(ceil(currency_needed / revenue_per_tick)) - state.ticks += ticks_needed - state.currency += revenue_per_tick * ticks_needed - break - - # Purchase unlock if affordable - if cheapest_index != -1: - state.purchase_unlock(cheapest_unlock_id) - targets_remaining -= 1 - - # Track purchase if enabled - if track_purchases: - var current_rank = state.current_ranks[cheapest_unlock_id] - purchases.append({ - "unlock_id": cheapest_unlock_id, - "unlock_name": get_unlock_name_by_id(cheapest_unlock_id), - "rank": current_rank, - "cost": cheapest_cost, - "tick": state.ticks, - "currency_after": state.currency - }) - - # Update next cost or remove from active list - if state.current_ranks[cheapest_unlock_id] >= rank_targets[cheapest_unlock_id]: - # Target reached - var last_idx = active_unlock_ids.size() - 1 - if cheapest_index != last_idx: - active_unlock_ids[cheapest_index] = active_unlock_ids[last_idx] - next_costs[cheapest_index] = next_costs[last_idx] - active_unlock_ids.resize(last_idx) - next_costs.resize(last_idx) - else: - # Update cost for next rank directly from lookup table - var current_rank = state.current_ranks[cheapest_unlock_id] - var cost_array = state.costs.get(cheapest_unlock_id, []) - next_costs[cheapest_index] = cost_array[current_rank] if current_rank < cost_array.size() else 999999999 - - # Cache this state if valuable - if should_cache_state(state.current_ranks, targets_remaining): - var cache_key = get_cache_key(state.current_ranks) - cache_mutex.lock() - if not simulation_cache.has(cache_key): - simulation_cache[cache_key] = state.snapshot_for_cache() - cache_mutex.unlock() - - # Simulate manual clicking to bootstrap economy (matches sim_cached.gd logic) - # Manual clicks based on tick range (pre-calculate to avoid repeated conditions) - var manual_clicks: float = 1.0 if state.ticks < 120 else (0.5 if state.ticks < 300 else (0.25 if (state.ticks < 600 and state.autowood_mod < 0.2) else 0.0)) - if manual_clicks > 0.0: - var wood_from_clicks = manual_clicks * state.get_wood_per_click() - state.add_wood(wood_from_clicks) - - # Execute one tick using inlined logic (optimized for performance) - state.execute_tick() - - # Build result - var success = state.currency >= 1000000.0 - var result = { - "rank_targets": rank_targets, - "success": success, - "ticks": state.ticks if success else -1, - "final_currency": state.currency, - "time_formatted": format_time(state.ticks) if success else "Failed" - } - - if track_purchases: - result["purchases"] = purchases - - return result - -# ============================================================================= -# HELPER FUNCTIONS -# ============================================================================= - -func format_time(ticks: int) -> String: - var seconds = ticks - var minutes = seconds / 60 - var hours = minutes / 60 - - if hours > 0: - return "%dh %dm %ds" % [hours, minutes % 60, seconds % 60] - elif minutes > 0: - return "%dm %ds" % [minutes, seconds % 60] - else: - return "%ds" % seconds - -func generate_all_combinations(unlimited_scaling_cap: int = 5) -> Array[Dictionary]: - """Generate combinations for ALL unlocks dynamically""" - var combinations: Array[Dictionary] = [] - - var unlock_constraints = [] - for unlock in unlock_collection.unlocks: - var max_rank: int - if unlock.max_rank > 0: - max_rank = unlock.max_rank - elif not unlock.is_scaling: - max_rank = 1 - else: - max_rank = unlimited_scaling_cap - - unlock_constraints.append({ - "id": unlock.unlock_id, - "name": unlock.unlock_name, - "max_rank": max_rank - }) - - print("\n=== Generating Combinations ===") - print("Reading from resource file: %d unlocks" % unlock_constraints.size()) - for c in unlock_constraints: - print(" - %s (ID %d): 0-%d ranks" % [c.name, c.id, c.max_rank]) - - _generate_combinations_recursive(unlock_constraints, 0, {}, combinations) - - print("Generated %d total combinations" % combinations.size()) - return combinations - -func _generate_combinations_recursive(constraints: Array, index: int, current: Dictionary, output: Array): - """Recursively generate all valid combinations""" - if index >= constraints.size(): - if current.size() > 0: - output.append(current.duplicate()) - return - - var constraint = constraints[index] - for rank in range(constraint.max_rank + 1): - if rank > 0: - current[constraint.id] = rank - - _generate_combinations_recursive(constraints, index + 1, current, output) - - if rank > 0: - current.erase(constraint.id) - -func get_unlock_name_by_id(unlock_id: int) -> String: - """Helper function to get unlock name by ID""" - if not precalc_initialized: - build_precalculated_tables() - return precalc_unlock_names.get(unlock_id, "Unknown") - -# ============================================================================= -# THREADING AND PROGRESS -# ============================================================================= - -func worker_thread(thread_id: int): - """Worker thread function""" - var local_results: Array[Dictionary] = [] - var batch_size: int = 10 - - while true: - var task_data = null - queue_mutex.lock() - if task_queue.size() > 0: - task_data = task_queue.pop_front() - queue_mutex.unlock() - - if task_data == null: - if local_results.size() > 0: - results_mutex.lock() - all_results.append_array(local_results) - results_mutex.unlock() - - completed_mutex.lock() - completed_count += local_results.size() - completed_mutex.unlock() - break - - var result = simulate_rank_combination_direct(task_data.combo, 1000000, false, null, null) - - local_results.append(result) - - if local_results.size() >= batch_size: - results_mutex.lock() - all_results.append_array(local_results) - results_mutex.unlock() - - completed_mutex.lock() - completed_count += local_results.size() - completed_mutex.unlock() - - local_results.clear() - -func update_progress(): - """Update progress display""" - var current_count = 0 - completed_mutex.lock() - current_count = completed_count - completed_mutex.unlock() - - if current_count >= total_combinations: - monitoring_active = false - finish_processing() - return - - var percent = float(current_count) / total_combinations * 100.0 - var elapsed = (Time.get_ticks_msec() - start_time) / 1000.0 - var rate = current_count / elapsed if elapsed > 0 else 0 - var eta_seconds = (total_combinations - current_count) / rate if rate > 0 else 0 - - var total_cache_checks = cache_hits + cache_misses - var cache_hit_rate = (float(cache_hits) / total_cache_checks * 100.0) if total_cache_checks > 0 else 0.0 - - var eta_str = "" - if eta_seconds > 0: - var eta_minutes = int(eta_seconds) / 60 - var eta_secs = int(eta_seconds) % 60 - if eta_minutes > 0: - eta_str = "%dm %ds" % [eta_minutes, eta_secs] - else: - eta_str = "%ds" % eta_secs - else: - eta_str = "calculating..." - - print("Progress: %.1f%% (%d/%d) - %.1f combos/sec - Cache: %.1f%% hits - ETA: %s" % [ - percent, current_count, total_combinations, rate, cache_hit_rate, eta_str - ]) - - status_label.text = "Status: Running simulation..." - progress_label.text = "Progress: %.1f%% (%d/%d)" % [percent, current_count, total_combinations] - progress_bar.value = percent / 100.0 - rate_label.text = "Speed: %.1f combos/sec" % rate - eta_label.text = "ETA: %s" % eta_str - - cache_hits_label.text = "Cache Hits: %d" % cache_hits - cache_misses_label.text = "Cache Misses: %d" % cache_misses - cache_rate_label.text = "Hit Rate: %.1f%%" % cache_hit_rate - cache_mutex.lock() - cache_size_label.text = "Cache Entries: %d" % simulation_cache.size() - cache_mutex.unlock() - -func finish_processing(): - """Called when all processing is complete""" - print("\nAll combinations complete! Waiting for threads to finish...") - - for thread in threads: - thread.wait_to_finish() - threads.clear() - threads_done = true - - print("All threads finished. Processing results...") - - var total_time = (Time.get_ticks_msec() - start_time) / 1000.0 - - results_mutex.lock() - var actual_results = all_results.size() - results_mutex.unlock() - - if actual_results != total_combinations: - print("WARNING: Result count mismatch! Expected %d, got %d" % [total_combinations, actual_results]) - - print("\n=== RESULTS ===") - print("Total time: %.1f seconds" % total_time) - print("Total combinations tested: %d" % actual_results) - - var total_cache_checks = cache_hits + cache_misses - var cache_hit_rate = (float(cache_hits) / total_cache_checks * 100.0) if total_cache_checks > 0 else 0.0 - cache_mutex.lock() - var cache_size = simulation_cache.size() - cache_mutex.unlock() - print("\n=== CACHE STATISTICS ===") - print("Cache hits: %d" % cache_hits) - print("Cache misses: %d" % cache_misses) - print("Hit rate: %.1f%%" % cache_hit_rate) - print("Cache entries stored: %d" % cache_size) - - var successful = all_results.filter(func(r): return r.success) - print("Successful strategies: %d" % successful.size()) - - status_label.text = "Status: Complete!" - progress_label.text = "Progress: 100%% (%d/%d)" % [all_results.size(), total_combinations] - progress_bar.value = 1.0 - eta_label.text = "Total Time: %.1f seconds" % total_time - - var results_text = "[b]SIMULATION COMPLETE[/b]\n\n" - results_text += "[color=green]Total time: %.1f seconds[/color]\n" % total_time - results_text += "Combinations tested: %d\n" % all_results.size() - results_text += "Successful strategies: %d\n\n" % successful.size() - - results_text += "[b]Cache Performance:[/b]\n" - results_text += " Hits: %d\n" % cache_hits - results_text += " Misses: %d\n" % cache_misses - results_text += " [color=cyan]Hit Rate: %.1f%%[/color]\n" % cache_hit_rate - results_text += " Entries: %d\n\n" % cache_size - - if successful.size() > 0: - successful.sort_custom(func(a, b): return a.ticks < b.ticks) - - print("\n=== RE-SIMULATING TOP 10 WITH PURCHASE TRACKING ===") - var top_10_detailed: Array = [] - - for i in range(min(10, successful.size())): - var result = successful[i] - print("Re-simulating #%d..." % (i + 1)) - var detailed_result = simulate_rank_combination_direct(result.rank_targets, 1000000, true) - top_10_detailed.append(detailed_result) - - print("\n=== TOP 10 FASTEST STRATEGIES (WITH PURCHASE TIMELINE) ===") - results_text += "[b]TOP 10 FASTEST STRATEGIES:[/b]\n\n" - - for i in range(top_10_detailed.size()): - var result = top_10_detailed[i] - print("\n#%d: %s (%d ticks)" % [i + 1, result.time_formatted, result.ticks]) - - var rank_display = [] - for unlock_id in result.rank_targets.keys(): - var unlock_name = get_unlock_name_by_id(unlock_id) - var ranks = result.rank_targets[unlock_id] - rank_display.append("%s: %d" % [unlock_name, ranks]) - print("Target Ranks: %s" % ", ".join(rank_display)) - - results_text += "[color=yellow]#%d: %s (%d ticks)[/color]\n" % [i + 1, result.time_formatted, result.ticks] - results_text += " Ranks: %s\n" % ", ".join(rank_display) - results_text += " Currency: %.0f\n" % result.final_currency - - if result.has("purchases") and result.purchases.size() > 0: - print("\nPurchase Timeline:") - results_text += " [b]Purchase Timeline:[/b]\n" - for purchase in result.purchases: - var time_str = format_time(purchase.tick) - print(" %s: %s Rank %d - Cost: %d¥ @ %s" % [ - time_str, purchase.unlock_name, purchase.rank, - purchase.cost, time_str - ]) - results_text += " • %s [color=cyan]%s Rank %d[/color] - %d¥ @ %s\n" % [ - format_time(purchase.tick), purchase.unlock_name, purchase.rank, - purchase.cost, time_str - ] - results_text += "\n" - else: - print("\nNo successful strategies found!") - results_text += "[color=red]No successful strategies found![/color]\n" - - results_label.text = results_text - -func run_comprehensive_test(): - """Test all combinations dynamically generated from resource file""" - print("\n=== Available Unlocks ===") - for unlock in unlock_collection.unlocks: - var max_rank_str = str(unlock.max_rank) if unlock.max_rank > 0 else "unlimited" - print("ID: %d | %s | Base Cost: %d | Scaling: %s | Max Rank: %s" % [ - unlock.unlock_id, - unlock.unlock_name, - unlock.base_cost, - "Yes" if unlock.is_scaling else "No", - max_rank_str - ]) - print(" Modifiers: ", unlock.base_modifiers) - - print("\n=== Global Constants ===") - print("Base Sale Price: %s" % Global.base_sale_price) - print("Base Purchase Rate: %s" % Global.base_purchase_rate) - print("Cost Per Whittle: %s" % Global.cost_per_whittle) - - # Build pre-calculated tables - build_precalculated_tables() - - # Generate combinations - var unlimited_cap = 5 - print("\n=== Generation Settings ===") - print("Unlimited scaling cap: %d ranks" % unlimited_cap) - var combinations = generate_all_combinations(unlimited_cap) - total_combinations = combinations.size() - print("\n=== Testing %d Combinations ===" % total_combinations) - - # Fill task queue - task_queue.clear() - for combo in combinations: - task_queue.append({"combo": combo}) - - # Reset counters - completed_count = 0 - all_results.clear() - threads_done = false - start_time = Time.get_ticks_msec() - last_progress_time = start_time - monitoring_active = true - - # Create and start threads - print("Starting %d worker threads..." % num_threads) - for i in range(num_threads): - var thread = Thread.new() - thread.start(worker_thread.bind(i)) - threads.append(thread) - - print("All threads started, processing...") - -func _exit_tree(): - monitoring_active = false - for thread in threads: - if thread.is_alive(): - thread.wait_to_finish() diff --git a/scripts/sim_direct.gd.uid b/scripts/sim_direct.gd.uid deleted file mode 100644 index e374a83..0000000 --- a/scripts/sim_direct.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://citjokiv6skqi diff --git a/scripts/unlock_data_lightweight.gd b/scripts/unlock_data_lightweight.gd deleted file mode 100644 index 0aeca12..0000000 --- a/scripts/unlock_data_lightweight.gd +++ /dev/null @@ -1,124 +0,0 @@ -class_name UnlockDataLightweight -## Lightweight unlock data structure for simulations -## Contains the same calculation logic as UnlockDataResource but without Resource overhead - -var unlock_id: int = 0 -var unlock_name: String = "" -var base_cost: int = 0 -var is_unlocked: bool = false - -# Scaling settings -var is_scaling: bool = false -var current_rank: int = 0 -var max_rank: int = -1 - -# Cost scaling -var cost_scaling_type: int = 1 # 0=Linear, 1=Exponential -var cost_scaling_multiplier: float = 1.5 -var cost_linear_increase: int = 100 -var cost_ladder: Array[int] = [] - -# Effect ladder -var effect_ladder: Array[float] = [] - -# Base modifiers -var base_modifiers: Dictionary = {} - -## Static factory method to create from UnlockDataResource (one-time conversion) -static func from_resource(resource: UnlockDataResource) -> UnlockDataLightweight: - var data = UnlockDataLightweight.new() - data.unlock_id = resource.unlock_id - data.unlock_name = resource.unlock_name - data.base_cost = resource.base_cost - data.is_scaling = resource.is_scaling - data.max_rank = resource.max_rank - data.cost_scaling_type = resource.cost_scaling_type - data.cost_scaling_multiplier = resource.cost_scaling_multiplier - data.cost_linear_increase = resource.cost_linear_increase - data.cost_ladder = resource.cost_ladder.duplicate() - data.effect_ladder = resource.effect_ladder.duplicate() - data.base_modifiers = resource.base_modifiers.duplicate(true) - # Start fresh - data.is_unlocked = false - data.current_rank = 0 - return data - -## Clone for thread safety (fast - no Resource creation) -func clone() -> UnlockDataLightweight: - var copy = UnlockDataLightweight.new() - copy.unlock_id = unlock_id - copy.unlock_name = unlock_name - copy.base_cost = base_cost - copy.is_scaling = is_scaling - copy.max_rank = max_rank - copy.cost_scaling_type = cost_scaling_type - copy.cost_scaling_multiplier = cost_scaling_multiplier - copy.cost_linear_increase = cost_linear_increase - copy.cost_ladder = cost_ladder # Shared - read-only - copy.effect_ladder = effect_ladder # Shared - read-only - copy.base_modifiers = base_modifiers # Shared - read-only - # Mutable state - copy.is_unlocked = false - copy.current_rank = 0 - return copy - -## Same logic as UnlockDataResource.get_next_cost() -func get_next_cost() -> int: - if not is_scaling: - return base_cost - - if cost_ladder.size() > 0 and current_rank < cost_ladder.size(): - return cost_ladder[current_rank] - - if cost_scaling_type == 0: # Linear - return base_cost + (cost_linear_increase * current_rank) - else: # Exponential - return int(base_cost * pow(cost_scaling_multiplier, current_rank)) - -## Same logic as UnlockDataResource.get_current_modifiers() -func get_current_modifiers() -> Dictionary: - if not is_unlocked or current_rank == 0: - return {} - return get_modifiers_at_rank(current_rank) - -## Same logic as UnlockDataResource.get_modifiers_at_rank() -func get_modifiers_at_rank(rank: int) -> Dictionary: - if rank == 0: - return {} - - # For one-shot unlocks or empty ladder, return base_modifiers - if effect_ladder.size() == 0: - return base_modifiers.duplicate() - - var ladder_index = rank - 1 - if ladder_index >= effect_ladder.size(): - ladder_index = effect_ladder.size() - 1 # Use last value if rank exceeds ladder - - var result = {} - for key in base_modifiers.keys(): - result[key] = effect_ladder[ladder_index] - return result - -## Same logic as UnlockDataResource.can_rank_up() -func can_rank_up() -> bool: - if not is_scaling: - return not is_unlocked - - if max_rank > 0 and current_rank >= max_rank: - return false - - return true - -## Same logic as UnlockDataResource.unlock() -func unlock() -> bool: - if not can_rank_up(): - return false - - if not is_scaling: - is_unlocked = true - current_rank = 1 - else: - current_rank += 1 - is_unlocked = true - - return true diff --git a/scripts/unlock_data_lightweight.gd.uid b/scripts/unlock_data_lightweight.gd.uid deleted file mode 100644 index 3336c42..0000000 --- a/scripts/unlock_data_lightweight.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://yx6cnoob2can