Compare commits

...

13 Commits

Author SHA1 Message Date
OnlyMares 8c4b4615e3 Merge branch 'main' of https://git.onlymares.horse/OnlyMares/CupcakeRevolution 1 year ago
OnlyMares 2de5a04bf2 Chugging along
-variable rework into dictionaries and arrays cause old way was ugly
-more tempart
-various tweaks and fixes
1 year ago
OnlyMares 2c248b9860 Update 'README.md' 2 years ago
OnlyMares 10dd09b071 Update 'README.md' 2 years ago
OnlyMares 4981a1ccd1 Update 'README.md' 2 years ago
OnlyMares 902fb29a67 Update 'README.md' 2 years ago
OnlyMares 70e1dd5355 export fix 2 years ago
OnlyMares 1d5f05f34b Release Executables 2 years ago
OnlyMares 5e84f9c37d Pre Alpha 0.1
Fuck AI
2 years ago
OnlyMares cd013050b9 Almost 0.1
-5(7) cupcakes implemented. the other two require a future mechanic to obtain
-now two areas, no difference and it's free currently
-two tools, your hooves, and a baking tray, only hooves works for some reason
2 years ago
OnlyMares 7b9b9d54fb Prepping
Lotta backend building, just need to make the art and make the final piece with it.
Effectively broke Strawberry Cupcakes somehow. Not sure tho
2 years ago
OnlyMares 41f86f674b Web-B-Zipped 2 years ago
OnlyMares 6aea376ad3 Nightly Push
-added two new types of cupcake
-cleaned up and organized a lot of code
-paved way for a lot of future expansion
-new cupcake art
2 years ago

@ -1,25 +1,26 @@
Control
Container
HBoxContainer
TextureRect
Sprite2D Sprite2D
Label CollisionShape2D
RigidBody2D
Node2D
Button Button
GridContainer GridContainer
TextureRect
Label
ScrollContainer
RichTextLabel
Control
Container
HBoxContainer
ItemList ItemList
VScrollBar VScrollBar
VBoxContainer VBoxContainer
Panel Panel
CollisionShape2D
CollisionPolygon2D CollisionPolygon2D
Node2D
Area2D Area2D
CanvasLayer CanvasLayer
ScrollContainer
AnimationPlayer AnimationPlayer
TextureButton TextureButton
Timer Timer
RigidBody2D
Marker2D Marker2D
Camera2D Camera2D
CharacterBody2D CharacterBody2D

