Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
OnlyMares | 8c4b4615e3 | 1 year ago |
OnlyMares | 2de5a04bf2 | 1 year ago |
OnlyMares | 2c248b9860 | 2 years ago |
OnlyMares | 10dd09b071 | 2 years ago |
OnlyMares | 4981a1ccd1 | 2 years ago |
OnlyMares | 902fb29a67 | 2 years ago |
OnlyMares | 70e1dd5355 | 2 years ago |
OnlyMares | 1d5f05f34b | 2 years ago |
OnlyMares | 5e84f9c37d | 2 years ago |
OnlyMares | cd013050b9 | 2 years ago |
OnlyMares | 7b9b9d54fb | 2 years ago |
OnlyMares | 41f86f674b | 2 years ago |
OnlyMares | 6aea376ad3 | 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
|
||||||
|
@ -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
|
||||||
|
@ -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=[]
|
||||||
|
@ -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,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://
|
||||||
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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 @@
|
|||||||
# CupcakeRevolution
|
# 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
|
||||||
|
- ??? ;)
|
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>
|
|
||||||
|
|
Before Width: | Height: | Size: 5.5 KiB |
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"]
|
@ -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")
|
@ -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()
|
||||||
|
|
@ -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()
|
||||||
|
|
@ -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
|
||||||
if Input.is_action_pressed("horseAttach"):
|
|
||||||
if horseAttached == true:
|
|
||||||
horseAttached = false
|
|
||||||
else:
|
|
||||||
horseAttached = true
|
|
||||||
|
|
||||||
|
func _input(event):
|
||||||
|
if event is InputEventMouseButton and event.pressed:
|
||||||
|
if Input.is_action_pressed("horseAttach"):
|
||||||
|
if horseAttached == true:
|
||||||
|
horseAttached = false
|
||||||
|
else:
|
||||||
|
horseAttached = true
|
||||||
|
|
||||||
|
#AreaTeleporter
|
||||||
|
func spawnHorse():
|
||||||
|
if $Location.get_child_count() >= 1:
|
||||||
|
$Location.remove_child(location)
|
||||||
|
$Location.add_child(location)
|
||||||
|
|
||||||
func spawnCupcakes():
|
#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()
|
||||||
|
|
||||||
|
#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,25 +1,116 @@
|
|||||||
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 upgrades.visible == false:
|
if rvelUp.visible == false:
|
||||||
upgrades.visible = true
|
for child in allUp:
|
||||||
|
child.visible = false
|
||||||
|
rvelUp.visible = true
|
||||||
else:
|
else:
|
||||||
upgrades.visible = false
|
if upgrades.visible == false:
|
||||||
|
upgrades.visible = true
|
||||||
|
else:
|
||||||
|
upgrades.visible = false
|
||||||
|
|
||||||
func _on_choc_pressed():
|
func _on_cin_pressed():
|
||||||
if upgrades.visible == false:
|
if cinUp.visible == false:
|
||||||
upgrades.visible = true
|
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:
|
else:
|
||||||
upgrades.visible = false
|
if upgrades.visible == false:
|
||||||
|
upgrades.visible = true
|
||||||
|
else:
|
||||||
|
upgrades.visible = false
|
||||||
|
@ -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
|
|