@ -8,7 +8,7 @@ Anim={
"grid_snap_active": false, "grid_snap_active": false,
"grid_step": Vector2(8, 8), "grid_step": Vector2(8, 8),
"grid_visibility": 1, "grid_visibility": 1,
"ofs": Vector2(-1354.04, -771.218), "ofs": Vector2(-350.251, -204.433),
"primary_grid_steps": 8, "primary_grid_steps": 8,
"show_edit_locks": true, "show_edit_locks": true,
"show_guides": true, "show_guides": true,
@ -32,7 +32,7 @@ Anim={
"snap_rotation_step": 0.261799, "snap_rotation_step": 0.261799,
"snap_scale": false, "snap_scale": false,
"snap_scale_step": 0.1, "snap_scale_step": 0.1,
"zoom": 0.890899 "zoom": 3.1748
} }
3D={ 3D={
"fov": 70.01, "fov": 70.01,

@ -14,15 +14,15 @@ dock_split_1=0
dock_split_4=0 dock_split_4=0
dock_2="FileSystem" dock_2="FileSystem"
dock_3="Scene,Import" dock_3="Scene,Import"
dock_5="Inspector,Node,History,Commit (3)" dock_5="Inspector,Node,History,Commit (22)"
[EditorNode] [EditorNode]
open_scenes=["res://Scenes/game_world.tscn", "res://Scenes/horse.tscn", "res://Scenes/Cupcakes/cupcake.tscn", "res://Scenes/Locations/yard.tscn", "res://Scenes/UI/upgrades.tscn", "res://Scenes/UI/ingame_ui.tscn"] open_scenes=["res://Scenes/game_world.tscn", "res://Scenes/UI/upgrades.tscn", "res://Scenes/UI/ingame_ui.tscn", "res://Scenes/horse.tscn", "res://Scenes/Locations/dungeonNight.tscn", "res://Scenes/Tools/bakingTray.tscn", "res://Scenes/Cupcakes/cupcake.tscn", "res://Scenes/Enemies/enemyHon.tscn"]
[ScriptEditor] [ScriptEditor]
open_scripts=["res://Scripts/Cupcake Spawn Timer.gd", "res://Scripts/Cupcakes/cupcake.gd", "res://Scripts/game_world.gd", "res://Scripts/horse.gd", "res://Scripts/ingame_ui.gd", "res://Scripts/PlayArea.gd", "res://README.md", "res://Scripts/upgrades.gd", "res://Scripts/varConst.gd", "res://Scripts/varVar.gd"] open_scripts=["res://Scripts/Tools/bakingTray.gd", "res://Scripts/Cupcakes/chocCupcake.gd", "res://Scripts/Cupcakes/cinCupcake.gd", "res://Scripts/Cupcakes/cupcake.gd", "res://Scripts/enemyHon.gd", "res://Scripts/game_world.gd", "res://Scripts/Cupcakes/honCupcake.gd", "res://Scripts/Tools/hooves.gd", "res://Scripts/horse.gd", "res://Scripts/ingame_ui.gd", "res://Scripts/Cupcakes/nightCupcake.gd", "res://README.md", "res://Scripts/Cupcakes/rvelCupcake.gd", "res://Scripts/Cupcakes/strawCupcake.gd", "res://Scripts/upgrades.gd"]
open_help=["Node"] open_help=["Node"]
script_split_offset=70 script_split_offset=70
list_split_offset=0 list_split_offset=0

@ -1,41 +1,83 @@
2a60927148abd1d33b818b535e306557 2a60927148abd1d33b818b535e306557
::res://::1678090313 ::res://::1680072698
export_presets.cfg::TextFile::-1::1678010409::0::1::::<><>:: export_presets.cfg::TextFile::-1::1678615956::0::1::::<><>::
README.md::TextFile::-1::1677829846::0::1::::<><>:: README.md::TextFile::-1::1677829846::0::1::::<><>::
::res://addons/::1677750379 ::res://addons/::1677750379
::res://addons/godot-git-plugin/::1677750379 ::res://addons/godot-git-plugin/::1680056617
git_plugin.gdextension::GDExtension::-1::1677750379::0::1::::<><>:: git_plugin.gdextension::GDExtension::-1::1677750379::0::1::::<><>::
plugin.cfg::TextFile::-1::1677750379::0::1::::<><>:: plugin.cfg::TextFile::-1::1677750379::0::1::::<><>::
THIRDPARTY.md::TextFile::-1::1677750379::0::1::::<><>:: THIRDPARTY.md::TextFile::-1::1677750379::0::1::::<><>::
::res://addons/godot-git-plugin/linux/::1677750379 ::res://addons/godot-git-plugin/linux/::1680056617
::res://addons/godot-git-plugin/macos/::1677750379 ::res://addons/godot-git-plugin/macos/::1680056617
::res://addons/godot-git-plugin/win64/::1677750379 ::res://addons/godot-git-plugin/win64/::1680056617
::res://Art/::1677787260 ::res://Art/::1678613770
::res://Art/Characters/::1677787257 ::res://Art/Characters/::1680056616
defaultMare.png::CompressedTexture2D::4875310872288488452::1677758657::1677787257::1::::<><>:: defaultMare.png::CompressedTexture2D::4875310872288488452::1677758657::1677787257::1::::<><>::
::res://Art/Cupcakes/::1677787255 ::res://Art/Cupcakes/::1680056616
ChocCupcake.png::CompressedTexture2D::3335544482266598944::1678176377::1678176383::1::::<><>::
CinCupcake.png::CompressedTexture2D::6767289867738545589::1678488310::1678488729::1::::<><>::
Cupcake.png::CompressedTexture2D::2257367495948376976::1677756335::1677787255::1::::<><>:: Cupcake.png::CompressedTexture2D::2257367495948376976::1677756335::1677787255::1::::<><>::
::res://Art/Locations/::1677787260 HonCupcake.png::CompressedTexture2D::7361236424952522838::1678488638::1678488729::1::::<><>::
NightCupcake.png::CompressedTexture2D::1798860622294198324::1678488712::1678488729::1::::<><>::
RVelCupcake.png::CompressedTexture2D::4611357256445777224::1678488250::1678488729::1::::<><>::
VanCupcake.png::CompressedTexture2D::3610772439077492676::1678176993::1678176997::1::::<><>::
::res://Art/Locations/::1680056616
dungeonHon.png::CompressedTexture2D::6614171134995427825::1679468176::1679469592::1::::<><>::
dungeonNight.png::CompressedTexture2D::3363708571641826955::1679617687::1679617784::1::::<><>::
yard1.png::CompressedTexture2D::4372226739663751514::1677759042::1677787260::1::::<><>:: yard1.png::CompressedTexture2D::4372226739663751514::1677759042::1677787260::1::::<><>::
::res://Art/Tools/::1680056617
bakingTray.png::CompressedTexture2D::5691511711123151312::1678613786::1678613792::1::::<><>::
::res://Art/Upgrades/::1677787246 ::res://Art/Upgrades/::1677787246
::res://Scenes/::1678090225 ::res://Releases/::1678095890
game_world.tscn::PackedScene::7981802964863433317::1678090225::0::1::::<><>::res://Scripts/game_world.gd<>res://Scripts/Cupcake Spawn Timer.gd<>uid://dswkgkor3yejo<>uid://cpv7y67qtmino<>res://Scripts/PlayArea.gd<>uid://c4dtrk2kooa6q ::res://Releases/Linux/::1678096050
horse.tscn::PackedScene::8568825373134700876::1678090225::0::1::::<><>::res://Scripts/horse.gd<>uid://cbpvwmngdb4ke ::res://Releases/Linux/v0 Version Zero/::1680056619
::res://Scenes/Cupcakes/::1678090225 ::res://Releases/Linux/v0.1 Pre-Alpha/::1680056620
cupcake.tscn::PackedScene::8468695979515826288::1678090225::0::1::::<><>::res://Scripts/Cupcakes/cupcake.gd<>uid://7fqro4fugv8k ::res://Releases/Web/::1678096071
::res://Scenes/Locations/::1678090225 ::res://Releases/Web/v0 Version Zero/::1680056620
yard.tscn::PackedScene::7883941411178408831::1678090225::0::1::::<><>::uid://b3j662tj6h5vq ::res://Releases/Windows/::1678615524
::res://Scenes/UI/::1678090225 ::res://Releases/Windows/v0 Version Zero/::1680056620
ingame_ui.tscn::PackedScene::6815695514927101566::1678090225::0::1::::<><>::res://Scripts/ingame_ui.gd<>uid://7fqro4fugv8k ::res://Releases/Windows/v0.1 Pre Alpha/::1680056621
upgrades.tscn::PackedScene::5871013436024621816::1678090225::0::1::::<><>::res://Scripts/upgrades.gd<>uid://7fqro4fugv8k ::res://Scenes/::1680056615
::res://Scripts/::1678090225 game_world.tscn::PackedScene::7981802964863433317::1679621567::0::1::::<><>::res://Scripts/game_world.gd<>res://Scripts/Cupcake Spawn Timer.gd<>uid://dswkgkor3yejo<>uid://cpv7y67qtmino<>res://Scripts/PlayArea.gd<>uid://c4dtrk2kooa6q<>uid://cpi1m1vg4lscn<>uid://bkrj5vouqpo8n<>uid://bh3snjiwx8l0v<>uid://c373r4pv46ydj<>uid://ciciat7jdjboy<>uid://bptnammqx5dk2<>uid://cqdqsl5kcd540
Cupcake Spawn Timer.gd::GDScript::-1::1677829748::0::1::::<>Timer<>:: horse.tscn::PackedScene::8568825373134700876::1679300283::0::1::::<><>::res://Scripts/horse.gd<>uid://cbpvwmngdb4ke
game_world.gd::GDScript::-1::1678090225::0::1::::<>Node2D<>:: ::res://Scenes/Cupcakes/::1680056615
horse.gd::GDScript::-1::1678073658::0::1::::<>CharacterBody2D<>:: chocCupcake.tscn::PackedScene::5843790513687768897::1679300283::0::1::::<><>::res://Scripts/Cupcakes/chocCupcake.gd<>uid://bnr06vojcqkqy
ingame_ui.gd::GDScript::-1::1678059546::0::1::::<>CanvasLayer<>:: cinCupcake.tscn::PackedScene::6805921059018230263::1679300282::0::1::::<><>::res://Scripts/Cupcakes/cinCupcake.gd<>uid://c3oejmmv6ysxp
PlayArea.gd::GDScript::-1::1678064613::0::1::::<>Area2D<>:: cupcake.tscn::PackedScene::8468695979515826288::1679300283::0::1::::<><>::res://Scripts/Cupcakes/cupcake.gd<>uid://brpc5ocwgd8ls
upgrades.gd::GDScript::-1::1678074136::0::1::::<>CanvasLayer<>:: honCupcake.tscn::PackedScene::5338967655731389712::1679300283::0::1::::<><>::res://Scripts/Cupcakes/honCupcake.gd<>uid://dc43quvhcwa8e
varConst.gd::GDScript::-1::1677895026::0::1::::<>Node<>:: nightCupcake.tscn::PackedScene::3479266486073426779::1679300282::0::1::::<><>::res://Scripts/Cupcakes/nightCupcake.gd<>uid://0vm8bhbkhqym
varVar.gd::GDScript::-1::1678066992::0::1::::<>Node<>:: rvelCupcake.tscn::PackedScene::2936661773563773771::1679300282::0::1::::<><>::res://Scripts/Cupcakes/rvelCupcake.gd<>uid://b6x1m6u01x377
::res://Scripts/Cupcakes/::1678073658 strawCupcake.tscn::PackedScene::3124004694192797727::1679300283::0::1::::<><>::res://Scripts/Cupcakes/strawCupcake.gd<>uid://7fqro4fugv8k
cupcake.gd::GDScript::-1::1678073658::0::1::::<>RigidBody2D<>:: ::res://Scenes/Enemies/::1680056615
enemyHon.tscn::PackedScene::5903060239589615715::1679620043::0::1::::<><>::res://Scripts/enemyHon.gd
::res://Scenes/Locations/::1680056615
dungeonHon.tscn::PackedScene::5328301215832949731::1679617286::0::1::::<><>::uid://c1h7oxxgn6kd2
dungeonNight.tscn::PackedScene::2208196008289968171::1679617835::0::1::::<><>::uid://bn6n121jt7vsd
neighYard.tscn::PackedScene::633631167704521406::1679300283::0::1::::<><>::uid://b3j662tj6h5vq
yard.tscn::PackedScene::7883941411178408831::1678400136::0::1::::<><>::uid://b3j662tj6h5vq
::res://Scenes/Tools/::1680056615
bakingTray.tscn::PackedScene::6954382797642648543::1679300283::0::1::::<><>::res://Scripts/Tools/bakingTray.gd<>uid://cndampqx57ed1
hooves.tscn::PackedScene::7567573654608928774::1679300283::0::1::::<><>::res://Scripts/Tools/hooves.gd
tool.tscn::PackedScene::1367248170788127558::1678501723::0::1::::<><>::
::res://Scenes/UI/::1680056615
ingame_ui.tscn::PackedScene::6815695514927101566::1679616218::0::1::::<><>::res://Scripts/ingame_ui.gd<>uid://7fqro4fugv8k<>uid://brpc5ocwgd8ls<>uid://bnr06vojcqkqy<>uid://b6x1m6u01x377<>uid://c3oejmmv6ysxp<>uid://dc43quvhcwa8e<>uid://0vm8bhbkhqym
upgrades.tscn::PackedScene::5871013436024621816::1679300282::0::1::::<><>::res://Scripts/upgrades.gd<>uid://7fqro4fugv8k<>uid://brpc5ocwgd8ls<>uid://bnr06vojcqkqy<>uid://b6x1m6u01x377<>uid://c3oejmmv6ysxp<>uid://dc43quvhcwa8e
::res://Scripts/::1680056616
Cupcake Spawn Timer.gd::GDScript::-1::1678186507::0::1::::<>Timer<>::
enemyHon.gd::GDScript::-1::1679620043::0::1::::<>RigidBody2D<>::
game_world.gd::GDScript::-1::1679621567::0::1::::<>Node2D<>::
horse.gd::GDScript::-1::1678505240::0::1::::<>CharacterBody2D<>::
ingame_ui.gd::GDScript::-1::1679616218::0::1::::<>CanvasLayer<>::
PlayArea.gd::GDScript::-1::1678186507::0::1::::<>Area2D<>::
upgrades.gd::GDScript::-1::1678502949::0::1::::<>CanvasLayer<>::
::res://Scripts/Cupcakes/::1680056615
chocCupcake.gd::GDScript::-1::1678180708::0::1::::<>RigidBody2D<>::
cinCupcake.gd::GDScript::-1::1678494053::0::1::::<>RigidBody2D<>::
cupcake.gd::GDScript::-1::1678180708::0::1::::<>RigidBody2D<>::
honCupcake.gd::GDScript::-1::1678490256::0::1::::<>RigidBody2D<>::
nightCupcake.gd::GDScript::-1::1678490280::0::1::::<>RigidBody2D<>::
rvelCupcake.gd::GDScript::-1::1678494048::0::1::::<>RigidBody2D<>::
strawCupcake.gd::GDScript::-1::1678180708::0::1::::<>RigidBody2D<>::
::res://Scripts/Tools/::1680056615
bakingTray.gd::GDScript::-1::1678505161::0::1::::<>RigidBody2D<>::
hooves.gd::GDScript::-1::1678505240::0::1::::<>RigidBody2D<>::

@ -1,7 +1,9 @@
res://Scenes/game_world.tscn res://Scenes/Enemies/enemyHon.tscn
res://Scripts/game_world.gd res://Scripts/game_world.gd
res://Scenes/horse.tscn res://Scenes/game_world.tscn
res://Scenes/Cupcakes/cupcake.tscn
res://Scenes/Locations/yard.tscn
res://Scenes/UI/upgrades.tscn res://Scenes/UI/upgrades.tscn
res://Scenes/UI/ingame_ui.tscn res://Scenes/UI/ingame_ui.tscn
res://Scenes/horse.tscn
res://Scenes/Locations/dungeonNight.tscn
res://Scenes/Tools/bakingTray.tscn
res://Scenes/Cupcakes/cupcake.tscn

@ -8,7 +8,7 @@ Anim={
"grid_snap_active": false, "grid_snap_active": false,
"grid_step": Vector2(8, 8), "grid_step": Vector2(8, 8),
"grid_visibility": 1, "grid_visibility": 1,
"ofs": Vector2(-185.733, -267.442), "ofs": Vector2(-131.296, -189.064),
"primary_grid_steps": 8, "primary_grid_steps": 8,
"show_edit_locks": true, "show_edit_locks": true,
"show_guides": true, "show_guides": true,
@ -32,7 +32,7 @@ Anim={
"snap_rotation_step": 0.261799, "snap_rotation_step": 0.261799,
"snap_scale": false, "snap_scale": false,
"snap_scale_step": 0.1, "snap_scale_step": 0.1,
"zoom": 0.66742 "zoom": 0.629961
} }
3D={ 3D={
"fov": 70.01, "fov": 70.01,

@ -1,5 +1,5 @@
[folding] [folding]
node_unfolds=[NodePath("."), PackedStringArray("Transform", "Material", "Texture", "Ordering", "Visibility", "Editor Description", "Process", "ccVanilla"), NodePath("Location"), PackedStringArray("Visibility"), NodePath("Upgrades"), PackedStringArray("Layer"), NodePath("Cupcakes/Cupcake"), PackedStringArray("Collision"), NodePath("PlayArea"), PackedStringArray("Input", "Collision", "Visibility"), NodePath("PlayArea/CollisionShape2D"), PackedStringArray("Transform", "shape")] node_unfolds=[NodePath("."), PackedStringArray("Transform", "Material", "Texture", "Ordering", "Visibility", "Editor Description", "Process", "ccVanilla"), NodePath("Location"), PackedStringArray("Visibility"), NodePath("Upgrades"), PackedStringArray("Layer"), NodePath("PlayArea"), PackedStringArray("Input", "Collision", "Visibility"), NodePath("PlayArea/CollisionShape2D"), PackedStringArray("Transform", "shape")]
resource_unfolds=["res://Scenes/game_world.tscn::RectangleShape2D_g5fj2", PackedStringArray()] resource_unfolds=["res://Scenes/game_world.tscn::RectangleShape2D_g5fj2", PackedStringArray()]
nodes_folded=[] nodes_folded=[]

@ -8,7 +8,7 @@ Anim={
"grid_snap_active": false, "grid_snap_active": false,
"grid_step": Vector2(8, 8), "grid_step": Vector2(8, 8),
"grid_visibility": 1, "grid_visibility": 1,
"ofs": Vector2(-284.49, -150.315), "ofs": Vector2(-543.061, -365.492),
"primary_grid_steps": 8, "primary_grid_steps": 8,
"show_edit_locks": true, "show_edit_locks": true,
"show_guides": true, "show_guides": true,
@ -32,7 +32,7 @@ Anim={
"snap_rotation_step": 0.261799, "snap_rotation_step": 0.261799,
"snap_scale": false, "snap_scale": false,
"snap_scale_step": 0.1, "snap_scale_step": 0.1,
"zoom": 3.1748 "zoom": 1.49831
} }
3D={ 3D={
"fov": 70.01, "fov": 70.01,

@ -1,5 +1,5 @@
[folding] [folding]
node_unfolds=[NodePath("."), PackedStringArray("Transform"), NodePath("Sprite2D"), PackedStringArray("texture", "Transform", "Texture"), NodePath("CollisionShape2D"), PackedStringArray("Texture", "Material")] node_unfolds=[NodePath("."), PackedStringArray("Transform", "Visibility", "Collision"), NodePath("Sprite2D"), PackedStringArray("texture", "Transform", "Texture"), NodePath("CollisionShape2D"), PackedStringArray("Texture", "Material")]
resource_unfolds=["res://Scenes/horse.tscn::CapsuleShape2D_gg7is", PackedStringArray()] resource_unfolds=["res://Scenes/horse.tscn::CapsuleShape2D_gg7is", PackedStringArray()]
nodes_folded=[] nodes_folded=[]

@ -1,6 +1,6 @@
[editor_metadata] [editor_metadata]
executable_path="/usr/bin/godot4" executable_path="/usr/bin/godot"
use_advanced_connections=true use_advanced_connections=true
[debug_options] [debug_options]
@ -11,18 +11,18 @@ run_reload_scripts=true
[dialog_bounds] [dialog_bounds]
project_settings=Rect2(814, 520, 1120, 920) project_settings=Rect2(814, 520, 1120, 920)
editor_settings=Rect2(830, 580, 900, 700) editor_settings=Rect2(830, 647, 900, 700)
search_help=Rect2(640, 390, 1280, 720) search_help=Rect2(640, 390, 1280, 720)
export=Rect2(830, 640, 900, 700) export=Rect2(1083, 518, 900, 700)
[color_picker] [color_picker]
recent_presets=PackedColorArray(0.181189, 0.0715467, 0.241084, 1, 0.16746, 0.0927669, 0.215293, 1, 0.163438, 0.106064, 0.177906, 1, 0.151073, 0.10726, 0.20049, 1, 0.169037, 0.0963807, 0.200651, 1, 0.159178, 0.105531, 0.189929, 1, 0.722336, 0.665569, 0.997871, 1, 0.0110876, 0.0110876, 0.0110876, 1, 0.0562916, 0.0562916, 0.0562916, 1) recent_presets=PackedColorArray(0.159178, 0.105531, 0.189929, 1, 0.722336, 0.665569, 0.997871, 1, 0.0110876, 0.0110876, 0.0110876, 1, 0.0562916, 0.0562916, 0.0562916, 1, 0.248191, 0.0296674, 0.206438, 1, 0.975717, 0.874132, 0.94369, 1, 0, 0, 0, 1, 0.913142, 0.517409, 1, 1, 0.775721, 0.607382, 1, 1)
[recent_files] [recent_files]
scenes=["res://Scenes/UI/ingame_ui.tscn", "res://Scenes/UI/upgrades.tscn", "res://Scenes/Locations/yard.tscn", "res://Scenes/Cupcakes/cupcake.tscn", "res://Scenes/horse.tscn", "res://Scenes/game_world.tscn", "res://Scenes/UI/Upgrades.tscn", "res://Scenes/Locations/y.tscn", "res://Scenes/Locations/Yard.tscn", "res://Scenes/cupcake.tscn"] scenes=["res://Scenes/Enemies/enemyHon.tscn", "res://Scenes/Cupcakes/cupcake.tscn", "res://Scenes/Tools/bakingTray.tscn", "res://Scenes/Locations/dungeonNight.tscn", "res://Scenes/horse.tscn", "res://Scenes/UI/ingame_ui.tscn", "res://Scenes/UI/upgrades.tscn", "res://Scenes/game_world.tscn", "res://Scenes/Locations/dungeonHon.tscn", "res://Scenes/Cupcakes/chocCupcake.tscn"]
scripts=["Node", "res://Scripts/varConst.gd", "res://Scripts/varVar.gd", "res://Scripts/ingame_ui.gd", "res://Scripts/upgrades.gd", "res://Scripts/PlayArea.gd", "res://README.md", "res://Scripts/Cupcakes/cupcake.gd", "res://Scripts/Cupcake Spawn Timer.gd", "res://Scripts/game_world.gd"] scripts=["Node", "res://Scripts/enemyHon.gd", "res://Scripts/Tools/hooves.gd", "res://Scripts/Tools/bakingTray.gd", "res://Scripts/Cupcakes/strawCupcake.gd", "res://Scripts/Cupcakes/nightCupcake.gd", "res://Scripts/Cupcakes/honCupcake.gd", "res://Scripts/Cupcakes/cinCupcake.gd", "res://Scripts/Cupcakes/rvelCupcake.gd", "res://Scripts/upgrades.gd"]
[script_setup] [script_setup]
@ -34,4 +34,8 @@ advanced_mode=true
[export_options] [export_options]
default_filename="CupcakeRevolutionVersionZero" default_filename="CupcakeRevolution_PreAlpha_V0.1_Windows"
[scripts_panel]
show_scripts_panel=true

@ -1,13 +1,18 @@
res://Scenes/Enemies
res://Scenes/Locations
/home/shobie/CupcakeRevolution1/Windows
/home/shobie/CupcakeRevolution1/Linux /home/shobie/CupcakeRevolution1/Linux
res://Art/Cupcakes
res://Scripts/Tools
res://Scenes/Tools
res://Scripts/Cupcakes
res://Scenes/Cupcakes
/bin /bin
/home/shobie/CupcakeRevolution1 /home/shobie/CupcakeRevolution1
/home/shobie/CupcakeRevolution1/Web /home/shobie/CupcakeRevolution1/Web
/home/shobie/CupcakeRevolution1/Windows
res://Scenes/UI res://Scenes/UI
res://Scripts res://Scripts
res://Scenes/Locations
res://Art/Locations res://Art/Locations
res://Scripts/Cupcakes
res://Art res://Art
res://Scenes res://Scenes
res:// res://

@ -3,10 +3,10 @@
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 21, "column": 0,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 17, "row": 3,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
@ -18,10 +18,10 @@ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 0, "column": 0,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([136, 152, 159, 168, 174, 220, 228, 246, 254, 272, 280, 297, 304, 320, 327, 372, 381, 390, 399, 408, 417, 427, 432, 437, 442, 447, 452, 457, 464, 473, 496, 501]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 113, "row": 343,
"scroll_position": 0.0, "scroll_position": 212.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
@ -31,10 +31,10 @@ state={
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 4, "column": 5,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 16, "row": 3,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
@ -45,16 +45,12 @@ state={
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 0, "column": 37,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 7, "row": 4,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": true, "selection": false,
"selection_from_column": 0,
"selection_from_line": 7,
"selection_to_column": 15,
"selection_to_line": 7,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
@ -80,7 +76,7 @@ state={
"column": 0, "column": 0,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 12, "row": 1,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
@ -88,37 +84,89 @@ state={
[res://Scripts/upgrades.gd] [res://Scripts/upgrades.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 25,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 81,
"scroll_position": 68.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://Scripts/ingame_ui.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"folded_lines": Array[int]([18, 29, 40, 51, 62, 73]),
"h_scroll_position": 0,
"row": 50,
"scroll_position": 12.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://Scripts/Cupcakes/chocCupcake.gd]
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 0, "column": 0,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 21, "row": 9,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": true, "selection": false,
"selection_from_column": 0,
"selection_from_line": 21,
"selection_to_column": 28,
"selection_to_line": 22,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
[res://Scripts/ingame_ui.gd] [res://Scripts/Cupcakes/strawCupcake.gd]
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(), "breakpoints": PackedInt32Array(),
"column": 10, "column": 19,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 7,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://Scripts/Cupcakes/rvelCupcake.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 1,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 5,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://Scripts/Cupcakes/cinCupcake.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 1,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 24, "row": 5,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
[res://Scripts/varVar.gd] [res://Scripts/Cupcakes/honCupcake.gd]
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
@ -126,17 +174,13 @@ state={
"column": 0, "column": 0,
"folded_lines": Array[int]([]), "folded_lines": Array[int]([]),
"h_scroll_position": 0, "h_scroll_position": 0,
"row": 4, "row": 0,
"scroll_position": 0.0, "scroll_position": 0.0,
"selection": true, "selection": false,
"selection_from_column": 0,
"selection_from_line": 4,
"selection_to_column": 17,
"selection_to_line": 5,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
[res://Scripts/varConst.gd] [res://Scripts/Cupcakes/nightCupcake.gd]
state={ state={
"bookmarks": PackedInt32Array(), "bookmarks": PackedInt32Array(),
@ -149,3 +193,45 @@ state={
"selection": false, "selection": false,
"syntax_highlighter": "GDScript" "syntax_highlighter": "GDScript"
} }
[res://Scripts/Tools/bakingTray.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 10,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 4,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://Scripts/Tools/hooves.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 21,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 6,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}
[res://Scripts/enemyHon.gd]
state={
"bookmarks": PackedInt32Array(),
"breakpoints": PackedInt32Array(),
"column": 0,
"folded_lines": Array[int]([]),
"h_scroll_position": 0,
"row": 11,
"scroll_position": 0.0,
"selection": false,
"syntax_highlighter": "GDScript"
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bnr06vojcqkqy"
path="res://.godot/imported/ChocCupcake.png-e006e5de377232b1b1c50df2e20e22a7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Cupcakes/ChocCupcake.png"
dest_files=["res://.godot/imported/ChocCupcake.png-e006e5de377232b1b1c50df2e20e22a7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3oejmmv6ysxp"
path="res://.godot/imported/CinCupcake.png-ac660079f711cde122233d8ebd95be32.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Cupcakes/CinCupcake.png"
dest_files=["res://.godot/imported/CinCupcake.png-ac660079f711cde122233d8ebd95be32.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dc43quvhcwa8e"
path="res://.godot/imported/HonCupcake.png-e8c1d179303f4f6136e7b365357e1728.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Cupcakes/HonCupcake.png"
dest_files=["res://.godot/imported/HonCupcake.png-e8c1d179303f4f6136e7b365357e1728.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://0vm8bhbkhqym"
path="res://.godot/imported/NightCupcake.png-ed5ddf07954b7673a4451f5be2d18bb6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Cupcakes/NightCupcake.png"
dest_files=["res://.godot/imported/NightCupcake.png-ed5ddf07954b7673a4451f5be2d18bb6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b6x1m6u01x377"
path="res://.godot/imported/RVelCupcake.png-14e105634f302b9899846f1e58357344.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Cupcakes/RVelCupcake.png"
dest_files=["res://.godot/imported/RVelCupcake.png-14e105634f302b9899846f1e58357344.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://brpc5ocwgd8ls"
path="res://.godot/imported/VanCupcake.png-d7516ec98435c601fdd7cc0a7cd52e5e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Cupcakes/VanCupcake.png"
dest_files=["res://.godot/imported/VanCupcake.png-d7516ec98435c601fdd7cc0a7cd52e5e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 MiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c1h7oxxgn6kd2"
path="res://.godot/imported/dungeonHon.png-b9f1d47544211a85bc4fc86940c9f7e2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Locations/dungeonHon.png"
dest_files=["res://.godot/imported/dungeonHon.png-b9f1d47544211a85bc4fc86940c9f7e2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bn6n121jt7vsd"
path="res://.godot/imported/dungeonNight.png-ae021c1b5b09eee6d512942d4a4dc37e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Locations/dungeonNight.png"
dest_files=["res://.godot/imported/dungeonNight.png-ae021c1b5b09eee6d512942d4a4dc37e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cndampqx57ed1"
path="res://.godot/imported/bakingTray.png-33a1c6a36a62772510594ecd7feff3bb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Art/Tools/bakingTray.png"
dest_files=["res://.godot/imported/bakingTray.png-33a1c6a36a62772510594ecd7feff3bb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

@ -1,3 +1,53 @@
# Cupcake Revolution # Cupcake Revolution
Mare themed idle game made in Godot 4. Mare themed idle game made in Godot 4.
# Roadmap
## Pre-Alpha:
### 0.1 (done)
- 5 Cupcake types (done)
- Tool Mechanic (done)
- New Location (done)
### 0.2 (in-progress)
- 3+ Cupcake-type specific upgrades:
- Strawberry Combo
- Red Velvet, SweetieBots
- Cinnamon, ???
- Honesty Dungeon
- Start Enemy System
- ???
### 0.3
- Third Area
- First Boss dungeon
- Finish Enemy System
- ???
## Alpha:
### 0.4
- Rock-type cupcakes
- Second Boss dungeon
- Mirror Pool
- Save System
- ???
### 0.5
- Metal-type cupcakes
- Third Boss
- ???
### 0.6
- -type cupcakes
- Fourth Boss dungeon
- ???
## Beta:
### 0.7
- Fifth Boss dungeon
- Super Mirror Pool
- ???
### 0.8
- Sixth Boss dungeon
- ???
### 0.9
- Seventh Boss dungeon
- ???
## Release:
### 1.0
- ??? ;)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

@ -1,213 +0,0 @@
/**************************************************************************/
/* audio.worklet.js */
/**************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* https://godotengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
class RingBuffer {
constructor(p_buffer, p_state, p_threads) {
this.buffer = p_buffer;
this.avail = p_state;
this.threads = p_threads;
this.rpos = 0;
this.wpos = 0;
}
data_left() {
return this.threads ? Atomics.load(this.avail, 0) : this.avail;
}
space_left() {
return this.buffer.length - this.data_left();
}
read(output) {
const size = this.buffer.length;
let from = 0;
let to_write = output.length;
if (this.rpos + to_write > size) {
const high = size - this.rpos;
output.set(this.buffer.subarray(this.rpos, size));
from = high;
to_write -= high;
this.rpos = 0;
}
if (to_write) {
output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from);
}
this.rpos += to_write;
if (this.threads) {
Atomics.add(this.avail, 0, -output.length);
Atomics.notify(this.avail, 0);
} else {
this.avail -= output.length;
}
}
write(p_buffer) {
const to_write = p_buffer.length;
const mw = this.buffer.length - this.wpos;
if (mw >= to_write) {
this.buffer.set(p_buffer, this.wpos);
this.wpos += to_write;
if (mw === to_write) {
this.wpos = 0;
}
} else {
const high = p_buffer.subarray(0, mw);
const low = p_buffer.subarray(mw);
this.buffer.set(high, this.wpos);
this.buffer.set(low);
this.wpos = low.length;
}
if (this.threads) {
Atomics.add(this.avail, 0, to_write);
Atomics.notify(this.avail, 0);
} else {
this.avail += to_write;
}
}
}
class GodotProcessor extends AudioWorkletProcessor {
constructor() {
super();
this.threads = false;
this.running = true;
this.lock = null;
this.notifier = null;
this.output = null;
this.output_buffer = new Float32Array();
this.input = null;
this.input_buffer = new Float32Array();
this.port.onmessage = (event) => {
const cmd = event.data['cmd'];
const data = event.data['data'];
this.parse_message(cmd, data);
};
}
process_notify() {
if (this.notifier) {
Atomics.add(this.notifier, 0, 1);
Atomics.notify(this.notifier, 0);
}
}
parse_message(p_cmd, p_data) {
if (p_cmd === 'start' && p_data) {
const state = p_data[0];
let idx = 0;
this.threads = true;
this.lock = state.subarray(idx, ++idx);
this.notifier = state.subarray(idx, ++idx);
const avail_in = state.subarray(idx, ++idx);
const avail_out = state.subarray(idx, ++idx);
this.input = new RingBuffer(p_data[1], avail_in, true);
this.output = new RingBuffer(p_data[2], avail_out, true);
} else if (p_cmd === 'stop') {
this.running = false;
this.output = null;
this.input = null;
this.lock = null;
this.notifier = null;
} else if (p_cmd === 'start_nothreads') {
this.output = new RingBuffer(p_data[0], p_data[0].length, false);
} else if (p_cmd === 'chunk') {
this.output.write(p_data);
}
}
static array_has_data(arr) {
return arr.length && arr[0].length && arr[0][0].length;
}
process(inputs, outputs, parameters) {
if (!this.running) {
return false; // Stop processing.
}
if (this.output === null) {
return true; // Not ready yet, keep processing.
}
const process_input = GodotProcessor.array_has_data(inputs);
if (process_input) {
const input = inputs[0];
const chunk = input[0].length * input.length;
if (this.input_buffer.length !== chunk) {
this.input_buffer = new Float32Array(chunk);
}
if (!this.threads) {
GodotProcessor.write_input(this.input_buffer, input);
this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer });
} else if (this.input.space_left() >= chunk) {
GodotProcessor.write_input(this.input_buffer, input);
this.input.write(this.input_buffer);
} else {
this.port.postMessage('Input buffer is full! Skipping input frame.');
}
}
const process_output = GodotProcessor.array_has_data(outputs);
if (process_output) {
const output = outputs[0];
const chunk = output[0].length * output.length;
if (this.output_buffer.length !== chunk) {
this.output_buffer = new Float32Array(chunk);
}
if (this.output.data_left() >= chunk) {
this.output.read(this.output_buffer);
GodotProcessor.write_output(output, this.output_buffer);
if (!this.threads) {
this.port.postMessage({ 'cmd': 'read', 'data': chunk });
}
} else {
this.port.postMessage('Output buffer has not enough frames! Skipping output frame.');
}
}
this.process_notify();
return true;
}
static write_output(dest, source) {
const channels = dest.length;
for (let ch = 0; ch < channels; ch++) {
for (let sample = 0; sample < dest[ch].length; sample++) {
dest[ch][sample] = source[sample * channels + ch];
}
}
}
static write_input(dest, source) {
const channels = source.length;
for (let ch = 0; ch < channels; ch++) {
for (let sample = 0; sample < source[ch].length; sample++) {
dest[sample * channels + ch] = source[ch][sample];
}
}
}
}
registerProcessor('godot-processor', GodotProcessor);

@ -1,248 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no">
<title>Cupcake Revolution</title>
<style>
body {
touch-action: none;
margin: 0;
border: 0 none;
padding: 0;
text-align: center;
background-color: black;
}
#canvas {
display: block;
margin: 0;
color: white;
}
#canvas:focus {
outline: none;
}
.godot {
font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
color: #e0e0e0;
background-color: #3b3943;
background-image: linear-gradient(to bottom, #403e48, #35333c);
border: 1px solid #45434e;
box-shadow: 0 0 1px 1px #2f2d35;
}
/* Status display */
#status {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: center;
align-items: center;
/* don't consume click events - make children visible explicitly */
visibility: hidden;
}
#status-progress {
width: 366px;
height: 7px;
background-color: #38363A;
border: 1px solid #444246;
padding: 1px;
box-shadow: 0 0 2px 1px #1B1C22;
border-radius: 2px;
visibility: visible;
}
@media only screen and (orientation:portrait) {
#status-progress {
width: 61.8%;
}
}
#status-progress-inner {
height: 100%;
width: 0;
box-sizing: border-box;
transition: width 0.5s linear;
background-color: #202020;
border: 1px solid #222223;
box-shadow: 0 0 1px 1px #27282E;
border-radius: 3px;
}
#status-indeterminate {
height: 42px;
visibility: visible;
position: relative;
}
#status-indeterminate > div {
width: 4.5px;
height: 0;
border-style: solid;
border-width: 9px 3px 0 3px;
border-color: #2b2b2b transparent transparent transparent;
transform-origin: center 21px;
position: absolute;
}
#status-indeterminate > div:nth-child(1) { transform: rotate( 22.5deg); }
#status-indeterminate > div:nth-child(2) { transform: rotate( 67.5deg); }
#status-indeterminate > div:nth-child(3) { transform: rotate(112.5deg); }
#status-indeterminate > div:nth-child(4) { transform: rotate(157.5deg); }
#status-indeterminate > div:nth-child(5) { transform: rotate(202.5deg); }
#status-indeterminate > div:nth-child(6) { transform: rotate(247.5deg); }
#status-indeterminate > div:nth-child(7) { transform: rotate(292.5deg); }
#status-indeterminate > div:nth-child(8) { transform: rotate(337.5deg); }
#status-notice {
margin: 0 100px;
line-height: 1.3;
visibility: visible;
padding: 4px 6px;
visibility: visible;
}
</style>
<link id='-gd-engine-icon' rel='icon' type='image/png' href='CupcakeRevolutionVersionZero-Web.icon.png' />
<link rel='apple-touch-icon' href='CupcakeRevolutionVersionZero-Web.apple-touch-icon.png'/>
</head>
<body>
<canvas id="canvas">
HTML5 canvas appears to be unsupported in the current browser.<br >
Please try updating or use a different browser.
</canvas>
<div id="status">
<div id="status-progress" style="display: none;" oncontextmenu="event.preventDefault();">
<div id ="status-progress-inner"></div>
</div>
<div id="status-indeterminate" style="display: none;" oncontextmenu="event.preventDefault();">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<div id="status-notice" class="godot" style="display: none;"></div>
</div>
<script src="CupcakeRevolutionVersionZero-Web.js"></script>
<script>
const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"executable":"CupcakeRevolutionVersionZero-Web","experimentalVK":false,"fileSizes":{"CupcakeRevolutionVersionZero-Web.pck":611392,"CupcakeRevolutionVersionZero-Web.wasm":28001575},"focusCanvas":true,"gdextensionLibs":[]};
const engine = new Engine(GODOT_CONFIG);
(function () {
const INDETERMINATE_STATUS_STEP_MS = 100;
const statusProgress = document.getElementById('status-progress');
const statusProgressInner = document.getElementById('status-progress-inner');
const statusIndeterminate = document.getElementById('status-indeterminate');
const statusNotice = document.getElementById('status-notice');
let initializing = true;
let statusMode = 'hidden';
let animationCallbacks = [];
function animate(time) {
animationCallbacks.forEach((callback) => callback(time));
requestAnimationFrame(animate);
}
requestAnimationFrame(animate);
function animateStatusIndeterminate(ms) {
const i = Math.floor((ms / INDETERMINATE_STATUS_STEP_MS) % 8);
if (statusIndeterminate.children[i].style.borderTopColor === '') {
Array.prototype.slice.call(statusIndeterminate.children).forEach((child) => {
child.style.borderTopColor = '';
});
statusIndeterminate.children[i].style.borderTopColor = '#dfdfdf';
}
}
function setStatusMode(mode) {
if (statusMode === mode || !initializing) {
return;
}
[statusProgress, statusIndeterminate, statusNotice].forEach((elem) => {
elem.style.display = 'none';
});
animationCallbacks = animationCallbacks.filter(function (value) {
return (value !== animateStatusIndeterminate);
});
switch (mode) {
case 'progress':
statusProgress.style.display = 'block';
break;
case 'indeterminate':
statusIndeterminate.style.display = 'block';
animationCallbacks.push(animateStatusIndeterminate);
break;
case 'notice':
statusNotice.style.display = 'block';
break;
case 'hidden':
break;
default:
throw new Error('Invalid status mode');
}
statusMode = mode;
}
function setStatusNotice(text) {
while (statusNotice.lastChild) {
statusNotice.removeChild(statusNotice.lastChild);
}
const lines = text.split('\n');
lines.forEach((line) => {
statusNotice.appendChild(document.createTextNode(line));
statusNotice.appendChild(document.createElement('br'));
});
}
function displayFailureNotice(err) {
const msg = err.message || err;
console.error(msg);
setStatusNotice(msg);
setStatusMode('notice');
initializing = false;
}
const missing = Engine.getMissingFeatures();
if (missing.length !== 0) {
const missingMsg = 'Error\nThe following features required to run Godot projects on the Web are missing:\n';
displayFailureNotice(missingMsg + missing.join('\n'));
} else {
setStatusMode('indeterminate');
engine.startGame({
'onProgress': function (current, total) {
if (total > 0) {
statusProgressInner.style.width = `${(current / total) * 100}%`;
setStatusMode('progress');
if (current === total) {
// wait for progress bar animation
setTimeout(() => {
setStatusMode('indeterminate');
}, 500);
}
} else {
setStatusMode('indeterminate');
}
},
}).then(() => {
setStatusMode('hidden');
initializing = false;
}, displayFailureNotice);
}
}());
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

@ -1,164 +0,0 @@
/**
* @license
* Copyright 2015 The Emscripten Authors
* SPDX-License-Identifier: MIT
*/
// Pthread Web Worker startup routine:
// This is the entry point file that is loaded first by each Web Worker
// that executes pthreads on the Emscripten application.
'use strict';
var Module = {};
// Thread-local guard variable for one-time init of the JS state
var initializedJS = false;
// Proxying queues that were notified before the thread started and need to be
// executed as part of startup.
var pendingNotifiedProxyingQueues = [];
function assert(condition, text) {
if (!condition) abort('Assertion failed: ' + text);
}
function threadPrintErr() {
var text = Array.prototype.slice.call(arguments).join(' ');
console.error(text);
}
function threadAlert() {
var text = Array.prototype.slice.call(arguments).join(' ');
postMessage({cmd: 'alert', text: text, threadId: Module['_pthread_self']()});
}
// We don't need out() for now, but may need to add it if we want to use it
// here. Or, if this code all moves into the main JS, that problem will go
// away. (For now, adding it here increases code size for no benefit.)
var out = () => { throw 'out() is not defined in worker.js.'; }
var err = threadPrintErr;
self.alert = threadAlert;
Module['instantiateWasm'] = (info, receiveInstance) => {
// Instantiate from the module posted from the main thread.
// We can just use sync instantiation in the worker.
var instance = new WebAssembly.Instance(Module['wasmModule'], info);
// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193,
// the above line no longer optimizes out down to the following line.
// When the regression is fixed, we can remove this if/else.
receiveInstance(instance);
// We don't need the module anymore; new threads will be spawned from the main thread.
Module['wasmModule'] = null;
return instance.exports;
}
self.onmessage = (e) => {
try {
if (e.data.cmd === 'load') { // Preload command that is called once per worker to parse and load the Emscripten code.
// Module and memory were sent from main thread
Module['wasmModule'] = e.data.wasmModule;
Module['wasmMemory'] = e.data.wasmMemory;
Module['buffer'] = Module['wasmMemory'].buffer;
Module['ENVIRONMENT_IS_PTHREAD'] = true;
if (typeof e.data.urlOrBlob == 'string') {
importScripts(e.data.urlOrBlob);
} else {
var objectUrl = URL.createObjectURL(e.data.urlOrBlob);
importScripts(objectUrl);
URL.revokeObjectURL(objectUrl);
}
Godot(Module).then(function (instance) {
Module = instance;
});
} else if (e.data.cmd === 'run') {
// This worker was idle, and now should start executing its pthread entry
// point.
// performance.now() is specced to return a wallclock time in msecs since
// that Web Worker/main thread launched. However for pthreads this can
// cause subtle problems in emscripten_get_now() as this essentially
// would measure time from pthread_create(), meaning that the clocks
// between each threads would be wildly out of sync. Therefore sync all
// pthreads to the clock on the main browser thread, so that different
// threads see a somewhat coherent clock across each of them
// (+/- 0.1msecs in testing).
Module['__performance_now_clock_drift'] = performance.now() - e.data.time;
// Pass the thread address to wasm to store it for fast access.
Module['__emscripten_thread_init'](e.data.pthread_ptr, /*isMainBrowserThread=*/0, /*isMainRuntimeThread=*/0, /*canBlock=*/1);
assert(e.data.pthread_ptr);
// Also call inside JS module to set up the stack frame for this pthread in JS module scope
Module['establishStackSpace']();
Module['PThread'].receiveObjectTransfer(e.data);
Module['PThread'].threadInitTLS();
if (!initializedJS) {
// Execute any proxied work that came in before the thread was
// initialized. Only do this once because it is only possible for
// proxying notifications to arrive before thread initialization on
// fresh workers.
pendingNotifiedProxyingQueues.forEach(queue => {
Module['executeNotifiedProxyingQueue'](queue);
});
pendingNotifiedProxyingQueues = [];
initializedJS = true;
}
try {
Module['invokeEntryPoint'](e.data.start_routine, e.data.arg);
} catch(ex) {
if (ex != 'unwind') {
// ExitStatus not present in MINIMAL_RUNTIME
if (ex instanceof Module['ExitStatus']) {
if (Module['keepRuntimeAlive']()) {
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), staying alive due to noExitRuntime.');
} else {
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), calling _emscripten_thread_exit.');
Module['__emscripten_thread_exit'](ex.status);
}
}
else
{
// The pthread "crashed". Do not call `_emscripten_thread_exit` (which
// would make this thread joinable. Instead, re-throw the exception
// and let the top level handler propagate it back to the main thread.
throw ex;
}
} else {
// else e == 'unwind', and we should fall through here and keep the pthread alive for asynchronous events.
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' completed its main entry point with an `unwind`, keeping the worker alive for asynchronous operation.');
}
}
} else if (e.data.cmd === 'cancel') { // Main thread is asking for a pthread_cancel() on this thread.
if (Module['_pthread_self']()) {
Module['__emscripten_thread_exit'](-1/*PTHREAD_CANCELED*/);
}
} else if (e.data.target === 'setimmediate') {
// no-op
} else if (e.data.cmd === 'processProxyingQueue') {
if (initializedJS) {
Module['executeNotifiedProxyingQueue'](e.data.queue);
} else {
// Defer executing this queue until the runtime is initialized.
pendingNotifiedProxyingQueues.push(e.data.queue);
}
} else {
err('worker.js received unknown command ' + e.data.cmd);
err(e.data);
}
} catch(ex) {
err('worker.js onmessage() captured an uncaught exception: ' + ex);
if (ex && ex.stack) err(ex.stack);
if (Module['__emscripten_thread_crashed']) {
Module['__emscripten_thread_crashed']();
}
throw ex;
}
};

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://cpi1m1vg4lscn"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/chocCupcake.gd" id="1_fnewv"]
[ext_resource type="Texture2D" uid="uid://bnr06vojcqkqy" path="res://Art/Cupcakes/ChocCupcake.png" id="2_i5efq"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 10.5119
[node name="ChocCupcake" type="RigidBody2D"]
collision_layer = 2
inertia = 5.86
gravity_scale = 0.0
linear_damp = 1.0
script = ExtResource("1_fnewv")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -1.288)
scale = Vector2(1.5, 1.5)
texture = ExtResource("2_i5efq")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2)
shape = SubResource("CircleShape2D_svirt")
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://c373r4pv46ydj"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/cinCupcake.gd" id="1_36k3s"]
[ext_resource type="Texture2D" uid="uid://c3oejmmv6ysxp" path="res://Art/Cupcakes/CinCupcake.png" id="2_7rk1h"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 10.5119
[node name="CinCupcake" type="RigidBody2D"]
collision_layer = 2
inertia = 0.17
gravity_scale = 0.0
linear_damp = 1.3
script = ExtResource("1_36k3s")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -1.288)
scale = Vector2(1.5, 1.5)
texture = ExtResource("2_7rk1h")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2)
shape = SubResource("CircleShape2D_svirt")
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

@ -1,24 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://dswkgkor3yejo"] [gd_scene load_steps=4 format=3 uid="uid://dswkgkor3yejo"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/cupcake.gd" id="1_2fcqt"] [ext_resource type="Script" path="res://Scripts/Cupcakes/cupcake.gd" id="1_2fcqt"]
[ext_resource type="Texture2D" uid="uid://7fqro4fugv8k" path="res://Art/Cupcakes/Cupcake.png" id="1_632he"] [ext_resource type="Texture2D" uid="uid://brpc5ocwgd8ls" path="res://Art/Cupcakes/VanCupcake.png" id="2_crmpu"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"] [sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 16.0 radius = 10.5119
[node name="Cupcake" type="RigidBody2D"] [node name="VanCupcake" type="RigidBody2D"]
scale = Vector2(0.7, 0.7)
collision_layer = 2 collision_layer = 2
inertia = 0.17
gravity_scale = 0.0 gravity_scale = 0.0
linear_damp = 6.0 linear_damp = 1.0
script = ExtResource("1_2fcqt") script = ExtResource("1_2fcqt")
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1 texture_filter = 1
position = Vector2(0, -4) position = Vector2(0, -1.288)
scale = Vector2(2, 2) scale = Vector2(1.5, 1.5)
texture = ExtResource("1_632he") texture = ExtResource("2_crmpu")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2) scale = Vector2(2, 2)

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://ciciat7jdjboy"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/honCupcake.gd" id="1_pnosq"]
[ext_resource type="Texture2D" uid="uid://dc43quvhcwa8e" path="res://Art/Cupcakes/HonCupcake.png" id="2_3t67h"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 10.5119
[node name="HonCupcake" type="RigidBody2D"]
collision_layer = 2
inertia = 0.17
gravity_scale = 0.0
linear_damp = 2.0
script = ExtResource("1_pnosq")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -1.288)
scale = Vector2(1.5, 1.5)
texture = ExtResource("2_3t67h")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2)
shape = SubResource("CircleShape2D_svirt")
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://bptnammqx5dk2"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/nightCupcake.gd" id="1_o16jw"]
[ext_resource type="Texture2D" uid="uid://0vm8bhbkhqym" path="res://Art/Cupcakes/NightCupcake.png" id="2_otyy4"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 10.5119
[node name="NightCupcake" type="RigidBody2D"]
collision_layer = 2
inertia = 0.17
gravity_scale = 0.0
linear_damp = 10.0
script = ExtResource("1_o16jw")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -1.288)
scale = Vector2(1.5, 1.5)
texture = ExtResource("2_otyy4")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2)
shape = SubResource("CircleShape2D_svirt")
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://bh3snjiwx8l0v"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/rvelCupcake.gd" id="1_q06vq"]
[ext_resource type="Texture2D" uid="uid://b6x1m6u01x377" path="res://Art/Cupcakes/RVelCupcake.png" id="2_c48o5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 10.5119
[node name="RVelCupcake" type="RigidBody2D"]
collision_layer = 2
inertia = 0.17
gravity_scale = 0.0
linear_damp = 1.2
script = ExtResource("1_q06vq")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -1.288)
scale = Vector2(1.5, 1.5)
texture = ExtResource("2_c48o5")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2)
shape = SubResource("CircleShape2D_svirt")
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://bkrj5vouqpo8n"]
[ext_resource type="Script" path="res://Scripts/Cupcakes/strawCupcake.gd" id="1_qw0j6"]
[ext_resource type="Texture2D" uid="uid://7fqro4fugv8k" path="res://Art/Cupcakes/Cupcake.png" id="2_21f8h"]
[sub_resource type="CircleShape2D" id="CircleShape2D_svirt"]
radius = 10.5119
[node name="StrawCupcake" type="RigidBody2D"]
collision_layer = 2
inertia = 0.17
gravity_scale = 0.0
linear_damp = 1.1
script = ExtResource("1_qw0j6")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture_filter = 1
position = Vector2(0, -1.288)
scale = Vector2(1.5, 1.5)
texture = ExtResource("2_21f8h")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
scale = Vector2(2, 2)
shape = SubResource("CircleShape2D_svirt")
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://cqdqsl5kcd540"]
[ext_resource type="Script" path="res://Scripts/enemyHon.gd" id="1_u0f3a"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_1qaxj"]
radius = 79.0
height = 208.0
[node name="EnemyHon" type="RigidBody2D"]
script = ExtResource("1_u0f3a")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CapsuleShape2D_1qaxj")
[node name="Sprite2D" type="Sprite2D" parent="."]
[connection signal="body_entered" from="." to="." method="_on_body_entered"]

@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://ch6clv8ugoe3l"]
[ext_resource type="Texture2D" uid="uid://c1h7oxxgn6kd2" path="res://Art/Locations/dungeonHon.png" id="1_fgawn"]
[node name="Sprite2D" type="Sprite2D"]
position = Vector2(-33.9999, -26)
scale = Vector2(0.516406, 0.531481)
texture = ExtResource("1_fgawn")
centered = false
flip_h = true

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://6pwwvqedihxr"]
[ext_resource type="Texture2D" uid="uid://bn6n121jt7vsd" path="res://Art/Locations/dungeonNight.png" id="1_13yoi"]
[node name="Sprite2D" type="Sprite2D"]
position = Vector2(-33.9999, -26)
scale = Vector2(0.772656, 0.797917)
texture = ExtResource("1_13yoi")
centered = false

@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://ja62vsvabsy5"]
[ext_resource type="Texture2D" uid="uid://b3j662tj6h5vq" path="res://Art/Locations/yard1.png" id="1_o36nf"]
[node name="Sprite2D" type="Sprite2D"]
position = Vector2(-33.9999, -26)
scale = Vector2(0.330667, 0.3361)
texture = ExtResource("1_o36nf")
centered = false
flip_h = true

@ -0,0 +1,25 @@
[gd_scene load_steps=4 format=3 uid="uid://c6c0wy62gdsd0"]
[ext_resource type="Script" path="res://Scripts/Tools/bakingTray.gd" id="1_x6kvb"]
[ext_resource type="Texture2D" uid="uid://cndampqx57ed1" path="res://Art/Tools/bakingTray.png" id="2_j25b1"]
[sub_resource type="CircleShape2D" id="CircleShape2D_nw58x"]
radius = 175.103
[node name="Tool" type="RigidBody2D"]
disable_mode = 2
collision_layer = 3
collision_mask = 3
freeze = true
freeze_mode = 1
script = ExtResource("1_x6kvb")
[node name="Sprite2D" type="Sprite2D" parent="."]
position = Vector2(-117, 64)
texture = ExtResource("2_j25b1")
offset = Vector2(0, -64)
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
light_mask = 3
visibility_layer = 3
shape = SubResource("CircleShape2D_nw58x")

@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=3 uid="uid://df213kk2wwp71"]
[ext_resource type="Script" path="res://Scripts/Tools/hooves.gd" id="1_o1lbx"]
[sub_resource type="CircleShape2D" id="CircleShape2D_nw58x"]
radius = 68.0661
[node name="Tool" type="RigidBody2D"]
collision_layer = 3
collision_mask = 3
freeze = true
freeze_mode = 1
script = ExtResource("1_o1lbx")
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
light_mask = 3
visibility_layer = 3
shape = SubResource("CircleShape2D_nw58x")

@ -0,0 +1,15 @@
[gd_scene load_steps=2 format=3 uid="uid://tqkm3r2c3uru"]
[sub_resource type="CircleShape2D" id="CircleShape2D_nw58x"]
radius = 68.0661
[node name="Tool" type="RigidBody2D"]
collision_layer = 3
collision_mask = 3
[node name="Sprite2D" type="Sprite2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
light_mask = 3
visibility_layer = 3
shape = SubResource("CircleShape2D_nw58x")

@ -1,7 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://c4dtrk2kooa6q"] [gd_scene load_steps=9 format=3 uid="uid://c4dtrk2kooa6q"]
[ext_resource type="Script" path="res://Scripts/ingame_ui.gd" id="1_q8tnv"] [ext_resource type="Script" path="res://Scripts/ingame_ui.gd" id="1_q8tnv"]
[ext_resource type="Texture2D" uid="uid://7fqro4fugv8k" path="res://Art/Cupcakes/Cupcake.png" id="1_vkoxt"] [ext_resource type="Texture2D" uid="uid://7fqro4fugv8k" path="res://Art/Cupcakes/Cupcake.png" id="1_vkoxt"]
[ext_resource type="Texture2D" uid="uid://brpc5ocwgd8ls" path="res://Art/Cupcakes/VanCupcake.png" id="2_65fff"]
[ext_resource type="Texture2D" uid="uid://bnr06vojcqkqy" path="res://Art/Cupcakes/ChocCupcake.png" id="3_xle4l"]
[ext_resource type="Texture2D" uid="uid://b6x1m6u01x377" path="res://Art/Cupcakes/RVelCupcake.png" id="5_dcln5"]
[ext_resource type="Texture2D" uid="uid://c3oejmmv6ysxp" path="res://Art/Cupcakes/CinCupcake.png" id="6_75s1v"]
[ext_resource type="Texture2D" uid="uid://dc43quvhcwa8e" path="res://Art/Cupcakes/HonCupcake.png" id="7_shcyg"]
[ext_resource type="Texture2D" uid="uid://0vm8bhbkhqym" path="res://Art/Cupcakes/NightCupcake.png" id="8_ei4oh"]
[node name="InGameUI" type="CanvasLayer"] [node name="InGameUI" type="CanvasLayer"]
script = ExtResource("1_q8tnv") script = ExtResource("1_q8tnv")
@ -13,6 +19,7 @@ offset_left = 16.0
offset_top = 997.0 offset_top = 997.0
offset_right = 1908.0 offset_right = 1908.0
offset_bottom = 1066.0 offset_bottom = 1066.0
focus_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="Main"] [node name="HBoxContainer" type="HBoxContainer" parent="Main"]
layout_mode = 2 layout_mode = 2
@ -21,14 +28,56 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="Tools" type="Button" parent="Main/HBoxContainer"]
layout_mode = 2
text = "Tools"
[node name="Areas" type="Button" parent="Main/HBoxContainer"]
layout_mode = 2
text = "Areas"
[node name="Van" type="Button" parent="Main/HBoxContainer"] [node name="Van" type="Button" parent="Main/HBoxContainer"]
layout_mode = 2 layout_mode = 2
icon = ExtResource("1_vkoxt") icon = ExtResource("2_65fff")
icon_alignment = 1 icon_alignment = 1
[node name="Choc" type="Button" parent="Main/HBoxContainer"] [node name="Choc" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
icon = ExtResource("3_xle4l")
[node name="Straw" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
icon = ExtResource("1_vkoxt")
[node name="RVel" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
icon = ExtResource("5_dcln5")
[node name="Cin" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
icon = ExtResource("6_75s1v")
[node name="Honest" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
icon = ExtResource("7_shcyg")
[node name="Nightmare" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
icon = ExtResource("8_ei4oh")
[node name="Rock" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2
[node name="Button8" type="Button" parent="Main/HBoxContainer"]
visible = false
layout_mode = 2 layout_mode = 2
text = "Choc"
[node name="Num" type="Control" parent="."] [node name="Num" type="Control" parent="."]
layout_mode = 3 layout_mode = 3
@ -38,6 +87,97 @@ offset_top = 15.0
offset_right = 239.0 offset_right = 239.0
offset_bottom = 985.0 offset_bottom = 985.0
[node name="NumGrid" type="GridContainer" parent="Num"]
layout_mode = 0
offset_left = -30.0
offset_right = 201.0
offset_bottom = 968.0
columns = 2
[node name="vanIcon" type="TextureRect" parent="Num/NumGrid"]
layout_mode = 2
texture = ExtResource("2_65fff")
stretch_mode = 5
[node name="ccVanNum" type="RichTextLabel" parent="Num/NumGrid"]
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
text = "0"
fit_content = true
[node name="chocIcon" type="TextureRect" parent="Num/NumGrid"]
visible = false
layout_mode = 2
texture = ExtResource("3_xle4l")
stretch_mode = 5
[node name="ccChocNum" type="RichTextLabel" parent="Num/NumGrid"]
visible = false
layout_mode = 2
text = "0"
fit_content = true
[node name="strawIcon" type="TextureRect" parent="Num/NumGrid"]
visible = false
layout_mode = 2
texture = ExtResource("1_vkoxt")
stretch_mode = 5
[node name="ccStrawNum" type="RichTextLabel" parent="Num/NumGrid"]
visible = false
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
text = "0"
fit_content = true
[node name="rvelIcon" type="TextureRect" parent="Num/NumGrid"]
visible = false
layout_mode = 2
texture = ExtResource("5_dcln5")
stretch_mode = 5
[node name="ccRVelNum" type="RichTextLabel" parent="Num/NumGrid"]
visible = false
layout_mode = 2
text = "0"
fit_content = true
[node name="cinIcon" type="TextureRect" parent="Num/NumGrid"]
visible = false
layout_mode = 2
texture = ExtResource("6_75s1v")
stretch_mode = 5
[node name="ccCinNum" type="RichTextLabel" parent="Num/NumGrid"]
visible = false
layout_mode = 2
text = "0"
fit_content = true
[node name="honIcon" type="TextureRect" parent="Num/NumGrid"]
visible = false
layout_mode = 2
texture = ExtResource("7_shcyg")
stretch_mode = 5
[node name="ccHonNum" type="RichTextLabel" parent="Num/NumGrid"]
visible = false
layout_mode = 2
text = "0"
fit_content = true
[node name="nightIcon" type="TextureRect" parent="Num/NumGrid"]
visible = false
layout_mode = 2
texture = ExtResource("8_ei4oh")
stretch_mode = 5
[node name="ccNightNum" type="RichTextLabel" parent="Num/NumGrid"]
visible = false
layout_mode = 2
text = "0"
fit_content = true
[node name="VBoxContainer" type="VBoxContainer" parent="Num"] [node name="VBoxContainer" type="VBoxContainer" parent="Num"]
layout_mode = 2 layout_mode = 2
anchor_right = 1.0 anchor_right = 1.0
@ -45,10 +185,6 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="ccVanNum" type="Label" parent="Num/VBoxContainer"]
layout_mode = 2
text = "0"
[node name="Icons" type="Control" parent="."] [node name="Icons" type="Control" parent="."]
clip_children = 1 clip_children = 1
layout_mode = 3 layout_mode = 3
@ -65,11 +201,12 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="ccVanIcon" type="Sprite2D" parent="Icons/VBoxContainer"] [connection signal="pressed" from="Main/HBoxContainer/Tools" to="." method="_on_tools_pressed"]
position = Vector2(11, 0) [connection signal="pressed" from="Main/HBoxContainer/Areas" to="." method="_on_areas_pressed"]
scale = Vector2(0.874, 0.874)
texture = ExtResource("1_vkoxt")
centered = false
[connection signal="pressed" from="Main/HBoxContainer/Van" to="." method="_on_van_pressed"] [connection signal="pressed" from="Main/HBoxContainer/Van" to="." method="_on_van_pressed"]
[connection signal="pressed" from="Main/HBoxContainer/Choc" to="." method="_on_choc_pressed"] [connection signal="pressed" from="Main/HBoxContainer/Choc" to="." method="_on_choc_pressed"]
[connection signal="pressed" from="Main/HBoxContainer/Straw" to="." method="_on_straw_pressed"]
[connection signal="pressed" from="Main/HBoxContainer/RVel" to="." method="_on_r_vel_pressed"]
[connection signal="pressed" from="Main/HBoxContainer/Cin" to="." method="_on_cin_pressed"]
[connection signal="pressed" from="Main/HBoxContainer/Honest" to="." method="_on_honest_pressed"]
[connection signal="pressed" from="Main/HBoxContainer/Nightmare" to="." method="_on_nightmare_pressed"]

File diff suppressed because it is too large Load Diff

@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://dlypem0porccr"] [gd_scene load_steps=15 format=3 uid="uid://dlypem0porccr"]
[ext_resource type="Script" path="res://Scripts/game_world.gd" id="1_c2sx0"] [ext_resource type="Script" path="res://Scripts/game_world.gd" id="1_c2sx0"]
[ext_resource type="Script" path="res://Scripts/Cupcake Spawn Timer.gd" id="2_bjylp"] [ext_resource type="Script" path="res://Scripts/Cupcake Spawn Timer.gd" id="2_bjylp"]
@ -6,6 +6,13 @@
[ext_resource type="PackedScene" uid="uid://cpv7y67qtmino" path="res://Scenes/UI/upgrades.tscn" id="2_vdy4r"] [ext_resource type="PackedScene" uid="uid://cpv7y67qtmino" path="res://Scenes/UI/upgrades.tscn" id="2_vdy4r"]
[ext_resource type="Script" path="res://Scripts/PlayArea.gd" id="3_3x1i6"] [ext_resource type="Script" path="res://Scripts/PlayArea.gd" id="3_3x1i6"]
[ext_resource type="PackedScene" uid="uid://c4dtrk2kooa6q" path="res://Scenes/UI/ingame_ui.tscn" id="3_wm6l6"] [ext_resource type="PackedScene" uid="uid://c4dtrk2kooa6q" path="res://Scenes/UI/ingame_ui.tscn" id="3_wm6l6"]
[ext_resource type="PackedScene" uid="uid://cpi1m1vg4lscn" path="res://Scenes/Cupcakes/chocCupcake.tscn" id="6_8pgeb"]
[ext_resource type="PackedScene" uid="uid://bkrj5vouqpo8n" path="res://Scenes/Cupcakes/strawCupcake.tscn" id="7_mcfjy"]
[ext_resource type="PackedScene" uid="uid://bh3snjiwx8l0v" path="res://Scenes/Cupcakes/rvelCupcake.tscn" id="8_y2btb"]
[ext_resource type="PackedScene" uid="uid://c373r4pv46ydj" path="res://Scenes/Cupcakes/cinCupcake.tscn" id="9_4x6i5"]
[ext_resource type="PackedScene" uid="uid://ciciat7jdjboy" path="res://Scenes/Cupcakes/honCupcake.tscn" id="10_ui0cc"]
[ext_resource type="PackedScene" uid="uid://bptnammqx5dk2" path="res://Scenes/Cupcakes/nightCupcake.tscn" id="11_n5j3q"]
[ext_resource type="PackedScene" uid="uid://cqdqsl5kcd540" path="res://Scenes/Enemies/enemyHon.tscn" id="13_mdk60"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_g5fj2"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_g5fj2"]
size = Vector2(1820, 986) size = Vector2(1820, 986)
@ -27,8 +34,33 @@ script = ExtResource("2_bjylp")
[node name="Cupcakes" type="Node2D" parent="."] [node name="Cupcakes" type="Node2D" parent="."]
[node name="Cupcake" parent="Cupcakes" instance=ExtResource("2_fi3r2")] [node name="VanCupcake" parent="Cupcakes" instance=ExtResource("2_fi3r2")]
position = Vector2(283, -176) position = Vector2(46, -1490)
freeze = true
[node name="ChocCupcake" parent="Cupcakes" instance=ExtResource("6_8pgeb")]
position = Vector2(111, -1489)
freeze = true
[node name="StrawCupcake" parent="Cupcakes" instance=ExtResource("7_mcfjy")]
position = Vector2(177, -1485)
freeze = true
[node name="RVelCupcake" parent="Cupcakes" instance=ExtResource("8_y2btb")]
position = Vector2(238, -1486)
freeze = true
[node name="CinCupcake" parent="Cupcakes" instance=ExtResource("9_4x6i5")]
position = Vector2(300, -1490)
freeze = true
[node name="HonCupcake" parent="Cupcakes" instance=ExtResource("10_ui0cc")]
position = Vector2(358, -1486)
freeze = true
[node name="NightCupcake" parent="Cupcakes" instance=ExtResource("11_n5j3q")]
position = Vector2(418, -1488)
freeze = true
[node name="PlayArea" type="Area2D" parent="."] [node name="PlayArea" type="Area2D" parent="."]
light_mask = 3 light_mask = 3
@ -41,11 +73,52 @@ script = ExtResource("3_3x1i6")
position = Vector2(957, 539) position = Vector2(957, 539)
shape = SubResource("RectangleShape2D_g5fj2") shape = SubResource("RectangleShape2D_g5fj2")
[connection signal="condensedCupcake1" from="." to="Cupcakes/Cupcake" method="_on_game_world_condensed_cupcake_1"] [node name="EnemyHon" parent="." instance=ExtResource("13_mdk60")]
position = Vector2(112, -1691)
[connection signal="abandonedCastle" from="Upgrades" to="." method="_on_upgrades_abandoned_castle"]
[connection signal="condensedCupcake1" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_1"] [connection signal="condensedCupcake1" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_1"]
[connection signal="condensedCupcake2" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_2"]
[connection signal="condensedCupcake3" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_3"]
[connection signal="condensedCupcake4" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_4"]
[connection signal="condensedCupcake5" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_5"]
[connection signal="condensedCupcake6" from="Upgrades" to="." method="_on_upgrades_condensed_cupcake_6"]
[connection signal="cupcakeDamage" from="Upgrades" to="." method="_on_upgrades_cupcake_damage"]
[connection signal="fasterCupcake" from="Upgrades" to="." method="_on_upgrades_faster_cupcake"] [connection signal="fasterCupcake" from="Upgrades" to="." method="_on_upgrades_faster_cupcake"]
[connection signal="fasterCupcake2" from="Upgrades" to="." method="_on_upgrades_faster_cupcake_2"]
[connection signal="fasterCupcake3" from="Upgrades" to="." method="_on_upgrades_faster_cupcake_3"]
[connection signal="fasterCupcake4" from="Upgrades" to="." method="_on_upgrades_faster_cupcake_4"]
[connection signal="fasterCupcake5" from="Upgrades" to="." method="_on_upgrades_faster_cupcake_5"]
[connection signal="fasterCupcake6" from="Upgrades" to="." method="_on_upgrades_faster_cupcake_6"]
[connection signal="honestDungeon" from="Upgrades" to="." method="_on_upgrades_honest_dungeon"]
[connection signal="horseHealth" from="Upgrades" to="." method="_on_upgrades_horse_health"]
[connection signal="neighYard" from="Upgrades" to="." method="_on_upgrades_neigh_yard"]
[connection signal="oneMoreCupcake" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake"] [connection signal="oneMoreCupcake" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake"]
[connection signal="oneMoreCupcake2" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake_2"]
[connection signal="oneMoreCupcake3" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake_3"]
[connection signal="oneMoreCupcake4" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake_4"]
[connection signal="oneMoreCupcake5" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake_5"]
[connection signal="oneMoreCupcake6" from="Upgrades" to="." method="_on_upgrades_one_more_cupcake_6"]
[connection signal="sweetieDamage" from="Upgrades" to="." method="_on_upgrades_sweetie_damage"]
[connection signal="tool1" from="Upgrades" to="." method="_on_upgrades_tool_1"]
[connection signal="tool2" from="Upgrades" to="." method="_on_upgrades_tool_2"]
[connection signal="unlockChoc" from="Upgrades" to="." method="_on_upgrades_unlock_choc"]
[connection signal="unlockCin" from="Upgrades" to="." method="_on_upgrades_unlock_cin"]
[connection signal="unlockHon" from="Upgrades" to="." method="_on_upgrades_unlock_hon"]
[connection signal="unlockNightmare" from="Upgrades" to="." method="_on_upgrades_unlock_nightmare"]
[connection signal="unlockRVel" from="Upgrades" to="." method="_on_upgrades_unlock_r_vel"]
[connection signal="unlockStraw" from="Upgrades" to="." method="_on_upgrades_unlock_straw"]
[connection signal="yourYard" from="Upgrades" to="." method="_on_upgrades_your_yard"]
[connection signal="timeout" from="Cupcake Spawn Timer" to="." method="_on_timeout"] [connection signal="timeout" from="Cupcake Spawn Timer" to="." method="_on_timeout"]
[connection signal="ccVanCollected" from="Cupcakes/Cupcake" to="." method="_on_cupcake_cc_van_collected"] [connection signal="ccVanCollected" from="Cupcakes/VanCupcake" to="." method="_on_van_cupcake_cc_van_collected"]
[connection signal="body_exited" from="PlayArea" to="." method="_on_play_area_body_exited"] [connection signal="ccChocCollected" from="Cupcakes/ChocCupcake" to="." method="_on_choc_cupcake_cc_choc_collected"]
[connection signal="body_exited" from="PlayArea" to="Cupcakes/Cupcake" method="_on_play_area_body_exited"] [connection signal="ccStrawCollected" from="Cupcakes/StrawCupcake" to="." method="_on_straw_cupcake_cc_straw_collected"]
[connection signal="ccRVelCollected" from="Cupcakes/RVelCupcake" to="." method="_on_rvel_cupcake_cc_rvel_collected"]
[connection signal="ccCinCollected" from="Cupcakes/CinCupcake" to="." method="_on_cin_cupcake_cc_cin_collected"]
[connection signal="ccHonCollected" from="Cupcakes/HonCupcake" to="." method="_on_honest_cupcake_cc_hon_collected"]
[connection signal="ccNightCollected" from="Cupcakes/NightCupcake" to="." method="_on_night_cupcake_cc_night_collected"]
[connection signal="body_exited" from="PlayArea" to="Cupcakes/VanCupcake" method="_on_play_area_body_exited"]
[connection signal="body_exited" from="PlayArea" to="Cupcakes/ChocCupcake" method="_on_play_area_body_exited"]
[connection signal="body_exited" from="PlayArea" to="Cupcakes/StrawCupcake" method="_on_play_area_body_exited"]
[connection signal="body_exited" from="PlayArea" to="Cupcakes/RVelCupcake" method="_on_play_area_body_exited"]
[connection signal="body_exited" from="PlayArea" to="Cupcakes/CinCupcake" method="_on_play_area_body_exited"]

@ -1,19 +1,4 @@
extends Timer extends Timer
var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn")
#var ccChocolate = preload("res://Scenes/Cupcakes/cupcake.tscn")
#var ccStrawberry = preload("res://Scenes/Cupcakes/cupcake.tscn")
#var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn")
#var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn")
#var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn")
#var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn")
func _ready():
pass
func _on_timeout(): func _on_timeout():
pass pass

@ -0,0 +1,9 @@
extends RigidBody2D
signal ccChocCollected()
func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes" and body.name.find("Choc") != -1:
emit_signal("ccChocCollected")
body.queue_free()

@ -0,0 +1,9 @@
extends RigidBody2D
signal ccCinCollected()
func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes" and body.name.find("Cin") != -1:
emit_signal("ccCinCollected")
body.queue_free()

@ -1,29 +1,8 @@
extends RigidBody2D extends RigidBody2D
var speed = Vector2.ZERO
var horse = preload("res://Scripts/horse.gd")
@onready var playArea = $"../../PlayArea"
@onready var ccCol
var scorecard = preload("res://Scripts/varVar.gd")
var ccValue = 1
signal ccVanCollected() signal ccVanCollected()
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_play_area_body_exited(body): func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes": if body.get_parent() == $"../../Cupcakes" and body.name.find("Van") != -1:
emit_signal("ccVanCollected") emit_signal("ccVanCollected")
body.queue_free() body.queue_free()
func _on_game_world_condensed_cupcake_1():
ccValue += 1

@ -0,0 +1,9 @@
extends RigidBody2D
signal ccHonCollected()
func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes" and body.name.find("Hon") != -1:
emit_signal("ccHonCollected")
body.queue_free()

@ -0,0 +1,9 @@
extends RigidBody2D
signal ccNightCollected()
func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes" and body.name.find("Night") != -1:
emit_signal("ccNightCollected")
body.queue_free()

@ -0,0 +1,9 @@
extends RigidBody2D
signal ccRVelCollected()
func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes" and body.name.find("RVel") != -1:
emit_signal("ccRVelCollected")
body.queue_free()

@ -0,0 +1,9 @@
extends RigidBody2D
signal ccStrawCollected()
func _on_play_area_body_exited(body):
if body.get_parent() == $"../../Cupcakes" and body.name.find("Straw") != -1:
emit_signal("ccStrawCollected")
body.queue_free()

@ -1,13 +1,2 @@
extends Area2D extends Area2D
var horse = preload("res://Scripts/horse.gd")
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

@ -0,0 +1,9 @@
extends RigidBody2D
var mouse_position = Vector2.ZERO
signal hit()
func _process(delta):
mouse_position = lerp(mouse_position, get_global_mouse_position(), 0.02)
look_at(mouse_position)

@ -0,0 +1,9 @@
extends RigidBody2D
var mouse_position = Vector2.ZERO
signal hit()
func _process(delta):
mouse_position = lerp(mouse_position, get_global_mouse_position(), 0.02)
look_at(mouse_position)

@ -0,0 +1,11 @@
extends RigidBody2D
signal attack
signal hit
@onready var Cupcakes = $"../Cupcakes"
func _on_body_entered(body):
if body.is_in_group("Horse"):
emit_signal("attack")
elif body.is_inside_tree(Cupcakes):
emit_signal("hit")

@ -1,113 +1,505 @@
extends Node2D extends Node2D
signal condensedCupcake1()
#Cupcake Values #Cupcake Values
var ccVanNum: int = 0 var ccValues = {
var ccVanValue: int = 1 "van": [0, 1],
var ccChocNum: int = 0 "choc": [0, 1],
"straw": [0, 1],
"rvel": [0, 1],
"cin": [0, 1],
"hon": [0, 1],
"night": [0, 1]
}
#Cupcake Upgrade Prices #Cupcake Upgrade Prices
var ccVanPrice: int = 10 var ccPrices = {
var ccVanPrice2: int = 15 "van": [10, 15, 15, 25000],
var ccVanPrice3: int = 15 "choc": [10, 15, 15, 50000, 150, null],
var ccChocPrice: int = 10 "straw": [10, 15, 15, 75000, 2000, 50, 150, 200, 50000],
"rvel": [10, 15, 15, 100000],
"cin": [10, 15, 15, 125000],
"hon": [10, 15, 15, 150000],
"night": [10, 15, 15, 175000]
}
var UpNum = {
"van": [0, 0, 0, 0],
"choc": [0, 0, 0, 0, 0, 0],
"straw": [0, 0, 0, 0, 0, 0, 0],
"rvel": [0, 0, 0, 0],
"cin": [0, 0, 0, 0],
"hon": [0, 0, 0, 0],
"night": [0, 0, 0, 0]
}
#Preloaded scenes and scripts ###Preloaded scenes and scripts
var upgradeUI = preload("res://Scenes/UI/upgrades.tscn") var upgradeUI = preload("res://Scenes/UI/upgrades.tscn")
var location = preload("res://Scenes/Locations/yard.tscn")
var horse_scene = preload("res://Scenes/horse.tscn") var horse_scene = preload("res://Scenes/horse.tscn")
var horse = preload("res://Scripts/horse.gd") var horse = preload("res://Scripts/horse.gd")
#Cupcakes
var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn") var ccVanilla = preload("res://Scenes/Cupcakes/cupcake.tscn")
var ccChocolate var ccChocolate = preload("res://Scenes/Cupcakes/chocCupcake.tscn")
var ccchoc var ccStrawberry = preload("res://Scenes/Cupcakes/strawCupcake.tscn")
var ccRedVelvet = preload("res://Scenes/Cupcakes/rvelCupcake.tscn")
var ccCinnamon = preload("res://Scenes/Cupcakes/cinCupcake.tscn")
var ccHonest = preload("res://Scenes/Cupcakes/honCupcake.tscn")
var ccNightmare = preload("res://Scenes/Cupcakes/nightCupcake.tscn")
var ccRock
var ccRuby
var ccSapphire
var ccEmerald
var ccDiamond
var ccLoyal
var ccChaos
#Areas
var location = null
const AREA_PATHS = [
"res://Scenes/Locations/yard.tscn",
"res://Scenes/Locations/neighYard.tscn",
"res://Scenes/Locations/dungeonHon.tscn",
"res://Scenes/Locations/dungeonNight.tscn"
]
var areaScenes = []
#Area Locks
var neighYardLocked = true
#Instantiations
var ccVan = ccVanilla.instantiate()
var ccChoc = ccChocolate.instantiate()
var ccStraw = ccStrawberry.instantiate()
var ccRVel = ccRedVelvet.instantiate()
var ccCin = ccCinnamon.instantiate()
var ccHon = ccHonest.instantiate()
var ccNight = ccNightmare.instantiate()
var ccRoc = ccRock
var ccRub = ccRuby
var ccSap = ccSapphire
var ccEme = ccEmerald
var ccDia = ccDiamond
var ccLoy = ccLoyal
var ccCha = ccChaos
#Cupcake Locks
var ccChocLocked = true
var ccStrawLocked = true
var ccRVelLocked = true
var ccCinLocked = true
var ccHonLocked = true
var ccNightLocked = true
var ccRocLocked = true
var ccRubLocked = true
var ccSapLocked = true
var ccEmeLocked = true
var ccDiaLocked = true
var ccChaLocked = true
#Spawnrates
var ccSpawnRates = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
var ccVanSpawnRate = 3
var ccChocSpawnRate = 3
var ccStrawSpawnRate = 3
var ccRVelSpawnRate = 3
var ccCinSpawnRate = 3
var ccHonSpawnRate = 3
var ccNightSpawnRate = 3
var ccRocSpawnRate = 3
var ccRubSpawnRate = 3
var ccSapSpawnRate = 3
var ccEmeSpawnRate = 3
var ccDiaSpawnRate = 3
var ccChaSpawnRate = 3
#Combo
var comboLocked = true
var combo = 1.00
var comboMultiplier
#Tools
var tool = null
const TOOL_PATHS = [
"res://Scenes/Tools/hooves.tscn",
"res://Scenes/Tools/bakingTray.tscn"
]
var toolScenes = []
#Other #Other
@onready var timer = get_node("Cupcake Spawn Timer") @onready var timer = get_node("Cupcake Spawn Timer")
var horseAttached = true var horseAttached = true
var horse_instance var horse_instance
var horseScene
var mouse_position = Vector2.ZERO var mouse_position = Vector2.ZERO
var ccvan = ccVanilla.instantiate()
var ccSpawnRate = 3
var ccCount = 0 var ccCount = 0
var ccMaxOnScreen = 2000 var ccMaxOnScreen = 3000
#General
func _ready(): func _ready():
var spawn for path in AREA_PATHS:
var scene = load(path)
var instance = scene.instantiate()
areaScenes.append(instance)
horse_instance = horse_scene.instantiate() horse_instance = horse_scene.instantiate()
spawn = location.instantiate()
$Location.add_child(spawn)
add_child(horse_instance) add_child(horse_instance)
location = areaScenes[0]
spawnHorse()
for path in TOOL_PATHS:
var scene = load(path)
var instance = scene.instantiate()
toolScenes.append(instance)
tool = toolScenes[0]
add_child(tool)
func _process(delta): func _process(delta):
if horseAttached == true: if horseAttached == true:
mouse_position = get_global_mouse_position() mouse_position = get_global_mouse_position()
horse_instance.position = mouse_position horse_instance.position = mouse_position
handleInput() if $"Tool":
func handleInput(): tool.position = mouse_position
func _input(event):
if event is InputEventMouseButton and event.pressed:
if Input.is_action_pressed("horseAttach"): if Input.is_action_pressed("horseAttach"):
if horseAttached == true: if horseAttached == true:
horseAttached = false horseAttached = false
else: else:
horseAttached = true horseAttached = true
#AreaTeleporter
func spawnHorse():
if $Location.get_child_count() >= 1:
$Location.remove_child(location)
$Location.add_child(location)
#Update Count
func collectCupcakes():
$InGameUI/Num/NumGrid/ccVanNum.text = str(ccValues["van"][0])
$InGameUI/Num/NumGrid/ccChocNum.text = str(ccValues["choc"][0])
$InGameUI/Num/NumGrid/ccStrawNum.text = str(ccValues["straw"][0])
$InGameUI/Num/NumGrid/ccRVelNum.text = str(ccValues["rvel"][0])
$InGameUI/Num/NumGrid/ccCinNum.text = str(ccValues["cin"][0])
$InGameUI/Num/NumGrid/ccHonNum.text = str(ccValues["hon"][0])
$InGameUI/Num/NumGrid/ccNightNum.text = str(ccValues["night"][0])
#Cupcake Timer
func _on_timeout():
spawnCupcakes(ccVan, ccSpawnRates[0])
if not ccChocLocked:
spawnCupcakes(ccChoc, ccSpawnRates[1])
if not ccStrawLocked:
spawnCupcakes(ccStraw, ccSpawnRates[2])
if not ccRVelLocked:
spawnCupcakes(ccRVel, ccSpawnRates[3])
if not ccCinLocked:
spawnCupcakes(ccCin, ccSpawnRates[4])
collectCupcakes()
timer.start()
func spawnCupcakes(): #Spawn
func spawnCupcakes(cupcake: Node2D, spawn_rate: int):
var randX var randX
var randY var randY
randomize() randomize()
if ccCount <= ccMaxOnScreen: if ccCount <= ccMaxOnScreen:
for i in range(ccSpawnRate): for i in range(spawn_rate):
randX = randi_range(10, 1910) randX = randi_range(50, 1870)
randY = randi_range(10, 1070) randY = randi_range(50, 1030)
ccvan.position = Vector2(randX, randY) cupcake.position = Vector2(randX, randY)
$Cupcakes.add_child(ccvan.duplicate()) $Cupcakes.add_child(cupcake.duplicate())
ccCount = ccCount + ccSpawnRate ccCount += spawn_rate
###Upgrades###
#Vanilla
func _on_upgrades_one_more_cupcake():
if ccValues["van"][0] >= ccPrices["van"][0]:
ccSpawnRates[0] += 1
ccValues["van"][0] -= ccPrices["van"][0]
ccPrices = ccPrices["van"][0] * 1.3
UpNum["van"][0] += 1
$Upgrades/Control/VanScroll/VanGrid/VanUp1/Price.text = str(ccPrices["van"][0])
collectCupcakes()
func _on_upgrades_faster_cupcake():
if ccValues["van"][0] >= ccPrices["van"][1]:
ccValues["van"][0] -= ccPrices["van"][1]
ccPrices["van"][1] = ccPrices["van"][1] * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
UpNum["van"][1] += 1
$Upgrades/Control/VanScroll/VanGrid/VanUp2/Price.text = str(ccPrices["van"][1])
collectCupcakes()
func _on_upgrades_condensed_cupcake_1():
if ccValues["van"][0] >= ccPrices["van"][2]:
ccValues["van"][0] -= ccPrices["van"][2]
ccPrices["van"][2] = ccPrices["van"][2] * 1.3
ccValues["van"][1] += 1
UpNum["van"][2] += 1
$Upgrades/Control/VanScroll/VanGrid/VanUp3/Price.text = str(ccPrices["van"][2])
collectCupcakes()
func collectCupcakes(): #Chocolate
$InGameUI/Num/VBoxContainer/ccVanNum.text = str(ccVanNum) func _on_upgrades_one_more_cupcake_2():
if ccValues["choc"][0] >= ccPrices["choc"][0]:
ccSpawnRates[1] += 1
ccValues["choc"][0] -= ccPrices["choc"][0]
ccPrices["choc"][0] = ccPrices["choc"][0] * 1.3
UpNum["choc"][0] += 1
$Upgrades/Control/ChocScroll/ChocGrid/ChocUp1/Price.text = str(ccPrices["choc"][0])
collectCupcakes()
func _on_upgrades_faster_cupcake_2():
if ccValues["choc"][0] >= ccPrices["choc"][1]:
ccValues["choc"][0] -= ccPrices["choc"][1]
ccPrices["choc"][1] = ccPrices["choc"][1] * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
UpNum["choc"][1] += 1
$Upgrades/Control/ChocScroll/ChocGrid/ChocUp2/Price.text = str(ccPrices["choc"][1])
collectCupcakes()
func _on_upgrades_condensed_cupcake_2():
if ccValues["choc"][0] >= ccPrices["choc"][2]:
ccValues["choc"][0] -= ccPrices["choc"][2]
ccPrices["choc"][2] = ccPrices["choc"][2] * 1.3
ccValues["choc"][1] += 1
UpNum["choc"][2] += 1
$Upgrades/Control/ChocScroll/ChocGrid/ChocUp3/Price.text = str(ccPrices["choc"][2])
collectCupcakes()
#Strawberry
func _on_upgrades_one_more_cupcake_3():
if ccValues["straw"][0] >= ccPrices["straw"][0]:
ccSpawnRates[2] += 1
ccValues["straw"][0] -= ccPrices["straw"][0]
ccPrices = ccPrices * 1.3
UpNum["straw"][0] += 1
$Upgrades/Control/StrawScroll/StrawGrid/StrawUp1/Price.text = str(ccPrices)
collectCupcakes()
func _on_upgrades_faster_cupcake_3():
if ccValues["straw"][0] >= ccPrices["straw"][1]:
ccValues["straw"][0] -= ccPrices["straw"][1]
ccPrices["straw"][1] = ccPrices["straw"][1] * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
UpNum["straw"][1] += 1
$Upgrades/Control/StrawScroll/StrawGrid/StrawUp2/Price.text = str(ccPrices["straw"][1])
collectCupcakes()
func _on_upgrades_condensed_cupcake_3():
if ccValues["straw"][0] >= ccPrices["straw"][2]:
ccValues["straw"][0] -= ccPrices["straw"][2]
ccPrices["straw"][2] = ccPrices["straw"][2] * 1.3
ccValues["straw"][1] += 1
UpNum["straw"][2] += 1
$Upgrades/Control/StrawScroll/StrawGrid/StrawUp3/Price.text = str(ccPrices["straw"][2])
collectCupcakes()
func _on_timeout(): #Red Velvet
spawnCupcakes() func _on_upgrades_one_more_cupcake_4():
if ccValues["rvel"][0] >= ccPrices["rvel"][0]:
ccSpawnRates[3] += 1
ccValues["rvel"][0] -= ccPrices["rvel"][0]
ccPrices["rvel"][0] = ccPrices["rvel"][0] * 1.3
$Upgrades/Control/RVelScroll/RVelGrid/RVelUp1/Price.text = str(ccPrices["rvel"][0])
collectCupcakes()
func _on_upgrades_faster_cupcake_4():
if ccValues["rvel"][0] >= ccPrices["rvel"][1]:
ccValues["rvel"][0] -= ccPrices["rvel"][1]
ccPrices["rvel"][1] = ccPrices["rvel"][1] * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
$Upgrades/Control/RVelScroll/RVelGrid/RVelUp2/Price.text = str(ccPrices["rvel"][1])
collectCupcakes()
func _on_upgrades_condensed_cupcake_4():
if ccValues["rvel"][0] >= ccPrices["rvel"][2]:
ccValues["rvel"][0] -= ccPrices["rvel"][2]
ccPrices["rvel"][2] = ccPrices["rvel"][2] * 1.3
ccValues["rvel"][1] += 1
$Upgrades/Control/RVelScroll/RVelGrid/RVelUp3/Price.text = str(ccPrices["rvel"][2])
collectCupcakes() collectCupcakes()
timer.start
#Cinnamon
func _on_upgrades_one_more_cupcake_5():
if ccValues["cin"][0] >= ccPrices["cin"][0]:
ccSpawnRates[4] += 1
ccValues["cin"][0] -= ccPrices["cin"][0]
ccPrices["cin"][0] = ccPrices["cin"][0] * 1.3
$Upgrades/Control/CinScroll/CinGrid/CinUp1/Price.text = str(ccPrices["cin"][0])
collectCupcakes()
func _on_upgrades_faster_cupcake_5():
if ccValues["cin"][0] >= ccPrices["cin"][1]:
ccValues["cin"][0] -= ccPrices["cin"][1]
ccPrices["cin"][1] = ccPrices["cin"][1] * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
$Upgrades/Control/CinScroll/CinGrid/CinUp2/Price.text = str(ccPrices["cin"][1])
collectCupcakes()
func _on_upgrades_condensed_cupcake_5():
if ccValues["cin"][0] >= ccPrices["cin"][2]:
ccValues["cin"][0] -= ccPrices["cin"][2]
ccPrices["cin"][2] = ccPrices["cin"][2] * 1.3
ccValues["cin"][1] += 1
$Upgrades/Control/CinScroll/CinGrid/CinUp3/Price.text = str(ccPrices["cin"][2])
collectCupcakes()
func _on_play_area_body_exited(body): #Honest
func _on_upgrades_one_more_cupcake_6():
if ccValues["hon"][0] >= ccPrices["hon"][0]:
ccHonSpawnRate += 1
ccValues["hon"][0] -= ccPrices["hon"][0]
ccPrices["hon"][0] = ccPrices["hon"][0] * 1.3
$Upgrades/Control/HonScroll/HonGrid/HonUp1/Price.text = str(ccPrices["hon"][0])
collectCupcakes()
func _on_upgrades_faster_cupcake_6():
if ccValues["hon"][0] >= ccPrices["hon"][1]:
ccValues["hon"][0] -= ccPrices["hon"][1]
ccPrices["hon"][1] = ccPrices["hon"][1] * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
$Upgrades/Control/HonScroll/HonGrid/HonUp2/Price.text = str(ccPrices["hon"][1])
collectCupcakes()
func _on_upgrades_condensed_cupcake_6():
if ccValues["hon"][0] >= ccPrices["hon"][2]:
ccValues["hon"][0] -= ccPrices["hon"][2]
ccPrices["hon"][2] = ccPrices["hon"][2] * 1.3
ccValues["hon"][1] += 1
$Upgrades/Control/HonScroll/HonGrid/HonUp3/Price.text = str(ccPrices["hon"][2])
collectCupcakes()
func _on_upgrades_cupcake_damage():
pass
func _on_upgrades_horse_health():
pass
func _on_upgrades_sweetie_damage():
pass pass
#Nightmare
func _on_cupcake_cc_van_collected(): #Unlock
ccVanNum += ccVanValue func _on_upgrades_unlock_choc():
if ccValues["van"][0] >= ccPrices["van"][3]:
ccValues -= ccPrices["van"][3]
ccChocLocked = false
$"InGameUI/Main/HBoxContainer/Choc".visible = true
$"InGameUI/Num/NumGrid/chocIcon".visible = true
$"InGameUI/Num/NumGrid/ccValues".visible = true
$"Upgrades/Control/VanScroll/VanGrid/VanUp4/Buy".visible = false
func _on_upgrades_unlock_straw():
if ccValues["choc"][0] >= ccPrices["choc"][3]:
ccValues["choc"][0] -= ccPrices["choc"][3]
ccStrawLocked = false
$"InGameUI/Main/HBoxContainer/Straw".visible = true
$"InGameUI/Num/NumGrid/strawIcon".visible = true
$"InGameUI/Num/NumGrid/ccValues".visible = true
$"Upgrades/Control/ChocScroll/ChocGrid/ChocUp4/Buy".visible = false
func _on_upgrades_unlock_r_vel():
if ccValues >= ccPrices["straw"][8]:
ccValues["straw"][0] -= ccPrices["straw"][8]
ccRVelLocked = false
$"InGameUI/Main/HBoxContainer/RVel".visible = true
$"InGameUI/Num/NumGrid/rvelIcon".visible = true
$"InGameUI/Num/NumGrid/ccValues".visible = true
$"Upgrades/Control/StrawScroll/StrawGrid/StrawUp4/Buy".visible = false
func _on_upgrades_unlock_cin():
if ccValues["rvel"][0] >= ccPrices["rvel"][3]:
ccValues["rvel"][0] -= ccPrices["rvel"][3]
ccCinLocked = false
$"InGameUI/Main/HBoxContainer/Cin".visible = true
$"InGameUI/Num/NumGrid/cinIcon".visible = true
$"InGameUI/Num/NumGrid/ccValues".visible = true
$"Upgrades/Control/RVelScroll/RVelGrid/RVelUp4/Buy".visible = false
func _on_upgrades_unlock_hon():
if ccValues >= ccPrices["cin"][3]:
ccValues["cin"][0] -= ccPrices["cin"][3]
ccHonLocked = false
$"InGameUI/Main/HBoxContainer/Honest".visible = true
$"InGameUI/Num/NumGrid/honIcon".visible = true
$"InGameUI/Num/NumGrid/ccValues".visible = true
$"Upgrades/Control/CinScroll/CinGrid/CinUp4/Buy".visible = false
func _on_upgrades_unlock_nightmare():
if ccValues["hon"][0] >= ccPrices["hon"][3]:
ccValues -= ccPrices["hon"][3]
ccNightLocked = false
$"InGameUI/Main/HBoxContainer/Night".visible = true
$"InGameUI/Num/NumGrid/nightIcon".visible = true
$"InGameUI/Num/NumGrid/ccNightNum".visible = true
$"Upgrades/Control/HonScroll/HonGrid/HonUp4/Buy".visible = false
#Collect
func _on_van_cupcake_cc_van_collected():
ccValues["van"][0] += ccValues["van"][1]
ccCount -= 1 ccCount -= 1
collectCupcakes() collectCupcakes()
func _on_choc_cupcake_cc_choc_collected():
ccValues["choc"][0] += ccValues["choc"][1]
ccCount -= 1
collectCupcakes()
func _on_upgrades_one_more_cupcake(): func _on_straw_cupcake_cc_straw_collected():
if ccVanNum >= ccVanPrice: ccValues["straw"][0] += ccValues["straw"][1]
ccSpawnRate += 1 ccCount -= 1
ccVanNum -= ccVanPrice
ccVanPrice = ccVanPrice * 1.3
$Upgrades/Control/ScrollContainer/VanGrid/VanUp1/Price.text = str(ccVanPrice)
collectCupcakes() collectCupcakes()
func _on_rvel_cupcake_cc_rvel_collected():
ccValues["rvel"][0] += ccValues["rvel"][1]
ccCount -= 1
collectCupcakes()
func _on_upgrades_faster_cupcake(): func _on_cin_cupcake_cc_cin_collected():
if ccVanNum >= ccVanPrice2: ccValues["cin"][0] += ccValues["cin"][1]
ccVanNum -= ccVanPrice2 ccCount -= 1
ccVanPrice2 = ccVanPrice2 * 1.3
timer.wait_time = timer.wait_time - (timer.wait_time * 0.01)
$Upgrades/Control/ScrollContainer/VanGrid/VanUp2/Price.text = str(ccVanPrice2)
collectCupcakes() collectCupcakes()
func _on_upgrades_condensed_cupcake_1(): func _on_honest_cupcake_cc_hon_collected():
if ccVanNum >= ccVanPrice3: ccValues["hon"][0] += ccValues["hon"][1]
ccVanNum -= ccVanPrice3 ccCount -= 1
ccVanPrice3 = ccVanPrice3 * 1.3 collectCupcakes()
ccVanValue += 1
$Upgrades/Control/ScrollContainer/VanGrid/VanUp3/Price.text = str(ccVanPrice3) func _on_night_cupcake_cc_night_collected():
ccValues["night"][0] += ccValues["night"][1]
ccCount -= 1
collectCupcakes() collectCupcakes()
#Areas
func _on_upgrades_your_yard():
if $Upgrades/Control/AreaScroll/AreaGrid/Area1/Buy.disabled == false:
location = areaScenes[0]
$Upgrades/Control/AreaScroll/AreaGrid/Area2/Buy.disabled = false
$Upgrades/Control/AreaScroll/AreaGrid/Area1/Buy.disabled = true
$Upgrades/Control/AreaScroll/AreaGrid/Area1/Buy.text = str("Teleport (You're here)")
$Upgrades/Control/AreaScroll/AreaGrid/Area2/Buy.text = str("Teleport")
spawnHorse()
func _on_upgrades_neigh_yard():
if neighYardLocked == true:
if ccValues["straw"][0] >= ccPrices["straw"][6]:
ccValues["straw"][0] -= ccPrices["straw"][6]
neighYardLocked = false
$Upgrades/Control/AreaScroll/AreaGrid/Area1/Buy.text = str("Teleport")
if neighYardLocked == false and $Upgrades/Control/AreaScroll/AreaGrid/Area2/Buy.disabled == false:
location = areaScenes[1]
$Upgrades/Control/AreaScroll/AreaGrid/Area2/Buy.disabled = true
$Upgrades/Control/AreaScroll/AreaGrid/Area1/Buy.disabled = false
$Upgrades/Control/AreaScroll/AreaGrid/Area1/Buy.text = str("Teleport")
$Upgrades/Control/AreaScroll/AreaGrid/Area2/Buy.text = str("Teleport (You're here)")
spawnHorse()
func _on_upgrades_honest_dungeon():
pass # Replace with function body.
func _on_upgrades_abandoned_castle():
pass # Replace with function body.
#Tools
func _on_upgrades_tool_1():
remove_child(tool)
tool = toolScenes[0]
add_child(tool)
func _on_upgrades_tool_2():
remove_child(tool)
tool = toolScenes[1]
add_child(tool)

@ -1,23 +1,9 @@
extends CharacterBody2D extends CharacterBody2D
var horse_instance
var mouse_position = Vector2.ZERO var mouse_position = Vector2.ZERO
var blower
#ccScore signal hit()
var ccVanNum = 0
var ccChocNum = 0
var ccStrawNum = 0
var ccBlueNum = 0
var ccRVelNum = 0
signal hit
func _process(delta): func _process(delta):
mouse_position = lerp(mouse_position, get_global_mouse_position(), 0.02) mouse_position = lerp(mouse_position, get_global_mouse_position(), 0.02)
look_at(mouse_position) look_at(mouse_position)
#var horse_direction = (mouse_position - horse_instance.position).normalized()
#horse_instance.rotation = horse_direction.angle()
#horse_instance.get_node("Sprite2D").rotation = horse_direction.angle()

@ -1,24 +1,115 @@
extends CanvasLayer extends CanvasLayer
@onready var upgrades = $"../Upgrades" @onready var upgrades = $"../Upgrades"
@onready var allUp = $"../Upgrades/Control".get_children()
@onready var vanUp = $"../Upgrades/Control/VanScroll"
@onready var chocUp = $"../Upgrades/Control/ChocScroll"
@onready var strawUp = $"../Upgrades/Control/StrawScroll"
@onready var rvelUp = $"../Upgrades/Control/RVelScroll"
@onready var cinUp = $"../Upgrades/Control/CinScroll"
@onready var honUp = $"../Upgrades/Control/HonScroll"
@onready var nightUp = $"../Upgrades/Control/NightScroll"
@onready var areas = $"../Upgrades/Control/AreaScroll"
@onready var tools = $"../Upgrades/Control/ToolScroll"
# Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
pass # Replace with function body. for child in allUp:
child.visible = false
func _on_van_pressed():
if vanUp.visible == false:
for child in allUp:
child.visible = false
vanUp.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
# Called every frame. 'delta' is the elapsed time since the previous frame. func _on_choc_pressed():
func _process(delta): if chocUp.visible == false:
pass for child in allUp:
child.visible = false
chocUp.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
func _on_straw_pressed():
if strawUp.visible == false:
for child in allUp:
child.visible = false
strawUp.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
func _on_van_pressed(): func _on_r_vel_pressed():
if rvelUp.visible == false:
for child in allUp:
child.visible = false
rvelUp.visible = true
else:
if upgrades.visible == false: if upgrades.visible == false:
upgrades.visible = true upgrades.visible = true
else: else:
upgrades.visible = false upgrades.visible = false
func _on_choc_pressed(): func _on_cin_pressed():
if cinUp.visible == false:
for child in allUp:
child.visible = false
cinUp.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
func _on_honest_pressed():
if honUp.visible == false:
for child in allUp:
child.visible = false
honUp.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
func _on_nightmare_pressed():
if nightUp.visible == false:
for child in allUp:
child.visible = false
nightUp.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
func _on_areas_pressed():
if areas.visible == false:
for child in allUp:
child.visible = false
areas.visible = true
else:
if upgrades.visible == false:
upgrades.visible = true
else:
upgrades.visible = false
func _on_tools_pressed():
if tools.visible == false:
for child in allUp:
child.visible = false
tools.visible = true
else:
if upgrades.visible == false: if upgrades.visible == false:
upgrades.visible = true upgrades.visible = true
else: else:

@ -1,28 +1,118 @@
extends CanvasLayer extends CanvasLayer
#Areas
signal yourYard()
signal neighYard()
signal honestDungeon()
signal abandonedCastle()
#Tools
signal tool1()
signal tool2()
#Vanilla
signal oneMoreCupcake() signal oneMoreCupcake()
signal fasterCupcake() signal fasterCupcake()
signal condensedCupcake1() signal condensedCupcake1()
signal unlockChoc()
#Chocolate
signal oneMoreCupcake2()
signal fasterCupcake2()
func _ready(): signal condensedCupcake2()
pass # Replace with function body. signal unlockStraw()
#Strawberry
signal oneMoreCupcake3()
signal fasterCupcake3()
signal condensedCupcake3()
signal unlockRVel()
#Red Velvet
signal oneMoreCupcake4()
signal fasterCupcake4()
signal condensedCupcake4()
signal unlockCin()
#Cinnamon
signal oneMoreCupcake5()
signal fasterCupcake5()
signal condensedCupcake5()
signal unlockHon()
#Honest
signal oneMoreCupcake6()
signal fasterCupcake6()
signal condensedCupcake6()
signal horseHealth()
signal cupcakeDamage()
signal sweetieDamage()
#Nightmare
signal unlockNightmare()
func _on_close_pressed(): func _on_close_pressed():
self.visible = false self.visible = false
func _on_buy_pressed(): func _on_buy_pressed():
emit_signal("oneMoreCupcake") emit_signal("oneMoreCupcake")
func _on_buy_van2_pressed(): func _on_buy_van2_pressed():
emit_signal("fasterCupcake") emit_signal("fasterCupcake")
func _on_buy_van3_pressed(): func _on_buy_van3_pressed():
emit_signal("condensedCupcake1") emit_signal("condensedCupcake1")
func _on_buy_van4_pressed():
emit_signal("unlockChoc")
func _on_buy_choc1_pressed():
emit_signal("oneMoreCupcake2")
func _on_buy_choc2_pressed():
emit_signal("fasterCupcake2")
func _on_buy_choc3_pressed():
emit_signal("condensedCupcake2")
func _on_buy_choc4_pressed():
emit_signal("unlockStraw")
func _on_buy_straw1_pressed():
emit_signal("oneMoreCupcake3")
func _on_buy_straw2_pressed():
emit_signal("fasterCupcake3")
func _on_buy_straw3_pressed():
emit_signal("condensedCupcake3")
func _on_buy_straw4_pressed():
emit_signal("unlockRVel")
func _on_buy_rvel1_pressed():
emit_signal("oneMoreCupcake4")
func _on_buy_rvel2_pressed():
emit_signal("fasterCupcake4")
func _on_buy_rvel3_pressed():
emit_signal("condensedCupcake4")
func _on_buy_rvel4_pressed():
emit_signal("unlockCin")
func _on_buy_cin1_pressed():
emit_signal("oneMoreCupcake5")
func _on_buy_cin2_pressed():
emit_signal("fasterCupcake5")
func _on_buy_cin3_pressed():
emit_signal("condensedCupcake5")
func _on_buy_cin4_pressed():
emit_signal("unlockHon")
func _on_buy_hon1_pressed():
emit_signal("oneMoreCupcake6")
func _on_buy_hon2_pressed():
emit_signal("fasterCupcake6")
func _on_buy_hon3_pressed():
emit_signal("condensedCupcake6")
func _on_buy_hon4_pressed():
emit_signal("unlockNightmare")
func _on_buy_night1_pressed():
pass
func _on_buy_night2_pressed():
pass
func _on_buy_night3_pressed():
pass
func _on_buy_night4_pressed():
pass
##Areas
func _on_your_yard_pressed():
emit_signal("yourYard")
func _on_buy_neighbors_yard_pressed():
emit_signal("neighYard")
##Tools
func _on_tool_1_pressed():
emit_signal("tool1")
func _on_tool_2_pressed():
emit_signal("tool2")

@ -1,11 +0,0 @@
extends Node
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

@ -1,6 +0,0 @@
extends Node
var location
var ccVanNum = 0
var ccChocNum = 0

@ -8,7 +8,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="../CupcakeRevolution1/Linux/CupcakeRevolutionVersionZero-Linux.x86_64" export_path="../CupcakeRevolution1/Linux/CupcakeRevolution_PreAlpha_V0.1_Linux.x86_64"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
@ -49,7 +49,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="../CupcakeRevolution1/Windows/CupcakeRevolutionVersionZero-Windows.exe" export_path="../CupcakeRevolution1/Windows/CupcakeRevolution_PreAlpha_V0.1_Windows.exe"
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""
encrypt_pck=false encrypt_pck=false
@ -77,7 +77,7 @@ codesign/digest_algorithm=1
codesign/description="" codesign/description=""
codesign/custom_options=PackedStringArray() codesign/custom_options=PackedStringArray()
application/modify_resources=true application/modify_resources=true
application/icon="" application/icon="res://Art/Cupcakes/Cupcake.png"
application/console_wrapper_icon="" application/console_wrapper_icon=""
application/icon_interpolation=4 application/icon_interpolation=4
application/file_version="" application/file_version=""
@ -109,7 +109,7 @@ Remove-Item -Recurse -Force '{temp_dir}'"
name="Web" name="Web"
platform="Web" platform="Web"
runnable=true runnable=false
dedicated_server=false dedicated_server=false
custom_features="" custom_features=""
export_filter="all_resources" export_filter="all_resources"

@ -13,6 +13,9 @@ config_version=5
config/name="Cupcake Revolution" config/name="Cupcake Revolution"
run/main_scene="res://Scenes/game_world.tscn" run/main_scene="res://Scenes/game_world.tscn"
config/features=PackedStringArray("4.0", "Forward Plus") config/features=PackedStringArray("4.0", "Forward Plus")
boot_splash/bg_color=Color(0.976471, 0.87451, 0.945098, 1)
boot_splash/image="res://Art/Cupcakes/Cupcake.png"
config/icon="res://Art/Cupcakes/Cupcake.png"
[display] [display]

Loading…
Cancel
Save