diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..2732ebc --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/pegchamp.iml b/.idea/pegchamp.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/pegchamp.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.md5 b/.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.md5 new file mode 100644 index 0000000..651b2b4 --- /dev/null +++ b/.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.md5 @@ -0,0 +1,3 @@ +source_md5="8dbf9ca86171f990baccd78356c1ecab" +dest_md5="859ee1d494559e1bb55ee9f0f938a945" + diff --git a/.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.stex b/.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.stex new file mode 100644 index 0000000..a0a1aaf Binary files /dev/null and b/.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.stex differ diff --git a/.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.md5 b/.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.md5 new file mode 100644 index 0000000..efcbe07 --- /dev/null +++ b/.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.md5 @@ -0,0 +1,3 @@ +source_md5="c65607e202291be239ac7075f9cabd2b" +dest_md5="1e59ef16443d2e2f40e3147d0428ebde" + diff --git a/.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.stex b/.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.stex new file mode 100644 index 0000000..1047c2b Binary files /dev/null and b/.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.stex differ diff --git a/.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.md5 b/.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.md5 new file mode 100644 index 0000000..40849da --- /dev/null +++ b/.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.md5 @@ -0,0 +1,3 @@ +source_md5="ea0da828f0dbd46f95c7e020261de663" +dest_md5="345e349e01cd5bf618a956bc0268019f" + diff --git a/.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.stex b/.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.stex new file mode 100644 index 0000000..f3f9613 Binary files /dev/null and b/.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.stex differ diff --git a/.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.md5 b/.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.md5 new file mode 100644 index 0000000..4f558b2 --- /dev/null +++ b/.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.md5 @@ -0,0 +1,3 @@ +source_md5="b59045bf4224fecc2729da53533af12d" +dest_md5="1ecd739544a5f934dca43676958131ee" + diff --git a/.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.stex b/.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.stex new file mode 100644 index 0000000..549dc2b Binary files /dev/null and b/.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.stex differ diff --git a/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.md5 b/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.md5 index fb7904d..3ddb25a 100644 --- a/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.md5 +++ b/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.md5 @@ -1,3 +1,3 @@ -source_md5="7793082a1171b42eb084bb351201431a" -dest_md5="e57cc2e1ff16f3cdd4855dfbda680b57" +source_md5="119e2471ace445f80670e69c90b5a549" +dest_md5="100fb44997b963d1d19ea267f434bd18" diff --git a/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.stex b/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.stex index 08561c2..51c75aa 100644 Binary files a/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.stex and b/.import/Play1.png-e594f305bf0862fb4a35ed5b3e852be5.stex differ diff --git a/.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.md5 b/.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.md5 new file mode 100644 index 0000000..db3e276 --- /dev/null +++ b/.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.md5 @@ -0,0 +1,3 @@ +source_md5="6bf8bf165a131f735fd3979aa11f7ef9" +dest_md5="800b8a012e6e217a04cee82528c95a9f" + diff --git a/.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.stex b/.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.stex new file mode 100644 index 0000000..440bb98 Binary files /dev/null and b/.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.stex differ diff --git a/.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.md5 b/.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.md5 new file mode 100644 index 0000000..6d823f1 --- /dev/null +++ b/.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.md5 @@ -0,0 +1,3 @@ +source_md5="a093a9f156ef31775fec259892f04f63" +dest_md5="f8b74440283757c0b3b4dbd9d39bd371" + diff --git a/.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.stex b/.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.stex new file mode 100644 index 0000000..c2def1e Binary files /dev/null and b/.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.stex differ diff --git a/.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.md5 b/.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.md5 new file mode 100644 index 0000000..28992c8 --- /dev/null +++ b/.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.md5 @@ -0,0 +1,3 @@ +source_md5="b5dbbd3af3ccc3ae06347a6b8c579543" +dest_md5="8f72136bd38cefca97099ca151db0393" + diff --git a/.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.stex b/.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.stex new file mode 100644 index 0000000..3fa3972 Binary files /dev/null and b/.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.stex differ diff --git a/.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.md5 b/.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.md5 new file mode 100644 index 0000000..8868bfc --- /dev/null +++ b/.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.md5 @@ -0,0 +1,3 @@ +source_md5="8822c8d1d00a51127c48bd56aa3cbcb8" +dest_md5="0b6b5a66bea23ae5000621223ed6588b" + diff --git a/.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.stex b/.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.stex new file mode 100644 index 0000000..008ceef Binary files /dev/null and b/.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.stex differ diff --git a/.import/check1.png-18c9ab57b8d9ba6f9d5b9b29d5e1f3d6.md5 b/.import/check1.png-18c9ab57b8d9ba6f9d5b9b29d5e1f3d6.md5 new file mode 100644 index 0000000..72e6144 --- /dev/null +++ b/.import/check1.png-18c9ab57b8d9ba6f9d5b9b29d5e1f3d6.md5 @@ -0,0 +1,3 @@ +source_md5="1e833d2199e3ed6fd71e6ac3cb040c67" +dest_md5="e4b88413c35c45b3bbcd237a8571b4aa" + diff --git a/.import/check1.png-18c9ab57b8d9ba6f9d5b9b29d5e1f3d6.stex b/.import/check1.png-18c9ab57b8d9ba6f9d5b9b29d5e1f3d6.stex new file mode 100644 index 0000000..cbb6035 Binary files /dev/null and b/.import/check1.png-18c9ab57b8d9ba6f9d5b9b29d5e1f3d6.stex differ diff --git a/.import/check1.png-5c1383cf243c17acba9a6bc3990170d7.md5 b/.import/check1.png-5c1383cf243c17acba9a6bc3990170d7.md5 new file mode 100644 index 0000000..72e6144 --- /dev/null +++ b/.import/check1.png-5c1383cf243c17acba9a6bc3990170d7.md5 @@ -0,0 +1,3 @@ +source_md5="1e833d2199e3ed6fd71e6ac3cb040c67" +dest_md5="e4b88413c35c45b3bbcd237a8571b4aa" + diff --git a/.import/check1.png-5c1383cf243c17acba9a6bc3990170d7.stex b/.import/check1.png-5c1383cf243c17acba9a6bc3990170d7.stex new file mode 100644 index 0000000..cbb6035 Binary files /dev/null and b/.import/check1.png-5c1383cf243c17acba9a6bc3990170d7.stex differ diff --git a/.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.md5 b/.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.md5 new file mode 100644 index 0000000..72e6144 --- /dev/null +++ b/.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.md5 @@ -0,0 +1,3 @@ +source_md5="1e833d2199e3ed6fd71e6ac3cb040c67" +dest_md5="e4b88413c35c45b3bbcd237a8571b4aa" + diff --git a/.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.stex b/.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.stex new file mode 100644 index 0000000..cbb6035 Binary files /dev/null and b/.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.stex differ diff --git a/.import/check2.png-8ec4aa0fad3015675e2c8d025907bdbf.md5 b/.import/check2.png-8ec4aa0fad3015675e2c8d025907bdbf.md5 new file mode 100644 index 0000000..58a27e5 --- /dev/null +++ b/.import/check2.png-8ec4aa0fad3015675e2c8d025907bdbf.md5 @@ -0,0 +1,3 @@ +source_md5="ff2e24cd1a86f11e8d661109b25293b1" +dest_md5="e3ef4094a9c12fde7a1a8e2076440f91" + diff --git a/.import/check2.png-8ec4aa0fad3015675e2c8d025907bdbf.stex b/.import/check2.png-8ec4aa0fad3015675e2c8d025907bdbf.stex new file mode 100644 index 0000000..ab2eff2 Binary files /dev/null and b/.import/check2.png-8ec4aa0fad3015675e2c8d025907bdbf.stex differ diff --git a/.import/check2.png-f56c07ebe0967cfcf27da62725325f41.md5 b/.import/check2.png-f56c07ebe0967cfcf27da62725325f41.md5 new file mode 100644 index 0000000..58a27e5 --- /dev/null +++ b/.import/check2.png-f56c07ebe0967cfcf27da62725325f41.md5 @@ -0,0 +1,3 @@ +source_md5="ff2e24cd1a86f11e8d661109b25293b1" +dest_md5="e3ef4094a9c12fde7a1a8e2076440f91" + diff --git a/.import/check2.png-f56c07ebe0967cfcf27da62725325f41.stex b/.import/check2.png-f56c07ebe0967cfcf27da62725325f41.stex new file mode 100644 index 0000000..ab2eff2 Binary files /dev/null and b/.import/check2.png-f56c07ebe0967cfcf27da62725325f41.stex differ diff --git a/.import/check2.png-fbc89650be2ebfea120127a62cd38c65.md5 b/.import/check2.png-fbc89650be2ebfea120127a62cd38c65.md5 new file mode 100644 index 0000000..58a27e5 --- /dev/null +++ b/.import/check2.png-fbc89650be2ebfea120127a62cd38c65.md5 @@ -0,0 +1,3 @@ +source_md5="ff2e24cd1a86f11e8d661109b25293b1" +dest_md5="e3ef4094a9c12fde7a1a8e2076440f91" + diff --git a/.import/check2.png-fbc89650be2ebfea120127a62cd38c65.stex b/.import/check2.png-fbc89650be2ebfea120127a62cd38c65.stex new file mode 100644 index 0000000..ab2eff2 Binary files /dev/null and b/.import/check2.png-fbc89650be2ebfea120127a62cd38c65.stex differ diff --git a/.import/default.png-ba07210c8175a7083cdce8d9520a5fea.md5 b/.import/default.png-ba07210c8175a7083cdce8d9520a5fea.md5 new file mode 100644 index 0000000..d0d9108 --- /dev/null +++ b/.import/default.png-ba07210c8175a7083cdce8d9520a5fea.md5 @@ -0,0 +1,3 @@ +source_md5="569926ce2f64a54700654bb426207397" +dest_md5="f88565b3a94a4531560dc55f828a9892" + diff --git a/.import/default.png-ba07210c8175a7083cdce8d9520a5fea.stex b/.import/default.png-ba07210c8175a7083cdce8d9520a5fea.stex new file mode 100644 index 0000000..9703414 Binary files /dev/null and b/.import/default.png-ba07210c8175a7083cdce8d9520a5fea.stex differ diff --git a/.import/default1.png-73551975554b9daf91ca5bb238dd192c.md5 b/.import/default1.png-73551975554b9daf91ca5bb238dd192c.md5 new file mode 100644 index 0000000..d0d9108 --- /dev/null +++ b/.import/default1.png-73551975554b9daf91ca5bb238dd192c.md5 @@ -0,0 +1,3 @@ +source_md5="569926ce2f64a54700654bb426207397" +dest_md5="f88565b3a94a4531560dc55f828a9892" + diff --git a/.import/default1.png-73551975554b9daf91ca5bb238dd192c.stex b/.import/default1.png-73551975554b9daf91ca5bb238dd192c.stex new file mode 100644 index 0000000..9703414 Binary files /dev/null and b/.import/default1.png-73551975554b9daf91ca5bb238dd192c.stex differ diff --git a/.import/default2.png-a0ad125785fe4eb452fad490273110f4.md5 b/.import/default2.png-a0ad125785fe4eb452fad490273110f4.md5 new file mode 100644 index 0000000..1f18bd5 --- /dev/null +++ b/.import/default2.png-a0ad125785fe4eb452fad490273110f4.md5 @@ -0,0 +1,3 @@ +source_md5="dec205d1537cc5df5a38381789488042" +dest_md5="9f987866a8bb1e31e6ad76ba19ac9ea1" + diff --git a/.import/default2.png-a0ad125785fe4eb452fad490273110f4.stex b/.import/default2.png-a0ad125785fe4eb452fad490273110f4.stex new file mode 100644 index 0000000..1fb8cc7 Binary files /dev/null and b/.import/default2.png-a0ad125785fe4eb452fad490273110f4.stex differ diff --git a/.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.md5 b/.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.md5 new file mode 100644 index 0000000..5dc02e5 --- /dev/null +++ b/.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.md5 @@ -0,0 +1,3 @@ +source_md5="a9fce631308d16f0f99d7aa9b88dbecc" +dest_md5="67ee53f14740f78c90928782f0120032" + diff --git a/.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.stex b/.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.stex new file mode 100644 index 0000000..9211d2f Binary files /dev/null and b/.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.stex differ diff --git a/.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.md5 b/.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.md5 new file mode 100644 index 0000000..c6c6d97 --- /dev/null +++ b/.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.md5 @@ -0,0 +1,3 @@ +source_md5="99c402fadbfa24384dd0604eccb590cf" +dest_md5="5826445eb9a423ad04292595843d1946" + diff --git a/.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.stex b/.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.stex new file mode 100644 index 0000000..109f3fb Binary files /dev/null and b/.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.stex differ diff --git a/.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.md5 b/.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.md5 new file mode 100644 index 0000000..c6c6d97 --- /dev/null +++ b/.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.md5 @@ -0,0 +1,3 @@ +source_md5="99c402fadbfa24384dd0604eccb590cf" +dest_md5="5826445eb9a423ad04292595843d1946" + diff --git a/.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.stex b/.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.stex new file mode 100644 index 0000000..109f3fb Binary files /dev/null and b/.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.stex differ diff --git a/.import/yellow.png-50fc212920f49451d8c0e83182479efc.md5 b/.import/yellow.png-50fc212920f49451d8c0e83182479efc.md5 new file mode 100644 index 0000000..ea82fd7 --- /dev/null +++ b/.import/yellow.png-50fc212920f49451d8c0e83182479efc.md5 @@ -0,0 +1,3 @@ +source_md5="9ab3b43c3fab3cf779317451eae434bd" +dest_md5="790338f40f36385b805c76d376c0baf8" + diff --git a/.import/yellow.png-50fc212920f49451d8c0e83182479efc.stex b/.import/yellow.png-50fc212920f49451d8c0e83182479efc.stex new file mode 100644 index 0000000..a8ce726 Binary files /dev/null and b/.import/yellow.png-50fc212920f49451d8c0e83182479efc.stex differ diff --git a/.mono/assemblies/Debug/GodotSharp.dll b/.mono/assemblies/Debug/GodotSharp.dll index ac49a72..a809f38 100644 Binary files a/.mono/assemblies/Debug/GodotSharp.dll and b/.mono/assemblies/Debug/GodotSharp.dll differ diff --git a/.mono/assemblies/Debug/GodotSharp.pdb b/.mono/assemblies/Debug/GodotSharp.pdb index 8912d83..dff103b 100644 Binary files a/.mono/assemblies/Debug/GodotSharp.pdb and b/.mono/assemblies/Debug/GodotSharp.pdb differ diff --git a/.mono/assemblies/Debug/GodotSharp.xml b/.mono/assemblies/Debug/GodotSharp.xml index 6893764..062189e 100644 --- a/.mono/assemblies/Debug/GodotSharp.xml +++ b/.mono/assemblies/Debug/GodotSharp.xml @@ -5959,6 +5959,11 @@ Gamepad button 21. + + + Gamepad button 22. + + Represents the maximum number of joystick buttons supported. @@ -6089,6 +6094,11 @@ Gamepad DPad right. + + + Gamepad SDL guide button. + + Gamepad SDL miscellaneous button. @@ -7509,7 +7519,7 @@ return min(0, abs(u - v) - 1) should return a lower bound of the distance, i.e. _estimate_cost(u, v) <= _compute_cost(u, v). This serves as a hint to the algorithm because the custom _compute_cost might be computation-heavy. If this is not the case, make return the same value as to provide the algorithm with the most accurate information. - If the default and methods are used, or if the supplied method returns a lower bound of the cost, then the paths returned by A* will be the lowest cost paths. Here, the cost of a path equals to the sum of the results of all segments in the path multiplied by the weight_scales of the end points of the respective segments. If the default methods are used and the weight_scales of all points are set to 1.0, then this equals to the sum of Euclidean distances of all segments in the path. + If the default and methods are used, or if the supplied method returns a lower bound of the cost, then the paths returned by A* will be the lowest-cost paths. Here, the cost of a path equals the sum of the results of all segments in the path multiplied by the weight_scales of the endpoints of the respective segments. If the default methods are used and the weight_scales of all points are set to 1.0, then this equals the sum of Euclidean distances of all segments in the path. @@ -8212,7 +8222,7 @@ - Sets the path of a track. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ":". + Sets the path of a track. Paths must be valid scene-tree paths to a node and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ":". For example, "character/skeleton:ankle" or "character/mesh:transform/local". @@ -9450,12 +9460,12 @@ The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. To specify a track that controls properties or bones, append its name after the path, separated by ":". For example, "character/skeleton:ankle" or "character/mesh:transform/local". - If the track has type , the transformation will be cancelled visually, and the animation will appear to stay in place. + If the track has type , the transformation will be cancelled visually, and the animation will appear to stay in place. See also and RootMotionView. - Retrieve the motion of the as a that can be used elsewhere. If is not a path to a track of type , returns an identity transformation. + Retrieve the motion of the as a that can be used elsewhere. If is not a path to a track of type , returns an identity transformation. See also and RootMotionView. @@ -9899,7 +9909,7 @@ - The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction. + The area's gravity intensity (in meters per second squared). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction. @@ -10064,7 +10074,7 @@ - The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction. + The area's gravity intensity (in pixels per second squared). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction. @@ -10148,13 +10158,13 @@ If true, the given physics body overlaps the Area2D. Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. - The body argument can either be a or a instance (while TileMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body). + The body argument can either be a or a instance (while TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body). If true, the given area overlaps the Area2D. - Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + Note: The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead. @@ -10320,9 +10330,8 @@ Creates a new surface. - Surfaces are created to be rendered using a primitive, which may be any of the types defined in . (As a note, when using indices, it is recommended to only use points, lines or triangles.) will become the surf_idx for this new surface. + Surfaces are created to be rendered using a primitive, which may be any of the types defined in . (As a note, when using indices, it is recommended to only use points, lines, or triangles.) will become the surf_idx for this new surface. The arrays argument is an array of arrays. See for the values used in this array. For example, arrays[0] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array or be empty, except for if it is used. - Adding an index array puts this function into "index mode" where the vertex and other arrays become the sources of data, and the index array defines the order of the vertices. If the parameter is null, then the default value is new Godot.Collections.Array {} @@ -13921,11 +13930,11 @@ The camera's field of view angle (in degrees). Only applicable in perspective mode. Since locks one axis, fov sets the other axis' field of view angle. - For reference, the default vertical field of view value (75.0) is equivalent to a horizontal FOV of: - - ~91.31 degrees in a 4:3 viewport - - ~101.67 degrees in a 16:10 viewport - - ~107.51 degrees in a 16:9 viewport - - ~121.63 degrees in a 21:9 viewport + For reference, the default vertical field of view value (70.0) is equivalent to a horizontal FOV of: + - ~86.07 degrees in a 4:3 viewport + - ~96.50 degrees in a 16:10 viewport + - ~102.45 degrees in a 16:9 viewport + - ~117.06 degrees in a 21:9 viewport @@ -13950,7 +13959,7 @@ - Returns a normal vector in worldspace, that is the result of projecting a point on the rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. + Returns a normal vector in world space, that is the result of projecting a point on the rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. @@ -13960,12 +13969,12 @@ - Returns a 3D position in worldspace, that is the result of projecting a point on the rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. + Returns a 3D position in world space, that is the result of projecting a point on the rectangle by the camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. - Returns the 2D coordinate in the rectangle that maps to the given 3D point in worldspace. + Returns the 2D coordinate in the rectangle that maps to the given 3D point in world space. Note: When using this to position GUI elements over a 3D viewport, use to prevent them from appearing if the 3D point is behind the camera: # This code block is part of a script that inherits from Spatial. @@ -13983,22 +13992,22 @@ - Returns the 3D point in worldspace that maps to the given 2D coordinate in the rectangle on a plane that is the given z_depth distance into the scene away from the camera. + Returns the 3D point in world space that maps to the given 2D coordinate in the rectangle on a plane that is the given z_depth distance into the scene away from the camera. - Sets the camera projection to perspective mode (see ), by specifying a fov (field of view) angle in degrees, and the z_near and z_far clip planes in world-space units. + Sets the camera projection to perspective mode (see ), by specifying a fov (field of view) angle in degrees, and the z_near and z_far clip planes in world space units. - Sets the camera projection to orthogonal mode (see ), by specifying a size, and the z_near and z_far clip planes in world-space units. (As a hint, 2D games often use this projection, with values specified in pixels.) + Sets the camera projection to orthogonal mode (see ), by specifying a size, and the z_near and z_far clip planes in world space units. (As a hint, 2D games often use this projection, with values specified in pixels.) - Sets the camera projection to frustum mode (see ), by specifying a size, an offset, and the z_near and z_far clip planes in world-space units. + Sets the camera projection to frustum mode (see ), by specifying a size, an offset, and the z_near and z_far clip planes in world space units. @@ -14018,7 +14027,7 @@ - Returns the camera's frustum planes in world-space units as an array of s in the following order: near, far, left, top, right, bottom. Not to be confused with . + Returns the camera's frustum planes in world space units as an array of s in the following order: near, far, left, top, right, bottom. Not to be confused with . @@ -14039,7 +14048,7 @@ Camera node for 2D scenes. It forces the screen (current layer) to scroll following this node. This makes it easier (and faster) to program scrollable scenes than manually changing the position of -based nodes. - This node is intended to be a simple helper to get things going quickly and it may happen that more functionality is desired to change how the camera works. To make your own custom camera node, inherit from and change the transform of the canvas by setting in (you can obtain the current by using ). + This node is intended to be a simple helper to get things going quickly, but more functionality may be desired to change how the camera works. To make your own custom camera node, inherit it from and change the transform of the canvas by setting in (you can obtain the current by using ). Note that the node's position doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use to get the real position. @@ -15647,18 +15656,38 @@ a_vector=Vector3( 1, 0, 2 ) The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem. - The following example shows how to parse an INI-style file from the system, read its contents and store new values in it: + The following example shows how to create a simple and save it on disk: + # Create new ConfigFile object. var config = ConfigFile.new() - var err = config.load("user://settings.cfg") - if err == OK: # If not, something went wrong with the file loading - # Look for the display/width pair, and default to 1024 if missing - var screen_width = config.get_value("display", "width", 1024) - # Store a variable if and only if it hasn't been defined yet - if not config.has_section_key("audio", "mute"): - config.set_value("audio", "mute", false) - # Save the changes by overwriting the previous file - config.save("user://settings.cfg") + + # Store some values. + config.set_value("Player1", "player_name", "Steve") + config.set_value("Player1", "best_score", 10) + config.set_value("Player2", "player_name", "V3geta") + config.set_value("Player2", "best_score", 9001) + + # Save it to a file (overwrite if already exists). + config.save("user://scores.cfg") + + This example shows how the above file could be loaded: + + var score_data = {} + var config = ConfigFile.new() + + # Load data from a file. + var err = config.load("user://scores.cfg") + + # If the file didn't load, ignore it. + if err != OK: + return + + # Iterate over all sections. + for player in config.get_sections(): + # Fetch the data for each section. + var player_name = config.get_value(player, "player_name") + var player_score = config.get_value(player, "best_score") + score_data[player_name] = player_score Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load. ConfigFiles can also contain manually written comment lines starting with a semicolon (;). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action. @@ -15786,7 +15815,7 @@ Base class for all UI-related nodes. features a bounding rectangle that defines its extents, an anchor position relative to its parent control or the current viewport, and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change. For more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from and nodes. User Interface nodes and input - Godot sends input events to the scene's root node first, by calling . forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls . Call so no other node receives the event. Once you accepted an input, it becomes handled so will not process it. + Godot sends input events to the scene's root node first, by calling . forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls . Call so no other node receives the event. Once you accept an input, it becomes handled so will not process it. Only one node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the focus, call . nodes lose focus when another node grabs it, or if you hide the node in focus. Sets to to tell a node to ignore mouse or touch events. You'll need it if you place an icon on top of a button. resources change the Control's appearance. If you change the on a node, it affects all of its children. To override some of the theme's parameters, call one of the add_*_override methods, like . You can override the theme with the inspector. @@ -16314,13 +16343,13 @@ * control has set to ; * control is obstructed by another on top of it, which doesn't have set to ; * control's parent has set to or has accepted the event; - * it happens outside parent's rectangle and the parent has either or enabled. + * it happens outside the parent's rectangle and the parent has either or enabled. Virtual method to be implemented by the user. Returns a node that should be used as a tooltip instead of the default one. The for_text includes the contents of the property. - The returned node must be of type or Control-derived. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance (if you want to use a pre-existing node from your scene tree, you can duplicate it and pass the duplicated instance).When null or a non-Control node is returned, the default tooltip will be used instead. + The returned node must be of type or Control-derived. It can have child nodes of any type. It is freed when the tooltip disappears, so make sure you always provide a new instance (if you want to use a pre-existing node from your scene tree, you can duplicate it and pass the duplicated instance). When null or a non-Control node is returned, the default tooltip will be used instead. The returned node will be added as child to a , so you should only provide the contents of that panel. That can be themed using for the type "TooltipPanel" (see for an example). Note: The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its to some non-zero value. Example of usage with a custom-constructed node: @@ -16399,13 +16428,13 @@ - Sets the anchors to a preset from enum. This is code equivalent of using the Layout menu in 2D editor. + Sets the anchors to a preset from enum. This is the code equivalent to using the Layout menu in the 2D editor. If keep_margins is true, control's position will also be updated. - Sets the margins to a preset from enum. This is code equivalent of using the Layout menu in 2D editor. + Sets the margins to a preset from enum. This is the code equivalent to using the Layout menu in the 2D editor. Use parameter resize_mode with constants from to better determine the resulting size of the . Constant size will be ignored if used with presets that change size, e.g. PRESET_LEFT_WIDE. Use parameter margin to determine the gap between the and the edges. @@ -19888,6 +19917,7 @@ For more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616). Note: When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to CORS. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the Access-Control-Allow-Origin: * HTTP header. Note: SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an error. + Warning: SSL/TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period. @@ -20320,21 +20350,23 @@ - Sends a raw request to the connected host. The URL parameter is just the part after the host, so for http://somehost.com/index.php, it is index.php. + Sends a raw request to the connected host. + The URL parameter is usually just the part after the host, so for http://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). Headers are HTTP request headers. For available HTTP methods, see . Sends the body data raw, as a byte array and does not encode it in any way. - Sends a request to the connected host. The URL parameter is just the part after the host, so for http://somehost.com/index.php, it is index.php. + Sends a request to the connected host. + The URL parameter is usually just the part after the host, so for http://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). Headers are HTTP request headers. For available HTTP methods, see . To create a POST request with query strings to push to the server, do: var fields = {"username" : "user", "password" : "pass"} var query_string = http_client.query_string_from_dict(fields) var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(query_string.length())] - var result = http_client.request(http_client.METHOD_POST, "index.php", headers, query_string) + var result = http_client.request(http_client.METHOD_POST, "/index.php", headers, query_string) Note: The request_data parameter is ignored if method is . This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See String.http_escape for an example. @@ -20417,6 +20449,7 @@ A node with the ability to send HTTP requests. Uses internally. Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP. + Warning: See the notes and warnings on for limitations, especially regarding SSL security. Example of contacting a REST API and printing one of its returned fields: func _ready(): @@ -20475,8 +20508,6 @@ add_child(texture_rect) texture_rect.texture = texture - Note: When performing HTTP requests from a project exported to HTML5, keep in mind the remote server may not allow requests from foreign origins due to CORS. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the Access-Control-Allow-Origin: * HTTP header. - Note: SSL/TLS support is currently limited to TLS 1.0, TLS 1.1, and TLS 1.2. Attempting to connect to a TLS 1.3-only server will return an error. @@ -20961,7 +20992,7 @@ Performs bilinear separately on the two most-suited mipmap levels, then linearly interpolates between them. - It's slower than , but produces higher-quality results with much less aliasing artifacts. + It's slower than , but produces higher-quality results with far fewer aliasing artifacts. If the image does not have mipmaps, they will be generated and used internally, but no mipmaps will be generated on the resulting image. Note: If you intend to scale multiple copies of the original image, it's better to call ] on it in advance, to avoid wasting processing power in generating them again and again. On the other hand, if the image already has mipmaps, they will be used, and a new set will be generated for the resulting image. @@ -21279,7 +21310,7 @@ - Generates mipmaps for the image. Mipmaps are precalculated and lower resolution copies of the image. Mipmaps are automatically used if the image needs to be scaled down when rendered. This improves image quality and the performance of the rendering. Returns an error if the image is compressed, in a custom format or if the image's width/height is 0. + Generates mipmaps for the image. Mipmaps are precalculated lower-resolution copies of the image that are automatically used if the image needs to be scaled down when rendered. They help improve image quality and performance when rendering. This method returns an error if the image is compressed, in a custom format, or if the image's width/height is 0. @@ -21317,6 +21348,7 @@ Saves the image as an EXR file to path. If grayscale is true and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return if Godot was compiled without the TinyEXR module. + Note: The TinyEXR module is disabled in non-editor builds, which means will return when it is called from an exported project. @@ -22306,6 +22338,11 @@ Sets a deadzone value for the action. + + + Returns a deadzone value for the action. + + Adds an to an action. This will trigger the action. @@ -22714,6 +22751,53 @@ + + + JSON-RPC is a standard which wraps a method call in a object. The object has a particular structure and identifies which method is called, the parameters to that function, and carries an ID to keep track of responses. This class implements that standard on top of ; you will have to convert between a and with other functions. + + + + + A method call was requested but no function of that name existed in the JSONRPC subclass. + + + + + Given a Dictionary which takes the form of a JSON-RPC request: unpack the request and run it. Methods are resolved by looking at the field called "method" and looking for an equivalently named function in the JSONRPC object. If one is found that method is called. + To add new supported methods extend the JSONRPC class and call on your subclass. + action: The action to be run, as a Dictionary in the form of a JSON-RPC request or notification. + + + + + Returns a dictionary in the form of a JSON-RPC request. Requests are sent to a server with the expectation of a response. The ID field is used for the server to specify which exact request it is responding to. + - method: Name of the method being called. + - params: An array or dictionary of parameters being passed to the method. + - id: Uniquely identifies this request. The server is expected to send a response with the same ID. + + + + + When a server has received and processed a request, it is expected to send a response. If you did not want a response then you need to have sent a Notification instead. + - result: The return value of the function which was called. + - id: The ID of the request this response is targeted to. + + + + + Returns a dictionary in the form of a JSON-RPC notification. Notifications are one-shot messages which do not expect a response. + - method: Name of the method being called. + - params: An array or dictionary of parameters being passed to the method. + + + + + Creates a response which indicates a previous reply has failed in some way. + - code: The error code corresponding to what kind of error this is. See the constants. + - message: A custom message about this error. + - id: The request this error is a response to. + + The JavaScript singleton is implemented only in the HTML5 export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs. @@ -23017,6 +23101,11 @@ The colliding body's unique instance ID. See . + + + The colliding body's used by the . + + The colliding body's shape. @@ -23078,6 +23167,11 @@ The colliding body's unique instance ID. See . + + + The colliding body's used by the . + + The colliding body's shape. @@ -23100,7 +23194,7 @@ - Label displays plain text on the screen. It gives you control over the horizontal and vertical alignment, and can wrap the text inside the node's bounding rectangle. It doesn't support bold, italics or other formatting. For that, use instead. + Label displays plain text on the screen. It gives you control over the horizontal and vertical alignment and can wrap the text inside the node's bounding rectangle. It doesn't support bold, italics, or other formatting. For that, use instead. Note: Contrarily to most other s, Label's defaults to (i.e. it doesn't react to mouse input events). This implies that a label won't display any configured , unless you change its mouse filter. @@ -23166,7 +23260,7 @@ - If true, the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely. + If true, the Label only shows the text that fits inside its bounding rectangle and will clip text horizontally. @@ -25067,7 +25161,7 @@ MultiMesh provides low-level mesh instancing. Drawing thousands of nodes can be slow, since each object is submitted to the GPU then drawn individually. MultiMesh is much faster as it can draw thousands of instances with a single draw call, resulting in less API overhead. - As a drawback, if the instances are too far away of each other, performance may be reduced as every single instance will always render (they are spatially indexed as one, for the whole object). + As a drawback, if the instances are too far away from each other, performance may be reduced as every single instance will always render (they are spatially indexed as one, for the whole object). Since instances may have any behavior, the AABB used for visibility must be provided by the user. @@ -25373,6 +25467,7 @@ Provides navigation and pathfinding within a collection of es. By default, these will be automatically collected from child nodes, but they can also be added on the fly with . In addition to basic pathfinding, this class also assists with aligning navigation agents with the meshes they are navigating on. + Note: The current navigation system has many known issues and will not always return optimal paths as expected. These issues will be fixed in Godot 4.0. @@ -25398,6 +25493,7 @@ Returns the path between two given points. Points are in local coordinate space. If optimize is true (the default), the agent properties associated with each (radius, height, etc.) are considered in the path calculation, otherwise they are ignored. + Note: This method has known issues and will often return non-optimal paths. These issues will be fixed in Godot 4.0. @@ -25423,6 +25519,7 @@ Navigation2D provides navigation and pathfinding within a 2D area, specified as a collection of resources. By default, these are automatically collected from child nodes, but they can also be added on the fly with . + Note: The current navigation system has many known issues and will not always return optimal paths as expected. These issues will be fixed in Godot 4.0. @@ -25443,6 +25540,7 @@ Returns the path between two given points. Points are in local coordinate space. If optimize is true (the default), the path is smoothed by merging path segments where possible. + Note: This method has known issues and will often return non-optimal paths. These issues will be fixed in Godot 4.0. @@ -26374,6 +26472,7 @@ This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by . + Warning: SSL/TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period. @@ -29650,7 +29749,7 @@ Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. - If the parameter is null, then the default value is new Transform() + If the parameter is null, then the default value is Transform.Identity @@ -29797,7 +29896,7 @@ Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. - If the parameter is null, then the default value is new Transform() + If the parameter is null, then the default value is Transform.Identity @@ -30424,7 +30523,7 @@ Popup (show the control in modal form). - If the parameter is null, then the default value is new Rect2(0, 0, 0, 0) + If the parameter is null, then the default value is new Rect2(new Vector2(0, 0), new Vector2(0, 0)) @@ -30714,6 +30813,11 @@ Returns the associated with the specified idx item. + + + Returns the index of the currently focused item. Returns -1 if no item is focused. + + Returns the number of items in the . @@ -31871,6 +31975,7 @@ Duplicates the resource, returning a new resource. By default, sub-resources are shared between resource copies for efficiency. This can be changed by passing true to the subresources argument which will copy the subresources. Note: If subresources is true, this method will only perform a shallow copy. Nested resources within subresources will not be duplicated and will still be shared. + Note: When duplicating a resource, only exported properties are copied. Other properties will be set to their default value in the new resource. @@ -33028,6 +33133,7 @@ Quits the application at the end of the current iteration. A process exit_code can optionally be passed as an argument. If this argument is 0 or greater, it will override the defined before quitting the application. + Note: On iOS this method doesn't work. Instead, as recommended by the iOS Human Interface Guidelines, the user is expected to close apps via the Home button. @@ -38307,7 +38413,7 @@ - If true, collision shapes are shown in the editor and at run-time. Requires Visible Collision Shapes to be enabled in the Debug menu for collision shapes to be visible at run-time. + If true, collision shapes are visible in the editor. Doesn't affect collision shapes visibility at runtime. To show collision shapes at runtime, enable Visible Collision Shapes in the Debug menu instead. @@ -39296,6 +39402,11 @@ Returns the current scrolling position. + + + Causes the to jump to the specified item. + + Control for a single item inside a . May have child s and be styled as well as contain buttons. @@ -44722,7 +44833,7 @@ Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, . - If the parameter is null, then the default value is new Rect2(0, 0, 0, 0) + If the parameter is null, then the default value is new Rect2(new Vector2(0, 0), new Vector2(0, 0)) @@ -45042,7 +45153,7 @@ Sets the lightmap to use with this instance. - If the parameter is null, then the default value is new Rect2(0, 0, 1, 1) + If the parameter is null, then the default value is new Rect2(new Vector2(0, 0), new Vector2(1, 1)) @@ -45163,7 +45274,7 @@ Defines a custom drawing rectangle for the . - If the parameter is null, then the default value is new Rect2(0, 0, 0, 0) + If the parameter is null, then the default value is new Rect2(new Vector2(0, 0), new Vector2(0, 0)) @@ -47348,6 +47459,11 @@ Note: Not available in the HTML5 export. + + + Returns the current amount of data in the outbound websocket buffer. Note: HTML5 exports use WebSocket.bufferedAmount, while other platforms use an internal buffer. + + This class implements a WebSocket server that can also support the high-level multiplayer API. @@ -47945,7 +48061,7 @@ - Initializes the stream used to list all files and directories using the function, closing the current opened stream if needed. Once the stream has been processed, it should typically be closed with . + Initializes the stream used to list all files and directories using the function, closing the currently opened stream if needed. Once the stream has been processed, it should typically be closed with . If skip_navigational is true, . and .. are filtered out. If skip_hidden is true, hidden files are filtered out. @@ -48027,7 +48143,7 @@ - Renames (move) the from file to the to destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten. + Renames (move) the from file or directory to the to destination. Both arguments should be paths to files or directories, either relative or absolute. If the destination file or directory exists and is not access-protected, it will be overwritten. Returns one of the code constants (OK on success). @@ -48051,7 +48167,7 @@ else: simulate_physics() - See Running code in the editor in the documentation for more information. + See Running code in the editor in the documentation for more information. Note: To detect whether the script is run from an editor build (e.g. when pressing F5), use with the "editor" argument instead. OS.has_feature("editor") will evaluate to true both when the code is running in the editor and when running the project from the editor, but it will evaluate to false when the code is run from an exported project. @@ -48072,7 +48188,8 @@ - Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of in-game clock and real clock, but allows smoothing out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. + Controls how much physics ticks are synchronized with real time. For 0 or less, the ticks are synchronized. Such values are recommended for network games, where clock synchronization matters. Higher values cause higher deviation of the in-game clock and real clock but smooth out framerate jitters. The default value of 0.5 should be fine for most; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. + Note: For best results, when using a custom physics interpolation solution, the physics jitter fix should be disabled by setting to 0. @@ -48481,6 +48598,7 @@ Stores any Variant value in the file. If full_objects is true, encoding objects is allowed (and can potentially include code). + Note: Not all properties are included. Only properties that are configured with the flag set will be serialized. You can add a new usage flag to a property by overriding the method in your class. You can also check how property usage is configured by calling . See for the possible usage flags. @@ -49650,7 +49768,7 @@ - Delay execution of the current thread by msec milliseconds. usec must be greater than or equal to 0. Otherwise, will do nothing and will print an error message. + Delay execution of the current thread by msec milliseconds. msec must be greater than or equal to 0. Otherwise, will do nothing and will print an error message. @@ -49813,16 +49931,17 @@ If the project name is empty, user:// falls back to res://. - + Returns the actual path to commonly used folders across different platforms. Available locations are specified in . Note: This method is implemented on Android, Linux, macOS and Windows. + Note: Shared storage is implemented on Android and allows to differentiate between app specific and shared directories. Shared directories have additional restrictions on Android. Returns a string that is unique to the device. - Note: This string may change without notice if the user reinstalls/upgrades their operating system or changes their hardware. This means it should generally not be used to encrypt persistent data as the data saved prior to an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by for security purposes. + Note: This string may change without notice if the user reinstalls/upgrades their operating system or changes their hardware. This means it should generally not be used to encrypt persistent data as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by for security purposes. Note: Returns an empty string on HTML5 and UWP, as this method isn't implemented on those platforms yet. @@ -49910,7 +50029,7 @@ - Returns true if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the Feature Tags documentation for more details. + Returns true if the feature for the given feature tag is supported in the currently running instance, depending on the platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the Feature Tags documentation for more details. Note: Tag names are case-sensitive. @@ -49939,13 +50058,13 @@ - With this function you can request dangerous permissions since normal permissions are automatically granted at install time in Android application. + With this function, you can request dangerous permissions since normal permissions are automatically granted at install time in Android applications. Note: This method is implemented on Android. - With this function you can get the list of dangerous permissions that have been granted to the Android application. + With this function, you can get the list of dangerous permissions that have been granted to the Android application. Note: This method is implemented on Android. diff --git a/.mono/assemblies/Debug/GodotSharpEditor.dll b/.mono/assemblies/Debug/GodotSharpEditor.dll index 37d1e95..d41a79a 100644 Binary files a/.mono/assemblies/Debug/GodotSharpEditor.dll and b/.mono/assemblies/Debug/GodotSharpEditor.dll differ diff --git a/.mono/assemblies/Debug/GodotSharpEditor.pdb b/.mono/assemblies/Debug/GodotSharpEditor.pdb index 7f58e4f..eedfa4c 100644 Binary files a/.mono/assemblies/Debug/GodotSharpEditor.pdb and b/.mono/assemblies/Debug/GodotSharpEditor.pdb differ diff --git a/.mono/assemblies/Debug/GodotSharpEditor.xml b/.mono/assemblies/Debug/GodotSharpEditor.xml index 5407f9d..396f8b0 100644 --- a/.mono/assemblies/Debug/GodotSharpEditor.xml +++ b/.mono/assemblies/Debug/GodotSharpEditor.xml @@ -332,7 +332,7 @@ - Gets the type of the file, given the full path. + Returns the resource type of the file, given the full path. This returns a string such as "Resource" or "GDScript", not a file extension such as ".gd". @@ -372,7 +372,7 @@ - Returns the file extension of the file at index idx. + Returns the resource type of the file at index idx. This returns a string such as "Resource" or "GDScript", not a file extension such as ".gd". @@ -581,17 +581,17 @@ - Adds a custom control, not necessarily a property editor. + Adds a custom control, which is not necessarily a property editor. - Adds a property editor, this must inherit . + Adds a property editor for an individual property. The editor control must extend . - Adds an editor that allows modifying multiple properties, this must inherit . + Adds an editor that allows modifying multiple properties. The editor control must extend . @@ -1038,6 +1038,16 @@ Updates the overlays of the 2D and 3D editor viewport. Causes methods , , and to be called. + + + Makes a specific item in the bottom panel visible. + + + + + Minimizes the bottom panel. + + Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it. @@ -1048,9 +1058,69 @@ Queue save the project's editor layout. + + + Registers a new . Import plugins are used to import custom and unsupported assets as a custom type. + Note: If you want to import custom 3D asset formats use instead. + See for an example of how to register a plugin. + + + + + Removes an import plugin registered by . + + + + + Registers a new . Scene importers are used to import custom 3D asset formats as scenes. + + + + + Removes a scene importer registered by . + + - Registers a new export plugin. Export plugins are used when the project is being exported. See for more information. + Registers a new . Export plugins are used to perform tasks when the project is being exported. + See for an example of how to register a plugin. + + + + + Removes an export plugin registered by . + + + + + Registers a new . Gizmo plugins are used to add custom gizmos to the 3D preview viewport for a . + See for an example of how to register a plugin. + + + + + Removes a gizmo plugin registered by . + + + + + Registers a new . Inspector plugins are used to extend and provide custom configuration tools for your object's properties. + Note: Always use to remove the registered when your is disabled to prevent leaks and an unexpected behavior. + + const MyInspectorPlugin = preload("res://addons/your_addon/path/to/your/script.gd") + var inspector_plugin = MyInspectorPlugin.new() + + func _enter_tree(): + add_inspector_plugin(inspector_plugin) + + func _exit_tree(): + remove_inspector_plugin(inspector_plugin) + + + + + + Removes an inspector plugin registered by @@ -1126,7 +1196,7 @@ - Override if you want to allow a custom tooltip over your property. + Must be implemented to provide a custom tooltip to the property editor. @@ -1136,7 +1206,7 @@ - Adds controls with this function if you want them on the bottom (below the label). + Puts the editor control below the property label. The control must be previously added using . @@ -1152,12 +1222,14 @@ - Queue a resource file for preview (using a path). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything. + Queue a resource file located at path for preview. Once the preview is ready, the receiver's receiver_func will be called. The receiver_func must take the following four arguments: path, preview, thumbnail_preview, Variant userdata. userdata can be anything, and will be returned when receiver_func is called. + Note: If it was not possible to create the preview the receiver_func will still be called, but the preview will be null. - Queue a resource being edited for preview (using an instance). Once the preview is ready, your receiver.receiver_func will be called either containing the preview texture or an empty texture (if no preview was possible). Callback must have the format: (path,texture,userdata). Userdata can be anything. + Queue the resource being edited for preview. Once the preview is ready, the receiver's receiver_func will be called. The receiver_func must take the following four arguments: path, preview, thumbnail_preview, Variant userdata. userdata can be anything, and will be returned when receiver_func is called. + Note: If it was not possible to create the preview the receiver_func will still be called, but the preview will be null. diff --git a/.mono/assemblies/Debug/api_hash_cache.cfg b/.mono/assemblies/Debug/api_hash_cache.cfg index ccb5ff2..54681c6 100644 --- a/.mono/assemblies/Debug/api_hash_cache.cfg +++ b/.mono/assemblies/Debug/api_hash_cache.cfg @@ -1,13 +1,13 @@ [core] -modified_time=1630592323 +modified_time=1633115854 bindings_version=13 -cs_glue_version=1628531189 -api_hash=-8111739821965358014 +cs_glue_version=1631205715 +api_hash=2578736914501152963 [editor] -modified_time=1630592323 +modified_time=1633115854 bindings_version=13 -cs_glue_version=1628531189 -api_hash=-7153272170507555554 +cs_glue_version=1631205715 +api_hash=-6206890189647537633 diff --git a/.mono/metadata/ide_messaging_meta.txt b/.mono/metadata/ide_messaging_meta.txt deleted file mode 100644 index 25b32f9..0000000 --- a/.mono/metadata/ide_messaging_meta.txt +++ /dev/null @@ -1,2 +0,0 @@ -46661 -/opt/godot-mono/bin/godot.x11.opt.tools.64.mono diff --git a/.mono/temp/bin/Debug/pegchamp.dll b/.mono/temp/bin/Debug/pegchamp.dll index cd76808..285c6be 100644 Binary files a/.mono/temp/bin/Debug/pegchamp.dll and b/.mono/temp/bin/Debug/pegchamp.dll differ diff --git a/.mono/temp/bin/Debug/pegchamp.pdb b/.mono/temp/bin/Debug/pegchamp.pdb index 4359778..de2be0d 100644 Binary files a/.mono/temp/bin/Debug/pegchamp.pdb and b/.mono/temp/bin/Debug/pegchamp.pdb differ diff --git a/.mono/temp/obj/Debug/pegchamp.csprojAssemblyReference.cache b/.mono/temp/obj/Debug/pegchamp.csprojAssemblyReference.cache index 1018b8c..1866336 100644 Binary files a/.mono/temp/obj/Debug/pegchamp.csprojAssemblyReference.cache and b/.mono/temp/obj/Debug/pegchamp.csprojAssemblyReference.cache differ diff --git a/.mono/temp/obj/Debug/pegchamp.dll b/.mono/temp/obj/Debug/pegchamp.dll index cd76808..285c6be 100644 Binary files a/.mono/temp/obj/Debug/pegchamp.dll and b/.mono/temp/obj/Debug/pegchamp.dll differ diff --git a/.mono/temp/obj/Debug/pegchamp.pdb b/.mono/temp/obj/Debug/pegchamp.pdb index 4359778..de2be0d 100644 Binary files a/.mono/temp/obj/Debug/pegchamp.pdb and b/.mono/temp/obj/Debug/pegchamp.pdb differ diff --git a/Aseprite/CameraMovement.ase b/Aseprite/CameraMovement.ase new file mode 100644 index 0000000..1882ce2 Binary files /dev/null and b/Aseprite/CameraMovement.ase differ diff --git a/Aseprite/DefaultCard.ase b/Aseprite/DefaultCard.ase new file mode 100644 index 0000000..2f6d767 Binary files /dev/null and b/Aseprite/DefaultCard.ase differ diff --git a/Aseprite/Floppy.ase b/Aseprite/Floppy.ase new file mode 100644 index 0000000..7eaa040 Binary files /dev/null and b/Aseprite/Floppy.ase differ diff --git a/Aseprite/Play.ase b/Aseprite/Play.ase index fe69113..77d383b 100644 Binary files a/Aseprite/Play.ase and b/Aseprite/Play.ase differ diff --git a/Aseprite/Screenshake.ase b/Aseprite/Screenshake.ase new file mode 100644 index 0000000..1195924 Binary files /dev/null and b/Aseprite/Screenshake.ase differ diff --git a/Aseprite/aimingArrow.ase b/Aseprite/aimingArrow.ase new file mode 100644 index 0000000..0e84c83 Binary files /dev/null and b/Aseprite/aimingArrow.ase differ diff --git a/Aseprite/check.ase b/Aseprite/check.ase new file mode 100644 index 0000000..511b39d Binary files /dev/null and b/Aseprite/check.ase differ diff --git a/Aseprite/powerup.ase b/Aseprite/powerup.ase new file mode 100644 index 0000000..60ae092 Binary files /dev/null and b/Aseprite/powerup.ase differ diff --git a/Ball/Arrow.gd b/Ball/Arrow.gd new file mode 100644 index 0000000..631aaa8 --- /dev/null +++ b/Ball/Arrow.gd @@ -0,0 +1,5 @@ +extends Sprite + +func _process(_delta): + if !visible: pass + look_at(get_global_mouse_position()) diff --git a/Ball/Ball.gd b/Ball/Ball.gd index 4f17c6c..9733570 100644 --- a/Ball/Ball.gd +++ b/Ball/Ball.gd @@ -59,6 +59,9 @@ func aim(): state = FALL + # stop showing arrow + $Arrow.visible = false + # calculate shot speed and direction var direction = get_local_mouse_position().normalized() var speed = position.distance_to(get_global_mouse_position()) @@ -97,3 +100,4 @@ func reset_ball(): animation.play("reset") func reset_done(): state = AIM + $Arrow.visible = true diff --git a/Ball/Ball.tscn b/Ball/Ball.tscn index 873f384..6595fda 100644 --- a/Ball/Ball.tscn +++ b/Ball/Ball.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://Ball/sprite.png" type="Texture" id=1] [ext_resource path="res://Ball/Ball.gd" type="Script" id=2] @@ -6,6 +6,8 @@ [ext_resource path="res://Ball/BallCollision.tscn" type="PackedScene" id=4] [ext_resource path="res://SFX/Scratch/BallReset.wav" type="AudioStream" id=5] [ext_resource path="res://Effects/greenParticle.png" type="Texture" id=6] +[ext_resource path="res://Ball/aimingArrow.png" type="Texture" id=7] +[ext_resource path="res://Ball/Arrow.gd" type="Script" id=8] [sub_resource type="ParticlesMaterial" id=1] lifetime_randomness = 0.5 @@ -100,4 +102,9 @@ anims/reset = SubResource( 2 ) stream = ExtResource( 5 ) bus = "SFX" +[node name="Arrow" type="Sprite" parent="."] +texture = ExtResource( 7 ) +offset = Vector2( 4, 0 ) +script = ExtResource( 8 ) + [connection signal="timeout" from="TrajectoryTimer" to="." method="_on_TrajectoryTimer_timeout"] diff --git a/Ball/aimingArrow.png b/Ball/aimingArrow.png new file mode 100644 index 0000000..a7246fd Binary files /dev/null and b/Ball/aimingArrow.png differ diff --git a/Ball/aimingArrow.png.import b/Ball/aimingArrow.png.import new file mode 100644 index 0000000..6dd2d02 --- /dev/null +++ b/Ball/aimingArrow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Ball/aimingArrow.png" +dest_files=[ "res://.import/aimingArrow.png-0e4fc3516665f51b9c35c93812ffa33e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Effects/FadeOut.gd b/Effects/FadeOut.gd index 2cfd57b..95d588c 100644 --- a/Effects/FadeOut.gd +++ b/Effects/FadeOut.gd @@ -8,4 +8,5 @@ func _ready(): $AnimationPlayer.play("FadeOut") func finish_animation(): + get_tree().paused = false var _new_scene = get_tree().change_scene(scene_to_load) diff --git a/Effects/FadeOut.tscn b/Effects/FadeOut.tscn index 5968f8d..bede816 100644 --- a/Effects/FadeOut.tscn +++ b/Effects/FadeOut.tscn @@ -5,6 +5,7 @@ [ext_resource path="res://SFX/Scratch/Fadeout.ogg" type="AudioStream" id=3] [node name="FadeOut" instance=ExtResource( 1 )] +pause_mode = 2 script = ExtResource( 2 ) [node name="FadeoutSound" type="AudioStreamPlayer" parent="AnimationPlayer" index="0"] diff --git a/Effects/Floppy.gd b/Effects/Floppy.gd new file mode 100644 index 0000000..fc26afd --- /dev/null +++ b/Effects/Floppy.gd @@ -0,0 +1,4 @@ +extends CanvasLayer + +func _ready(): + $AnimationPlayer.play("Saving") diff --git a/Effects/Floppy.tscn b/Effects/Floppy.tscn new file mode 100644 index 0000000..ab60933 --- /dev/null +++ b/Effects/Floppy.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Menu/Icons/Floppy/Floppy.png" type="Texture" id=1] +[ext_resource path="res://Effects/Floppy.gd" type="Script" id=2] + +[sub_resource type="Animation" id=1] +resource_name = "Saving" +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.9, 1 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 374, -10 ), Vector2( 374, 10 ), Vector2( 374, 10 ), Vector2( 374, -8 ) ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 1 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} + +[node name="Floppy" type="CanvasLayer"] +pause_mode = 2 +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 374, -10 ) +texture = ExtResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/Saving = SubResource( 1 ) diff --git a/HUD/BallCounter.gd b/HUD/BallCounter.gd index 1805949..ffae6de 100644 --- a/HUD/BallCounter.gd +++ b/HUD/BallCounter.gd @@ -9,3 +9,5 @@ func set_balls(): var old_region_size = get_region_rect().size.y var new_region = Rect2(0, 0, old_region_size * GameStats.balls_left - old_region_size, old_region_size) set_region_rect(new_region) + visible = true + else: visible = false diff --git a/HUD/BallsLeftLabel.gd b/HUD/BallsLeftLabel.gd new file mode 100644 index 0000000..c1fc985 --- /dev/null +++ b/HUD/BallsLeftLabel.gd @@ -0,0 +1,5 @@ +extends Node2D + +func _ready(): + $AnimationPlayer.play("show") + $Label.text = "+" + String(GameStats.bonus_points) diff --git a/HUD/BallsLeftLabel.tscn b/HUD/BallsLeftLabel.tscn new file mode 100644 index 0000000..b5f8355 --- /dev/null +++ b/HUD/BallsLeftLabel.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Menu/Theme.tres" type="Theme" id=1] +[ext_resource path="res://HUD/BallsLeftLabel.gd" type="Script" id=2] +[ext_resource path="res://Ball/sprite.png" type="Texture" id=3] + +[sub_resource type="Animation" id=1] +resource_name = "show" +length = 1.5 +tracks/0/type = "value" +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.5, 1.3, 1.5 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 0, +"values": [ Vector2( -48, 8 ), Vector2( 8, 8 ), Vector2( 16, 8 ), Vector2( -48, 8 ) ] +} + +[node name="CanvasLayer" type="CanvasLayer"] + +[node name="BallsLeft" type="Node2D" parent="."] +position = Vector2( 8, 8 ) +script = ExtResource( 2 ) + +[node name="Label" type="Label" parent="BallsLeft"] +margin_right = 112.0 +margin_bottom = 39.0 +theme = ExtResource( 1 ) +text = "+50" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Sprite" type="Sprite" parent="BallsLeft/Label"] +position = Vector2( 8, 8 ) +texture = ExtResource( 3 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="BallsLeft"] +anims/show = SubResource( 1 ) diff --git a/Menu/Buttons/AudioSliders/VolumeSlider.tscn b/Menu/Buttons/AudioSliders/VolumeSlider.tscn index 694587e..7ec0243 100644 --- a/Menu/Buttons/AudioSliders/VolumeSlider.tscn +++ b/Menu/Buttons/AudioSliders/VolumeSlider.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://Menu/Buttons/AudioSliders/VolumeSlider.gd" type="Script" id=1] [ext_resource path="res://Menu/Theme.tres" type="Theme" id=2] +[ext_resource path="res://Menu/Buttons/ButtonSFX.tscn" type="PackedScene" id=3] [node name="VolumeSlider" type="HSlider"] margin_right = 500.0 @@ -16,6 +17,12 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="ButtonSFX" parent="." instance=ExtResource( 3 )] + +[connection signal="focus_entered" from="." to="ButtonSFX" method="on_hover"] [connection signal="focus_exited" from="." to="." method="save_volume"] +[connection signal="focus_exited" from="." to="ButtonSFX" method="on_select"] +[connection signal="mouse_entered" from="." to="ButtonSFX" method="on_hover"] [connection signal="mouse_exited" from="." to="." method="save_volume"] +[connection signal="mouse_exited" from="." to="ButtonSFX" method="on_select"] [connection signal="value_changed" from="." to="." method="_on_MusicVolumeSlider_value_changed"] diff --git a/Menu/Buttons/ButtonSFX.gd b/Menu/Buttons/ButtonSFX.gd index 56eeaeb..9067a28 100644 --- a/Menu/Buttons/ButtonSFX.gd +++ b/Menu/Buttons/ButtonSFX.gd @@ -1,5 +1,4 @@ extends Node - func on_hover(): $Hover.play(0) diff --git a/Menu/Buttons/CameraFXButton.gd b/Menu/Buttons/CameraFXButton.gd new file mode 100644 index 0000000..913ad80 --- /dev/null +++ b/Menu/Buttons/CameraFXButton.gd @@ -0,0 +1,8 @@ +extends CheckBox + +func _ready(): + pressed = GameStats.camera_fx + +func _on_CameraFXButton_toggled(button_pressed): + GameStats.camera_fx = button_pressed + Saves.save_game() diff --git a/Menu/Buttons/CameraFXButton.tscn b/Menu/Buttons/CameraFXButton.tscn new file mode 100644 index 0000000..52eae62 --- /dev/null +++ b/Menu/Buttons/CameraFXButton.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Menu/Theme.tres" type="Theme" id=1] +[ext_resource path="res://Menu/Icons/cameraFX/CameraMovement1.png" type="Texture" id=2] +[ext_resource path="res://Menu/Buttons/CameraFXButton.gd" type="Script" id=3] +[ext_resource path="res://Menu/Buttons/ButtonSFX.tscn" type="PackedScene" id=4] + +[node name="CameraFXButton" type="CheckBox"] +margin_left = 290.0 +margin_right = 368.0 +margin_bottom = 40.0 +size_flags_horizontal = 3 +theme = ExtResource( 1 ) +pressed = true +icon = ExtResource( 2 ) +align = 2 +script = ExtResource( 3 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ButtonSFX" parent="." instance=ExtResource( 4 )] + +[connection signal="focus_entered" from="." to="ButtonSFX" method="on_hover"] +[connection signal="mouse_entered" from="." to="ButtonSFX" method="on_hover"] +[connection signal="pressed" from="." to="ButtonSFX" method="on_select"] +[connection signal="toggled" from="." to="." method="_on_CameraFXButton_toggled"] diff --git a/Menu/Buttons/Fullscreen/FullscreenButton.gd b/Menu/Buttons/Fullscreen/FullscreenButton.gd index 3d90705..4196d6a 100644 --- a/Menu/Buttons/Fullscreen/FullscreenButton.gd +++ b/Menu/Buttons/Fullscreen/FullscreenButton.gd @@ -1,4 +1,4 @@ -extends TextureButton +extends CheckBox diff --git a/Menu/Buttons/Fullscreen/FullscreenButton.tscn b/Menu/Buttons/Fullscreen/FullscreenButton.tscn index 22584df..b5332b9 100644 --- a/Menu/Buttons/Fullscreen/FullscreenButton.tscn +++ b/Menu/Buttons/Fullscreen/FullscreenButton.tscn @@ -1,18 +1,13 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://Menu/Buttons/Fullscreen/fullscreen1.png" type="Texture" id=1] -[ext_resource path="res://Menu/Buttons/Fullscreen/fullscreen3.png" type="Texture" id=2] -[ext_resource path="res://Menu/Buttons/Fullscreen/fullscreen2.png" type="Texture" id=3] [ext_resource path="res://Menu/Buttons/Fullscreen/FullscreenButton.gd" type="Script" id=4] [ext_resource path="res://Menu/Buttons/ButtonSFX.tscn" type="PackedScene" id=5] -[node name="FullscreenButton" type="TextureButton"] +[node name="FullscreenButton" type="CheckBox"] anchor_right = 1.0 anchor_bottom = 1.0 -toggle_mode = true -texture_normal = ExtResource( 1 ) -texture_pressed = ExtResource( 2 ) -texture_hover = ExtResource( 3 ) +icon = ExtResource( 1 ) script = ExtResource( 4 ) __meta__ = { "_edit_use_anchors_": false diff --git a/Menu/Buttons/LevelSelectButton.gd b/Menu/Buttons/LevelSelectButton.gd index ddcb464..7385040 100644 --- a/Menu/Buttons/LevelSelectButton.gd +++ b/Menu/Buttons/LevelSelectButton.gd @@ -6,7 +6,7 @@ export var unlock_points_required = 0 func _ready(): if unlock_points_required > GameStats.unlock_points: disabled = true - text = String(unlock_points_required - GameStats.unlock_points) + " more points" + text = String(unlock_points_required - GameStats.unlock_points) + " more xp" func _on_SceneSelectButton_pressed(): GameStats.set_current_scene(scene) diff --git a/Menu/Buttons/LevelSelectIconButton.gd b/Menu/Buttons/LevelSelectIconButton.gd index a9460b8..33e9142 100644 --- a/Menu/Buttons/LevelSelectIconButton.gd +++ b/Menu/Buttons/LevelSelectIconButton.gd @@ -9,4 +9,3 @@ func _on_LevelSelectIconButton_pressed(): var fadeout = Fadeout.instance() fadeout.scene_to_load = scene main.add_child(fadeout) - get_tree().paused = false diff --git a/Menu/Buttons/SceneSelectButton.tscn b/Menu/Buttons/SceneSelectButton.tscn index b3548c6..5ff6e7b 100644 --- a/Menu/Buttons/SceneSelectButton.tscn +++ b/Menu/Buttons/SceneSelectButton.tscn @@ -20,5 +20,5 @@ __meta__ = { [connection signal="focus_entered" from="." to="ButtonSFX" method="on_hover"] [connection signal="mouse_entered" from="." to="ButtonSFX" method="on_hover"] -[connection signal="pressed" from="." to="ButtonSFX" method="on_select"] [connection signal="pressed" from="." to="." method="_on_SceneSelectButton_pressed"] +[connection signal="pressed" from="." to="ButtonSFX" method="on_select"] diff --git a/Menu/Icons/Floppy/Floppy.png b/Menu/Icons/Floppy/Floppy.png new file mode 100644 index 0000000..3de5efa Binary files /dev/null and b/Menu/Icons/Floppy/Floppy.png differ diff --git a/Menu/Icons/Floppy/Floppy.png.import b/Menu/Icons/Floppy/Floppy.png.import new file mode 100644 index 0000000..df0511e --- /dev/null +++ b/Menu/Icons/Floppy/Floppy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/Floppy/Floppy.png" +dest_files=[ "res://.import/Floppy.png-9ffd77984850c7d94077108f3f8d3e76.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/Play/Play1.png b/Menu/Icons/Play/Play1.png index 8d3c51a..d588f5c 100644 Binary files a/Menu/Icons/Play/Play1.png and b/Menu/Icons/Play/Play1.png differ diff --git a/Menu/Icons/Screenshake/Screenshake1.png b/Menu/Icons/Screenshake/Screenshake1.png new file mode 100644 index 0000000..d2e8809 Binary files /dev/null and b/Menu/Icons/Screenshake/Screenshake1.png differ diff --git a/Menu/Icons/Screenshake/Screenshake1.png.import b/Menu/Icons/Screenshake/Screenshake1.png.import new file mode 100644 index 0000000..749c619 --- /dev/null +++ b/Menu/Icons/Screenshake/Screenshake1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/Screenshake/Screenshake1.png" +dest_files=[ "res://.import/Screenshake1.png-b36c600885491200ca32b0720b48c4f9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/Screenshake/Screenshake2.png b/Menu/Icons/Screenshake/Screenshake2.png new file mode 100644 index 0000000..6c84f17 Binary files /dev/null and b/Menu/Icons/Screenshake/Screenshake2.png differ diff --git a/Menu/Icons/Screenshake/Screenshake2.png.import b/Menu/Icons/Screenshake/Screenshake2.png.import new file mode 100644 index 0000000..cb261c6 --- /dev/null +++ b/Menu/Icons/Screenshake/Screenshake2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/Screenshake/Screenshake2.png" +dest_files=[ "res://.import/Screenshake2.png-3114e9850546927b401b5626980b09a5.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/Screenshake/Screenshake3.png b/Menu/Icons/Screenshake/Screenshake3.png new file mode 100644 index 0000000..e028d67 Binary files /dev/null and b/Menu/Icons/Screenshake/Screenshake3.png differ diff --git a/Menu/Icons/Screenshake/Screenshake3.png.import b/Menu/Icons/Screenshake/Screenshake3.png.import new file mode 100644 index 0000000..7d4aa52 --- /dev/null +++ b/Menu/Icons/Screenshake/Screenshake3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/Screenshake/Screenshake3.png" +dest_files=[ "res://.import/Screenshake3.png-7f143779a69ef48896d509f7edc8e771.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/cameraFX/CameraMovement1.png b/Menu/Icons/cameraFX/CameraMovement1.png new file mode 100644 index 0000000..b4e783d Binary files /dev/null and b/Menu/Icons/cameraFX/CameraMovement1.png differ diff --git a/Menu/Icons/cameraFX/CameraMovement1.png.import b/Menu/Icons/cameraFX/CameraMovement1.png.import new file mode 100644 index 0000000..958e274 --- /dev/null +++ b/Menu/Icons/cameraFX/CameraMovement1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/cameraFX/CameraMovement1.png" +dest_files=[ "res://.import/CameraMovement1.png-ca626eb0474f09633c9fca74aeba63e2.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/cameraFX/CameraMovement2.png b/Menu/Icons/cameraFX/CameraMovement2.png new file mode 100644 index 0000000..9f65528 Binary files /dev/null and b/Menu/Icons/cameraFX/CameraMovement2.png differ diff --git a/Menu/Icons/cameraFX/CameraMovement2.png.import b/Menu/Icons/cameraFX/CameraMovement2.png.import new file mode 100644 index 0000000..4df55c9 --- /dev/null +++ b/Menu/Icons/cameraFX/CameraMovement2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/cameraFX/CameraMovement2.png" +dest_files=[ "res://.import/CameraMovement2.png-cb87e24dd0a77d08c3a879a913c23d10.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/cameraFX/CameraMovement3.png b/Menu/Icons/cameraFX/CameraMovement3.png new file mode 100644 index 0000000..bdc6238 Binary files /dev/null and b/Menu/Icons/cameraFX/CameraMovement3.png differ diff --git a/Menu/Icons/cameraFX/CameraMovement3.png.import b/Menu/Icons/cameraFX/CameraMovement3.png.import new file mode 100644 index 0000000..846b4f7 --- /dev/null +++ b/Menu/Icons/cameraFX/CameraMovement3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/cameraFX/CameraMovement3.png" +dest_files=[ "res://.import/CameraMovement3.png-cfcf6662cd3fbcd45235082c1b01db51.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/check/check1.png b/Menu/Icons/check/check1.png new file mode 100644 index 0000000..ae867a4 Binary files /dev/null and b/Menu/Icons/check/check1.png differ diff --git a/Menu/Icons/check/check1.png.import b/Menu/Icons/check/check1.png.import new file mode 100644 index 0000000..2c739a4 --- /dev/null +++ b/Menu/Icons/check/check1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/check/check1.png" +dest_files=[ "res://.import/check1.png-ff22ae034bbb6de21a78eb29c6a929d6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/Icons/check/check2.png b/Menu/Icons/check/check2.png new file mode 100644 index 0000000..745141a Binary files /dev/null and b/Menu/Icons/check/check2.png differ diff --git a/Menu/Icons/check/check2.png.import b/Menu/Icons/check/check2.png.import new file mode 100644 index 0000000..7546973 --- /dev/null +++ b/Menu/Icons/check/check2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/check2.png-f56c07ebe0967cfcf27da62725325f41.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Menu/Icons/check/check2.png" +dest_files=[ "res://.import/check2.png-f56c07ebe0967cfcf27da62725325f41.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Menu/LevelInfo.gd b/Menu/LevelInfo.gd index 36b0a97..3d81b41 100644 --- a/Menu/LevelInfo.gd +++ b/Menu/LevelInfo.gd @@ -2,7 +2,7 @@ extends PanelContainer onready var stage_label = $CenterContainer/HBoxContainer/VBoxContainer/StageName onready var score = $CenterContainer/HBoxContainer/VBoxContainer/ScoreLabel -onready var play = $CenterContainer/HBoxContainer/PlayButton +onready var play = $CenterContainer/HBoxContainer/VBoxContainer/PlayButton func _ready(): var _game_stats = GameStats.connect("current_stage_changed", self, "update_info") diff --git a/Menu/LevelInfo.tscn b/Menu/LevelInfo.tscn index b50cdf7..99ae01a 100644 --- a/Menu/LevelInfo.tscn +++ b/Menu/LevelInfo.tscn @@ -1,12 +1,19 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://Menu/LevelInfo.gd" type="Script" id=1] [ext_resource path="res://Menu/Theme.tres" type="Theme" id=2] +[ext_resource path="res://Menu/XPLabel.gd" type="Script" id=3] [ext_resource path="res://Menu/Buttons/PlayButton.tscn" type="PackedScene" id=6] [sub_resource type="StyleBoxFlat" id=1] bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +[sub_resource type="InputEventAction" id=2] +action = "ui_accept" + +[sub_resource type="ShortCut" id=3] +shortcut = SubResource( 2 ) + [node name="LevelInfo" type="PanelContainer"] anchor_right = 1.0 anchor_bottom = 1.0 @@ -23,26 +30,19 @@ margin_bottom = 216.0 [node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer"] margin_left = 133.0 -margin_top = 88.0 +margin_top = 59.0 margin_right = 250.0 -margin_bottom = 128.0 -alignment = 1 +margin_bottom = 157.0 [node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/HBoxContainer"] margin_right = 117.0 -margin_bottom = 40.0 -alignment = 1 +margin_bottom = 98.0 -[node name="ScoreLabel" type="Label" parent="CenterContainer/HBoxContainer/VBoxContainer"] +[node name="XPLabel" type="Label" parent="CenterContainer/HBoxContainer/VBoxContainer"] margin_right = 117.0 margin_bottom = 18.0 -theme = ExtResource( 2 ) -text = "high score" -align = 2 -valign = 3 -__meta__ = { -"_edit_use_anchors_": false -} +text = "XP: " +script = ExtResource( 3 ) [node name="StageName" type="Label" parent="CenterContainer/HBoxContainer/VBoxContainer"] margin_top = 22.0 @@ -50,16 +50,27 @@ margin_right = 117.0 margin_bottom = 40.0 theme = ExtResource( 2 ) text = "select stage" -align = 2 valign = 3 -[node name="PlayButton" parent="CenterContainer/HBoxContainer" instance=ExtResource( 6 )] -visible = false +[node name="ScoreLabel" type="Label" parent="CenterContainer/HBoxContainer/VBoxContainer"] +margin_top = 44.0 +margin_right = 117.0 +margin_bottom = 62.0 +theme = ExtResource( 2 ) +text = "high score" +valign = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="PlayButton" parent="CenterContainer/HBoxContainer/VBoxContainer" instance=ExtResource( 6 )] anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 -margin_left = 121.0 -margin_top = 0.0 -margin_right = 153.0 -margin_bottom = 32.0 +margin_left = 0.0 +margin_top = 66.0 +margin_right = 32.0 +margin_bottom = 98.0 +shortcut_in_tooltip = false +shortcut = SubResource( 3 ) diff --git a/Menu/LevelList.tscn b/Menu/LevelList.tscn index 5853c64..b299cb9 100644 --- a/Menu/LevelList.tscn +++ b/Menu/LevelList.tscn @@ -37,6 +37,7 @@ margin_right = 168.0 margin_bottom = 84.0 icon = ExtResource( 2 ) scene = "res://Stages/EmptyStage.tscn" +unlock_points_required = 1000 [node name="SceneSelectButton3" parent="LevelListHBox" instance=ExtResource( 5 )] anchor_right = 0.0 diff --git a/Menu/MainMenu.tscn b/Menu/MainMenu.tscn index 5ae88f8..ce7dc11 100644 --- a/Menu/MainMenu.tscn +++ b/Menu/MainMenu.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=12 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://Menu/Theme.tres" type="Theme" id=1] [ext_resource path="res://Menu/LevelList.tscn" type="PackedScene" id=2] [ext_resource path="res://Effects/FadeIn.tscn" type="PackedScene" id=3] [ext_resource path="res://Cannon/Cannon.tscn" type="PackedScene" id=4] [ext_resource path="res://Menu/Buttons/Fullscreen/FullscreenButton.tscn" type="PackedScene" id=5] +[ext_resource path="res://Menu/Buttons/CameraFXButton.tscn" type="PackedScene" id=6] [ext_resource path="res://Menu/LevelInfo.tscn" type="PackedScene" id=7] [ext_resource path="res://Menu/Buttons/AudioSliders/VolumeSlider.tscn" type="PackedScene" id=9] [ext_resource path="res://Menu/Buttons/AudioSliders/MusicVolume1.png" type="Texture" id=10] @@ -55,21 +56,26 @@ __meta__ = { } [node name="HBoxContainer" type="HBoxContainer" parent="Control/TabContainer/Main Menu/VBoxContainer"] -margin_top = 133.0 +margin_top = 125.0 margin_right = 368.0 margin_bottom = 165.0 alignment = 1 [node name="SFX Volume" parent="Control/TabContainer/Main Menu/VBoxContainer/HBoxContainer" instance=ExtResource( 9 )] -margin_left = 64.0 -margin_right = 164.0 +margin_right = 100.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 100, 40 ) custom_icons/grabber_highlight = ExtResource( 13 ) custom_icons/grabber = ExtResource( 12 ) bus_channel = "SFX" [node name="Music Volume" parent="Control/TabContainer/Main Menu/VBoxContainer/HBoxContainer" instance=ExtResource( 9 )] -margin_left = 168.0 -margin_right = 268.0 +margin_left = 104.0 +margin_right = 204.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 100, 40 ) +size_flags_horizontal = 3 +size_flags_vertical = 3 custom_icons/grabber_highlight = ExtResource( 11 ) custom_icons/grabber = ExtResource( 10 ) bus_channel = "Music" @@ -77,9 +83,15 @@ bus_channel = "Music" [node name="FullscreenButton" parent="Control/TabContainer/Main Menu/VBoxContainer/HBoxContainer" instance=ExtResource( 5 )] anchor_right = 0.0 anchor_bottom = 0.0 -margin_left = 272.0 -margin_right = 304.0 -margin_bottom = 32.0 +margin_left = 208.0 +margin_right = 286.0 +margin_bottom = 40.0 +size_flags_horizontal = 3 +size_flags_vertical = 4 +theme = ExtResource( 1 ) +align = 2 + +[node name="CameraFXButton" parent="Control/TabContainer/Main Menu/VBoxContainer/HBoxContainer" instance=ExtResource( 6 )] [node name="Levels" type="Tabs" parent="Control/TabContainer"] visible = false @@ -95,20 +107,21 @@ theme = ExtResource( 1 ) anchor_right = 1.0 anchor_bottom = 1.0 custom_constants/separation = 4 -alignment = 2 __meta__ = { "_edit_use_anchors_": false } +[node name="LevelList" parent="Control/TabContainer/Levels/HBoxContainer" instance=ExtResource( 2 )] +margin_left = 0.0 +margin_right = 192.0 + [node name="LevelInfo" parent="Control/TabContainer/Levels/HBoxContainer" instance=ExtResource( 7 )] anchor_right = 0.0 anchor_bottom = 0.0 -margin_left = 55.0 -margin_right = 172.0 +margin_left = 196.0 +margin_right = 313.0 margin_bottom = 165.0 -[node name="LevelList" parent="Control/TabContainer/Levels/HBoxContainer" instance=ExtResource( 2 )] - [node name="Transition" parent="." instance=ExtResource( 3 )] [node name="Cannon" parent="." instance=ExtResource( 4 )] diff --git a/Menu/Pause.gd b/Menu/Pause.gd index e9a2129..cb295a2 100644 --- a/Menu/Pause.gd +++ b/Menu/Pause.gd @@ -5,6 +5,7 @@ func _process(_delta): _on_pause_button_pressed() func _on_pause_button_pressed(): - if !GameStats.level_won: + if !GameStats.level_won && !GameStats.powerup_screen_active: get_tree().paused = !get_tree().paused visible = !visible + Engine.time_scale = 1 diff --git a/Menu/Pause.tscn b/Menu/Pause.tscn index 4e52d82..71603f4 100644 --- a/Menu/Pause.tscn +++ b/Menu/Pause.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=21 format=2] [ext_resource path="res://Menu/Buttons/RestartButton.tscn" type="PackedScene" id=1] [ext_resource path="res://Menu/Icons/Play/Play2.png" type="Texture" id=2] @@ -17,6 +17,13 @@ [ext_resource path="res://Menu/Theme.tres" type="Theme" id=15] [ext_resource path="res://Menu/Buttons/Fullscreen/FullscreenButton.tscn" type="PackedScene" id=16] [ext_resource path="res://Menu/Buttons/ButtonSFX.tscn" type="PackedScene" id=17] +[ext_resource path="res://Menu/Buttons/CameraFXButton.tscn" type="PackedScene" id=18] + +[sub_resource type="InputEventAction" id=1] +action = "ui_accept" + +[sub_resource type="ShortCut" id=2] +shortcut = SubResource( 1 ) [node name="Pause" type="CanvasLayer"] pause_mode = 2 @@ -41,60 +48,82 @@ theme = ExtResource( 15 ) [node name="HBoxContainer" type="VBoxContainer" parent="Pause/PanelContainer"] margin_left = 2.0 margin_top = 2.0 -margin_right = 142.0 -margin_bottom = 106.0 +margin_right = 155.0 +margin_bottom = 180.0 +alignment = 1 -[node name="VBoxContainer" type="HBoxContainer" parent="Pause/PanelContainer/HBoxContainer"] -margin_right = 140.0 -margin_bottom = 32.0 +[node name="Label" type="Label" parent="Pause/PanelContainer/HBoxContainer"] +margin_right = 153.0 +margin_bottom = 18.0 +text = "paused..." -[node name="FullscreenButton" parent="Pause/PanelContainer/HBoxContainer/VBoxContainer" instance=ExtResource( 16 )] +[node name="HBoxContainer" type="HBoxContainer" parent="Pause/PanelContainer/HBoxContainer"] +margin_top = 22.0 +margin_right = 153.0 +margin_bottom = 62.0 +alignment = 1 + +[node name="CameraFXButton" parent="Pause/PanelContainer/HBoxContainer/HBoxContainer" instance=ExtResource( 18 )] +margin_left = 0.0 +margin_right = 72.0 + +[node name="FullscreenButton" parent="Pause/PanelContainer/HBoxContainer/HBoxContainer" instance=ExtResource( 16 )] anchor_right = 0.0 anchor_bottom = 0.0 -margin_right = 32.0 -margin_bottom = 32.0 +margin_left = 76.0 +margin_right = 153.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 77, 40 ) + +[node name="SFX Volume" parent="Pause/PanelContainer/HBoxContainer" instance=ExtResource( 12 )] +margin_top = 66.0 +margin_right = 153.0 +margin_bottom = 98.0 +custom_icons/grabber_highlight = ExtResource( 10 ) +custom_icons/grabber = ExtResource( 11 ) +bus_channel = "SFX" + +[node name="Music Volume" parent="Pause/PanelContainer/HBoxContainer" instance=ExtResource( 12 )] +margin_top = 102.0 +margin_right = 153.0 +margin_bottom = 134.0 +custom_icons/grabber_highlight = ExtResource( 14 ) +custom_icons/grabber = ExtResource( 13 ) +bus_channel = "Music" + +[node name="VBoxContainer" type="HBoxContainer" parent="Pause/PanelContainer/HBoxContainer"] +margin_top = 138.0 +margin_right = 153.0 +margin_bottom = 178.0 +alignment = 1 [node name="RestartButton" parent="Pause/PanelContainer/HBoxContainer/VBoxContainer" instance=ExtResource( 1 )] -margin_left = 36.0 -margin_right = 68.0 -margin_bottom = 32.0 +margin_right = 56.0 +margin_bottom = 40.0 +size_flags_horizontal = 7 +size_flags_vertical = 3 [node name="LevelSelectIconButton" parent="Pause/PanelContainer/HBoxContainer/VBoxContainer" instance=ExtResource( 6 )] -margin_left = 72.0 -margin_right = 104.0 -margin_bottom = 32.0 +margin_left = 60.0 +margin_right = 117.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 texture_normal = ExtResource( 3 ) texture_pressed = ExtResource( 5 ) texture_hover = ExtResource( 4 ) [node name="Resume" type="TextureButton" parent="Pause/PanelContainer/HBoxContainer/VBoxContainer"] -margin_left = 108.0 -margin_right = 140.0 -margin_bottom = 32.0 +margin_left = 121.0 +margin_right = 153.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 0, 40 ) +shortcut = SubResource( 2 ) texture_normal = ExtResource( 8 ) texture_pressed = ExtResource( 9 ) texture_hover = ExtResource( 2 ) [node name="ButtonSFX" parent="Pause/PanelContainer/HBoxContainer/VBoxContainer/Resume" instance=ExtResource( 17 )] -[node name="SFX Volume" parent="Pause/PanelContainer/HBoxContainer" instance=ExtResource( 12 )] -margin_top = 36.0 -margin_right = 140.0 -margin_bottom = 68.0 -custom_icons/grabber_highlight = ExtResource( 10 ) -custom_icons/grabber = ExtResource( 11 ) -bus_channel = "SFX" - -[node name="Music Volume" parent="Pause/PanelContainer/HBoxContainer" instance=ExtResource( 12 )] -margin_top = 72.0 -margin_right = 140.0 -margin_bottom = 104.0 -custom_icons/grabber_highlight = ExtResource( 14 ) -custom_icons/grabber = ExtResource( 13 ) -bus_channel = "Music" - -[connection signal="pressed" from="Pause/PanelContainer/HBoxContainer/VBoxContainer/RestartButton" to="Pause" method="_on_pause_button_pressed"] -[connection signal="pressed" from="Pause/PanelContainer/HBoxContainer/VBoxContainer/LevelSelectIconButton" to="Pause" method="_on_pause_button_pressed"] [connection signal="focus_entered" from="Pause/PanelContainer/HBoxContainer/VBoxContainer/Resume" to="Pause/PanelContainer/HBoxContainer/VBoxContainer/Resume/ButtonSFX" method="on_hover"] [connection signal="mouse_entered" from="Pause/PanelContainer/HBoxContainer/VBoxContainer/Resume" to="Pause/PanelContainer/HBoxContainer/VBoxContainer/Resume/ButtonSFX" method="on_hover"] [connection signal="pressed" from="Pause/PanelContainer/HBoxContainer/VBoxContainer/Resume" to="Pause" method="_on_pause_button_pressed"] diff --git a/Menu/Theme.sync-conflict-20211005-192154-INKEX2M.tres b/Menu/Theme.sync-conflict-20211005-192154-INKEX2M.tres new file mode 100644 index 0000000..e78c98a --- /dev/null +++ b/Menu/Theme.sync-conflict-20211005-192154-INKEX2M.tres @@ -0,0 +1,642 @@ +[gd_resource type="Theme" load_steps=31 format=2] + +[ext_resource path="res://Font/Yoster-island/Yoster16.tres" type="DynamicFont" id=1] +[ext_resource path="res://Font/Yoster-island/Yoster.ttf" type="DynamicFontData" id=2] +[ext_resource path="res://Menu/Icons/check/check1.png" type="Texture" id=3] +[ext_resource path="res://Menu/Icons/check/check2.png" type="Texture" id=4] + +[sub_resource type="DynamicFont" id=1] +font_data = ExtResource( 2 ) + +[sub_resource type="StyleBoxFlat" id=2] +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) + +[sub_resource type="StyleBoxFlat" id=3] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0, 0, 0, 0 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.968627, 1, 0.682353, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=4] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 1, 0.701961, 0.796078, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=5] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=6] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=7] +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=8] +bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=9] +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +expand_margin_top = 14.0 +expand_margin_bottom = 14.0 + +[sub_resource type="DynamicFont" id=10] +size = 18 +outline_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +font_data = ExtResource( 2 ) + +[sub_resource type="StyleBoxFlat" id=11] +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=12] +content_margin_left = 2.0 +content_margin_right = 2.0 +content_margin_top = 2.0 +content_margin_bottom = 2.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +corner_detail = 1 +expand_margin_left = 2.0 +expand_margin_right = 2.0 +expand_margin_top = 2.0 +expand_margin_bottom = 2.0 + +[sub_resource type="StyleBoxFlat" id=13] + +[sub_resource type="StyleBoxFlat" id=14] + +[sub_resource type="StyleBoxFlat" id=15] +content_margin_left = 2.0 +content_margin_right = 2.0 +content_margin_top = 2.0 +content_margin_bottom = 2.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) + +[sub_resource type="StyleBoxFlat" id=16] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=17] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=18] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=19] +bg_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=20] + +[sub_resource type="StyleBoxFlat" id=21] +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) + +[sub_resource type="StyleBoxFlat" id=22] + +[sub_resource type="StyleBoxFlat" id=23] +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=24] +bg_color = Color( 1, 0.701961, 0.796078, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=25] +bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=26] +content_margin_right = 16.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[resource] +default_font = ExtResource( 1 ) +Button/colors/font_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +Button/colors/font_color_disabled = Color( 0.454902, 0.337255, 0.607843, 1 ) +Button/colors/font_color_hover = Color( 0.454902, 0.337255, 0.607843, 1 ) +Button/colors/font_color_pressed = Color( 0.454902, 0.337255, 0.607843, 1 ) +Button/constants/hseparation = 2 +Button/fonts/font = SubResource( 1 ) +Button/styles/disabled = SubResource( 2 ) +Button/styles/focus = SubResource( 3 ) +Button/styles/hover = SubResource( 4 ) +Button/styles/normal = SubResource( 5 ) +Button/styles/pressed = SubResource( 6 ) +CheckBox/colors/font_color = Color( 0, 0, 0, 1 ) +CheckBox/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +CheckBox/colors/font_color_hover = Color( 0, 0, 0, 1 ) +CheckBox/colors/font_color_hover_pressed = Color( 0, 0, 0, 1 ) +CheckBox/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +CheckBox/constants/check_vadjust = 0 +CheckBox/constants/hseparation = 4 +CheckBox/fonts/font = null +CheckBox/icons/checked = ExtResource( 4 ) +CheckBox/icons/radio_checked = null +CheckBox/icons/radio_unchecked = null +CheckBox/icons/unchecked = ExtResource( 3 ) +CheckBox/styles/disabled = null +CheckBox/styles/focus = null +CheckBox/styles/hover = null +CheckBox/styles/hover_pressed = null +CheckBox/styles/normal = null +CheckBox/styles/pressed = null +CheckButton/colors/font_color = Color( 0, 0, 0, 1 ) +CheckButton/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +CheckButton/colors/font_color_hover = Color( 0, 0, 0, 1 ) +CheckButton/colors/font_color_hover_pressed = Color( 0, 0, 0, 1 ) +CheckButton/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +CheckButton/constants/check_vadjust = 0 +CheckButton/constants/hseparation = 4 +CheckButton/fonts/font = null +CheckButton/icons/off = null +CheckButton/icons/off_disabled = null +CheckButton/icons/on = null +CheckButton/icons/on_disabled = null +CheckButton/styles/disabled = null +CheckButton/styles/focus = null +CheckButton/styles/hover = null +CheckButton/styles/hover_pressed = null +CheckButton/styles/normal = null +CheckButton/styles/pressed = null +ColorPicker/constants/h_width = 30 +ColorPicker/constants/label_width = 10 +ColorPicker/constants/margin = 4 +ColorPicker/constants/sv_height = 256 +ColorPicker/constants/sv_width = 256 +ColorPicker/icons/add_preset = null +ColorPicker/icons/color_hue = null +ColorPicker/icons/color_sample = null +ColorPicker/icons/overbright_indicator = null +ColorPicker/icons/preset_bg = null +ColorPicker/icons/screen_picker = null +ColorPickerButton/colors/font_color = Color( 0, 0, 0, 1 ) +ColorPickerButton/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +ColorPickerButton/colors/font_color_hover = Color( 0, 0, 0, 1 ) +ColorPickerButton/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +ColorPickerButton/constants/hseparation = 2 +ColorPickerButton/fonts/font = null +ColorPickerButton/icons/bg = null +ColorPickerButton/styles/disabled = null +ColorPickerButton/styles/focus = null +ColorPickerButton/styles/hover = null +ColorPickerButton/styles/normal = null +ColorPickerButton/styles/pressed = null +Dialogs/constants/button_margin = 32 +Dialogs/constants/margin = 8 +FileDialog/colors/file_icon_modulate = Color( 0, 0, 0, 1 ) +FileDialog/colors/files_disabled = Color( 0, 0, 0, 1 ) +FileDialog/colors/folder_icon_modulate = Color( 0, 0, 0, 1 ) +FileDialog/icons/file = null +FileDialog/icons/folder = null +FileDialog/icons/parent_folder = null +FileDialog/icons/reload = null +FileDialog/icons/toggle_hidden = null +Fonts/fonts/large = null +Fonts/fonts/normal = ExtResource( 1 ) +GraphEdit/colors/activity = Color( 0, 0, 0, 1 ) +GraphEdit/colors/grid_major = Color( 0, 0, 0, 1 ) +GraphEdit/colors/grid_minor = Color( 0, 0, 0, 1 ) +GraphEdit/colors/selection_fill = Color( 0, 0, 0, 1 ) +GraphEdit/colors/selection_stroke = Color( 0, 0, 0, 1 ) +GraphEdit/constants/bezier_len_neg = 160 +GraphEdit/constants/bezier_len_pos = 80 +GraphEdit/constants/port_grab_distance_horizontal = 48 +GraphEdit/constants/port_grab_distance_vertical = 6 +GraphEdit/icons/minimap = null +GraphEdit/icons/minus = null +GraphEdit/icons/more = null +GraphEdit/icons/reset = null +GraphEdit/icons/snap = null +GraphEdit/styles/bg = null +GraphEditMinimap/colors/resizer_color = Color( 0, 0, 0, 1 ) +GraphEditMinimap/icons/resizer = null +GraphEditMinimap/styles/bg = null +GraphEditMinimap/styles/camera = null +GraphEditMinimap/styles/node = null +GraphNode/colors/close_color = Color( 0, 0, 0, 1 ) +GraphNode/colors/resizer_color = Color( 0, 0, 0, 1 ) +GraphNode/colors/title_color = Color( 0, 0, 0, 1 ) +GraphNode/constants/close_offset = 18 +GraphNode/constants/port_offset = 3 +GraphNode/constants/separation = 1 +GraphNode/constants/title_offset = 20 +GraphNode/fonts/title_font = null +GraphNode/icons/close = null +GraphNode/icons/port = null +GraphNode/icons/resizer = null +GraphNode/styles/breakpoint = null +GraphNode/styles/comment = null +GraphNode/styles/commentfocus = null +GraphNode/styles/defaultfocus = null +GraphNode/styles/defaultframe = null +GraphNode/styles/frame = null +GraphNode/styles/position = null +GraphNode/styles/selectedframe = null +GridContainer/constants/hseparation = 4 +GridContainer/constants/vseparation = 4 +HBoxContainer/constants/separation = 4 +HScrollBar/icons/decrement = null +HScrollBar/icons/decrement_highlight = null +HScrollBar/icons/increment = null +HScrollBar/icons/increment_highlight = null +HScrollBar/styles/grabber = null +HScrollBar/styles/grabber_highlight = null +HScrollBar/styles/grabber_pressed = null +HScrollBar/styles/scroll = null +HScrollBar/styles/scroll_focus = null +HSeparator/constants/separation = 4 +HSeparator/styles/separator = null +HSlider/icons/grabber = null +HSlider/icons/grabber_disabled = null +HSlider/icons/grabber_highlight = null +HSlider/icons/tick = null +HSlider/styles/grabber_area = SubResource( 7 ) +HSlider/styles/grabber_area_highlight = SubResource( 8 ) +HSlider/styles/slider = SubResource( 9 ) +HSplitContainer/constants/autohide = 1 +HSplitContainer/constants/separation = 12 +HSplitContainer/icons/grabber = null +HSplitContainer/styles/bg = null +Icons/icons/close = null +ItemList/colors/font_color = Color( 0, 0, 0, 1 ) +ItemList/colors/font_color_selected = Color( 0, 0, 0, 1 ) +ItemList/colors/guide_color = Color( 0, 0, 0, 1 ) +ItemList/constants/hseparation = 4 +ItemList/constants/icon_margin = 4 +ItemList/constants/line_separation = 2 +ItemList/constants/vseparation = 2 +ItemList/fonts/font = null +ItemList/styles/bg = null +ItemList/styles/bg_focus = null +ItemList/styles/cursor = null +ItemList/styles/cursor_unfocused = null +ItemList/styles/selected = null +ItemList/styles/selected_focus = null +Label/colors/font_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +Label/colors/font_color_shadow = Color( 0, 0, 0, 0 ) +Label/colors/font_outline_modulate = Color( 1, 1, 1, 1 ) +Label/constants/line_spacing = 3 +Label/constants/shadow_as_outline = 0 +Label/constants/shadow_offset_x = 1 +Label/constants/shadow_offset_y = 1 +Label/fonts/font = SubResource( 10 ) +Label/styles/normal = null +LineEdit/colors/clear_button_color = Color( 0, 0, 0, 1 ) +LineEdit/colors/clear_button_color_pressed = Color( 0, 0, 0, 1 ) +LineEdit/colors/cursor_color = Color( 0, 0, 0, 1 ) +LineEdit/colors/font_color = Color( 0, 0, 0, 1 ) +LineEdit/colors/font_color_selected = Color( 0, 0, 0, 1 ) +LineEdit/colors/font_color_uneditable = Color( 0, 0, 0, 1 ) +LineEdit/colors/selection_color = Color( 0, 0, 0, 1 ) +LineEdit/constants/minimum_spaces = 12 +LineEdit/fonts/font = null +LineEdit/icons/clear = null +LineEdit/styles/focus = null +LineEdit/styles/normal = null +LineEdit/styles/read_only = null +LinkButton/colors/font_color = Color( 0, 0, 0, 1 ) +LinkButton/colors/font_color_hover = Color( 0, 0, 0, 1 ) +LinkButton/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +LinkButton/constants/underline_spacing = 2 +LinkButton/fonts/font = null +LinkButton/styles/focus = null +MarginContainer/constants/margin_bottom = 0 +MarginContainer/constants/margin_left = 0 +MarginContainer/constants/margin_right = 0 +MarginContainer/constants/margin_top = 0 +MenuButton/colors/font_color = Color( 0, 0, 0, 1 ) +MenuButton/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +MenuButton/colors/font_color_hover = Color( 0, 0, 0, 1 ) +MenuButton/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +MenuButton/constants/hseparation = 3 +MenuButton/fonts/font = null +MenuButton/styles/disabled = null +MenuButton/styles/focus = null +MenuButton/styles/hover = null +MenuButton/styles/normal = null +MenuButton/styles/pressed = null +OptionButton/colors/font_color = Color( 0, 0, 0, 1 ) +OptionButton/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +OptionButton/colors/font_color_hover = Color( 0, 0, 0, 1 ) +OptionButton/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +OptionButton/constants/arrow_margin = 2 +OptionButton/constants/hseparation = 2 +OptionButton/fonts/font = null +OptionButton/icons/arrow = null +OptionButton/styles/disabled = null +OptionButton/styles/focus = null +OptionButton/styles/hover = null +OptionButton/styles/normal = null +OptionButton/styles/pressed = null +Panel/styles/panel = SubResource( 11 ) +PanelContainer/styles/panel = SubResource( 12 ) +PopupDialog/styles/panel = SubResource( 13 ) +PopupMenu/colors/font_color = Color( 0, 0, 0, 1 ) +PopupMenu/colors/font_color_accel = Color( 0, 0, 0, 1 ) +PopupMenu/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +PopupMenu/colors/font_color_hover = Color( 0, 0, 0, 1 ) +PopupMenu/colors/font_color_separator = Color( 0, 0, 0, 1 ) +PopupMenu/constants/hseparation = 4 +PopupMenu/constants/vseparation = 4 +PopupMenu/fonts/font = null +PopupMenu/icons/checked = null +PopupMenu/icons/radio_checked = null +PopupMenu/icons/radio_unchecked = null +PopupMenu/icons/submenu = null +PopupMenu/icons/unchecked = null +PopupMenu/styles/hover = null +PopupMenu/styles/labeled_separator_left = null +PopupMenu/styles/labeled_separator_right = null +PopupMenu/styles/panel = null +PopupMenu/styles/panel_disabled = null +PopupMenu/styles/separator = null +PopupPanel/styles/panel = SubResource( 14 ) +ProgressBar/colors/font_color = Color( 0, 0, 0, 1 ) +ProgressBar/colors/font_color_shadow = Color( 0, 0, 0, 1 ) +ProgressBar/fonts/font = null +ProgressBar/styles/bg = null +ProgressBar/styles/fg = null +RichTextLabel/colors/default_color = Color( 0, 0, 0, 1 ) +RichTextLabel/colors/font_color_selected = Color( 0, 0, 0, 1 ) +RichTextLabel/colors/font_color_shadow = Color( 0, 0, 0, 1 ) +RichTextLabel/colors/selection_color = Color( 0, 0, 0, 1 ) +RichTextLabel/constants/line_separation = 1 +RichTextLabel/constants/shadow_as_outline = 0 +RichTextLabel/constants/shadow_offset_x = 1 +RichTextLabel/constants/shadow_offset_y = 1 +RichTextLabel/constants/table_hseparation = 3 +RichTextLabel/constants/table_vseparation = 3 +RichTextLabel/fonts/bold_font = null +RichTextLabel/fonts/bold_italics_font = null +RichTextLabel/fonts/italics_font = null +RichTextLabel/fonts/mono_font = null +RichTextLabel/fonts/normal_font = null +RichTextLabel/styles/focus = null +RichTextLabel/styles/normal = null +ScrollContainer/styles/bg = SubResource( 15 ) +SpinBox/icons/updown = null +TabContainer/colors/font_color_bg = Color( 0, 0, 0, 1 ) +TabContainer/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +TabContainer/colors/font_color_fg = Color( 0, 0, 0, 1 ) +TabContainer/constants/hseparation = 4 +TabContainer/constants/label_valign_bg = 2 +TabContainer/constants/label_valign_fg = 0 +TabContainer/constants/side_margin = 8 +TabContainer/constants/top_margin = 24 +TabContainer/fonts/font = null +TabContainer/icons/decrement = null +TabContainer/icons/decrement_highlight = null +TabContainer/icons/increment = null +TabContainer/icons/increment_highlight = null +TabContainer/icons/menu = null +TabContainer/icons/menu_highlight = null +TabContainer/styles/panel = SubResource( 16 ) +TabContainer/styles/tab_bg = SubResource( 17 ) +TabContainer/styles/tab_disabled = null +TabContainer/styles/tab_fg = SubResource( 18 ) +Tabs/colors/font_color_bg = Color( 0.454902, 0.337255, 0.607843, 1 ) +Tabs/colors/font_color_disabled = Color( 0.454902, 0.337255, 0.607843, 1 ) +Tabs/colors/font_color_fg = Color( 0.454902, 0.337255, 0.607843, 1 ) +Tabs/constants/hseparation = 8 +Tabs/constants/label_valign_bg = 2 +Tabs/constants/label_valign_fg = 0 +Tabs/constants/top_margin = 24 +Tabs/fonts/font = null +Tabs/icons/close = null +Tabs/icons/decrement = null +Tabs/icons/decrement_highlight = null +Tabs/icons/increment = null +Tabs/icons/increment_highlight = null +Tabs/styles/button = SubResource( 19 ) +Tabs/styles/button_pressed = null +Tabs/styles/panel = SubResource( 20 ) +Tabs/styles/tab_bg = SubResource( 21 ) +Tabs/styles/tab_disabled = null +Tabs/styles/tab_fg = null +TextEdit/colors/background_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/bookmark_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/brace_mismatch_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/breakpoint_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/caret_background_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/caret_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/code_folding_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/completion_background_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/completion_existing_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/completion_font_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/completion_scroll_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/completion_selected_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/current_line_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/executing_line_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/font_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/font_color_readonly = Color( 0, 0, 0, 1 ) +TextEdit/colors/font_color_selected = Color( 0, 0, 0, 1 ) +TextEdit/colors/function_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/line_number_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/mark_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/member_variable_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/number_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/safe_line_number_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/selection_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/symbol_color = Color( 0, 0, 0, 1 ) +TextEdit/colors/word_highlighted_color = Color( 0, 0, 0, 1 ) +TextEdit/constants/completion_lines = 7 +TextEdit/constants/completion_max_width = 50 +TextEdit/constants/completion_scroll_width = 3 +TextEdit/constants/line_spacing = 4 +TextEdit/fonts/font = null +TextEdit/icons/fold = null +TextEdit/icons/folded = null +TextEdit/icons/space = null +TextEdit/icons/tab = null +TextEdit/styles/completion = null +TextEdit/styles/focus = null +TextEdit/styles/normal = null +TextEdit/styles/read_only = null +ToolButton/colors/font_color = Color( 0, 0, 0, 1 ) +ToolButton/colors/font_color_disabled = Color( 0, 0, 0, 1 ) +ToolButton/colors/font_color_hover = Color( 0, 0, 0, 1 ) +ToolButton/colors/font_color_pressed = Color( 0, 0, 0, 1 ) +ToolButton/constants/hseparation = 3 +ToolButton/fonts/font = null +ToolButton/styles/disabled = null +ToolButton/styles/focus = null +ToolButton/styles/hover = null +ToolButton/styles/normal = null +ToolButton/styles/pressed = null +TooltipLabel/colors/font_color = Color( 0, 0, 0, 1 ) +TooltipLabel/colors/font_color_shadow = Color( 0, 0, 0, 1 ) +TooltipLabel/constants/shadow_offset_x = 1 +TooltipLabel/constants/shadow_offset_y = 1 +TooltipLabel/fonts/font = null +TooltipPanel/styles/panel = SubResource( 22 ) +Tree/colors/custom_button_font_highlight = Color( 0, 0, 0, 1 ) +Tree/colors/drop_position_color = Color( 0, 0, 0, 1 ) +Tree/colors/font_color = Color( 0, 0, 0, 1 ) +Tree/colors/font_color_selected = Color( 0, 0, 0, 1 ) +Tree/colors/guide_color = Color( 0, 0, 0, 1 ) +Tree/colors/relationship_line_color = Color( 0, 0, 0, 1 ) +Tree/colors/title_button_color = Color( 0, 0, 0, 1 ) +Tree/constants/button_margin = 4 +Tree/constants/draw_guides = 1 +Tree/constants/draw_relationship_lines = 0 +Tree/constants/hseparation = 4 +Tree/constants/item_margin = 12 +Tree/constants/scroll_border = 4 +Tree/constants/scroll_speed = 12 +Tree/constants/vseparation = 4 +Tree/fonts/font = null +Tree/fonts/title_button_font = null +Tree/icons/arrow = null +Tree/icons/arrow_collapsed = null +Tree/icons/checked = null +Tree/icons/select_arrow = null +Tree/icons/unchecked = null +Tree/icons/updown = null +Tree/styles/bg = null +Tree/styles/bg_focus = null +Tree/styles/button_pressed = null +Tree/styles/cursor = null +Tree/styles/cursor_unfocused = null +Tree/styles/custom_button = null +Tree/styles/custom_button_hover = null +Tree/styles/custom_button_pressed = null +Tree/styles/selected = null +Tree/styles/selected_focus = null +Tree/styles/title_button_hover = null +Tree/styles/title_button_normal = null +Tree/styles/title_button_pressed = null +VBoxContainer/constants/separation = 4 +VScrollBar/icons/decrement = null +VScrollBar/icons/decrement_highlight = null +VScrollBar/icons/increment = null +VScrollBar/icons/increment_highlight = null +VScrollBar/styles/grabber = SubResource( 23 ) +VScrollBar/styles/grabber_highlight = SubResource( 24 ) +VScrollBar/styles/grabber_pressed = SubResource( 25 ) +VScrollBar/styles/scroll = SubResource( 26 ) +VScrollBar/styles/scroll_focus = null +VSeparator/constants/separation = 4 +VSeparator/styles/separator = null +VSlider/icons/grabber = null +VSlider/icons/grabber_disabled = null +VSlider/icons/grabber_highlight = null +VSlider/icons/tick = null +VSlider/styles/grabber_area = null +VSlider/styles/grabber_area_highlight = null +VSlider/styles/slider = null +VSplitContainer/constants/autohide = 1 +VSplitContainer/constants/separation = 12 +VSplitContainer/icons/grabber = null +VSplitContainer/styles/bg = null +WindowDialog/colors/title_color = Color( 0, 0, 0, 1 ) +WindowDialog/constants/close_h_ofs = 18 +WindowDialog/constants/close_v_ofs = 18 +WindowDialog/constants/scaleborder_size = 4 +WindowDialog/constants/title_height = 20 +WindowDialog/fonts/title_font = null +WindowDialog/icons/close = null +WindowDialog/icons/close_highlight = null +WindowDialog/styles/panel = null diff --git a/Menu/Theme.tres b/Menu/Theme.tres index abdbe1c..2c09d2f 100644 --- a/Menu/Theme.tres +++ b/Menu/Theme.tres @@ -1,7 +1,9 @@ -[gd_resource type="Theme" load_steps=26 format=2] +[gd_resource type="Theme" load_steps=30 format=2] [ext_resource path="res://Font/Yoster-island/Yoster16.tres" type="DynamicFont" id=1] [ext_resource path="res://Font/Yoster-island/Yoster.ttf" type="DynamicFontData" id=2] +[ext_resource path="res://Menu/Icons/check/check1.png" type="Texture" id=3] +[ext_resource path="res://Menu/Icons/check/check2.png" type="Texture" id=4] [sub_resource type="DynamicFont" id=1] font_data = ExtResource( 2 ) @@ -119,42 +121,46 @@ expand_margin_top = 2.0 expand_margin_bottom = 2.0 [sub_resource type="StyleBoxFlat" id=13] + +[sub_resource type="StyleBoxFlat" id=14] + +[sub_resource type="StyleBoxFlat" id=15] content_margin_left = 2.0 content_margin_right = 2.0 content_margin_top = 2.0 content_margin_bottom = 2.0 bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) -[sub_resource type="StyleBoxFlat" id=14] -content_margin_left = 4.0 -content_margin_right = 4.0 -content_margin_top = 4.0 -content_margin_bottom = 4.0 -bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) -border_width_left = 2 -border_width_top = 2 -border_width_right = 2 -border_width_bottom = 2 -border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) -anti_aliasing = false - -[sub_resource type="StyleBoxFlat" id=15] -content_margin_left = 4.0 -content_margin_right = 4.0 -content_margin_top = 4.0 -content_margin_bottom = 4.0 -bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) -border_width_left = 1 -border_width_top = 1 -border_width_right = 1 -border_width_bottom = 1 -border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) - [sub_resource type="StyleBoxFlat" id=16] content_margin_left = 4.0 content_margin_right = 4.0 content_margin_top = 4.0 content_margin_bottom = 4.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id=17] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=18] +content_margin_left = 4.0 +content_margin_right = 4.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) border_width_left = 1 border_width_top = 1 @@ -163,32 +169,16 @@ border_width_bottom = 1 border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) anti_aliasing = false -[sub_resource type="StyleBoxFlat" id=17] +[sub_resource type="StyleBoxFlat" id=19] bg_color = Color( 0.454902, 0.337255, 0.607843, 1 ) -[sub_resource type="StyleBoxFlat" id=18] - -[sub_resource type="StyleBoxFlat" id=19] -bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) - [sub_resource type="StyleBoxFlat" id=20] -bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) -border_width_left = 2 -border_width_top = 2 -border_width_right = 2 -border_width_bottom = 2 -border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) [sub_resource type="StyleBoxFlat" id=21] -bg_color = Color( 1, 0.701961, 0.796078, 1 ) -border_width_left = 2 -border_width_top = 2 -border_width_right = 2 -border_width_bottom = 2 -border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) [sub_resource type="StyleBoxFlat" id=22] -bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) +bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) border_width_left = 2 border_width_top = 2 border_width_right = 2 @@ -196,6 +186,22 @@ border_width_bottom = 2 border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) [sub_resource type="StyleBoxFlat" id=23] +bg_color = Color( 1, 0.701961, 0.796078, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=24] +bg_color = Color( 0.588235, 0.984314, 0.780392, 1 ) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color( 0.454902, 0.337255, 0.607843, 1 ) + +[sub_resource type="StyleBoxFlat" id=25] content_margin_right = 16.0 bg_color = Color( 0.847059, 0.74902, 0.847059, 1 ) border_width_left = 4 @@ -225,10 +231,10 @@ CheckBox/colors/font_color_pressed = Color( 0, 0, 0, 1 ) CheckBox/constants/check_vadjust = 0 CheckBox/constants/hseparation = 4 CheckBox/fonts/font = null -CheckBox/icons/checked = null +CheckBox/icons/checked = ExtResource( 4 ) CheckBox/icons/radio_checked = null CheckBox/icons/radio_unchecked = null -CheckBox/icons/unchecked = null +CheckBox/icons/unchecked = ExtResource( 3 ) CheckBox/styles/disabled = null CheckBox/styles/focus = null CheckBox/styles/hover = null @@ -425,7 +431,7 @@ OptionButton/styles/normal = null OptionButton/styles/pressed = null Panel/styles/panel = SubResource( 11 ) PanelContainer/styles/panel = SubResource( 12 ) -PopupDialog/styles/panel = null +PopupDialog/styles/panel = SubResource( 13 ) PopupMenu/colors/font_color = Color( 0, 0, 0, 1 ) PopupMenu/colors/font_color_accel = Color( 0, 0, 0, 1 ) PopupMenu/colors/font_color_disabled = Color( 0, 0, 0, 1 ) @@ -445,7 +451,7 @@ PopupMenu/styles/labeled_separator_right = null PopupMenu/styles/panel = null PopupMenu/styles/panel_disabled = null PopupMenu/styles/separator = null -PopupPanel/styles/panel = null +PopupPanel/styles/panel = SubResource( 14 ) ProgressBar/colors/font_color = Color( 0, 0, 0, 1 ) ProgressBar/colors/font_color_shadow = Color( 0, 0, 0, 1 ) ProgressBar/fonts/font = null @@ -468,7 +474,7 @@ RichTextLabel/fonts/mono_font = null RichTextLabel/fonts/normal_font = null RichTextLabel/styles/focus = null RichTextLabel/styles/normal = null -ScrollContainer/styles/bg = SubResource( 13 ) +ScrollContainer/styles/bg = SubResource( 15 ) SpinBox/icons/updown = null TabContainer/colors/font_color_bg = Color( 0, 0, 0, 1 ) TabContainer/colors/font_color_disabled = Color( 0, 0, 0, 1 ) @@ -485,10 +491,10 @@ TabContainer/icons/increment = null TabContainer/icons/increment_highlight = null TabContainer/icons/menu = null TabContainer/icons/menu_highlight = null -TabContainer/styles/panel = SubResource( 14 ) -TabContainer/styles/tab_bg = SubResource( 15 ) +TabContainer/styles/panel = SubResource( 16 ) +TabContainer/styles/tab_bg = SubResource( 17 ) TabContainer/styles/tab_disabled = null -TabContainer/styles/tab_fg = SubResource( 16 ) +TabContainer/styles/tab_fg = SubResource( 18 ) Tabs/colors/font_color_bg = Color( 0.454902, 0.337255, 0.607843, 1 ) Tabs/colors/font_color_disabled = Color( 0.454902, 0.337255, 0.607843, 1 ) Tabs/colors/font_color_fg = Color( 0.454902, 0.337255, 0.607843, 1 ) @@ -502,10 +508,10 @@ Tabs/icons/decrement = null Tabs/icons/decrement_highlight = null Tabs/icons/increment = null Tabs/icons/increment_highlight = null -Tabs/styles/button = SubResource( 17 ) +Tabs/styles/button = SubResource( 19 ) Tabs/styles/button_pressed = null -Tabs/styles/panel = SubResource( 18 ) -Tabs/styles/tab_bg = SubResource( 19 ) +Tabs/styles/panel = SubResource( 20 ) +Tabs/styles/tab_bg = SubResource( 21 ) Tabs/styles/tab_disabled = null Tabs/styles/tab_fg = null TextEdit/colors/background_color = Color( 0, 0, 0, 1 ) @@ -605,10 +611,10 @@ VScrollBar/icons/decrement = null VScrollBar/icons/decrement_highlight = null VScrollBar/icons/increment = null VScrollBar/icons/increment_highlight = null -VScrollBar/styles/grabber = SubResource( 20 ) -VScrollBar/styles/grabber_highlight = SubResource( 21 ) -VScrollBar/styles/grabber_pressed = SubResource( 22 ) -VScrollBar/styles/scroll = SubResource( 23 ) +VScrollBar/styles/grabber = SubResource( 22 ) +VScrollBar/styles/grabber_highlight = SubResource( 23 ) +VScrollBar/styles/grabber_pressed = SubResource( 24 ) +VScrollBar/styles/scroll = SubResource( 25 ) VScrollBar/styles/scroll_focus = null VSeparator/constants/separation = 4 VSeparator/styles/separator = null diff --git a/Menu/WinScreen.gd b/Menu/WinScreen.gd index 2d5cb02..6d2c970 100644 --- a/Menu/WinScreen.gd +++ b/Menu/WinScreen.gd @@ -2,6 +2,9 @@ extends CanvasLayer func _ready(): $AnimationPlayer.play("win") + while GameStats.balls_left >= 0: + GameStats.set_score_to(GameStats.score + 15 * GameStats.multiplier) + GameStats.add_balls(-1) func _on_AnimationPlayer_animation_finished(_anim_name): diff --git a/Menu/XPLabel.gd b/Menu/XPLabel.gd new file mode 100644 index 0000000..91af14a --- /dev/null +++ b/Menu/XPLabel.gd @@ -0,0 +1,4 @@ +extends Label + +func _ready(): + text = "xp: " + String(GameStats.unlock_points) diff --git a/Music/Music.tscn b/Music/Music.tscn index 0657efd..4b730ac 100644 --- a/Music/Music.tscn +++ b/Music/Music.tscn @@ -4,6 +4,7 @@ [ext_resource path="res://Music/Music.gd" type="Script" id=2] [node name="Jukebox" type="AudioStreamPlayer"] +pause_mode = 2 stream = ExtResource( 1 ) autoplay = true bus = "Music" diff --git a/Pegs/Pink/PinkPeg.gd b/Pegs/Pink/PinkPeg.gd index ed49af8..b66daa4 100644 --- a/Pegs/Pink/PinkPeg.gd +++ b/Pegs/Pink/PinkPeg.gd @@ -33,14 +33,15 @@ func bouncy(): # below is the slowmo stuff func _on_Area2D_body_entered(_body): - Engine.time_scale = clamp(Engine.time_scale * 0.25, 0.1, 1) - $SlowmoTimer.start() + if GameStats.camera_fx: + Engine.time_scale = clamp(Engine.time_scale * 0.25, 0.1, 1) + $SlowmoTimer.start() func _on_Area2D_body_exited(_body): Engine.time_scale = 1 func _on_LastPegCollision_body_entered(_body): - if GameStats.pinks_left <= 1: + if GameStats.pinks_left <= 1 && GameStats.camera_fx: Engine.time_scale = clamp(Engine.time_scale * 0.15, 0.1, 1) $SlowmoTimer.start() diff --git a/Pegs/Yellow/CardIcons/default.png b/Pegs/Yellow/CardIcons/default.png new file mode 100644 index 0000000..c0708ba Binary files /dev/null and b/Pegs/Yellow/CardIcons/default.png differ diff --git a/Pegs/Yellow/CardIcons/default.png.import b/Pegs/Yellow/CardIcons/default.png.import new file mode 100644 index 0000000..1e211cd --- /dev/null +++ b/Pegs/Yellow/CardIcons/default.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/default.png-ba07210c8175a7083cdce8d9520a5fea.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Pegs/Yellow/CardIcons/default.png" +dest_files=[ "res://.import/default.png-ba07210c8175a7083cdce8d9520a5fea.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Pegs/Yellow/CardIcons/default1.png b/Pegs/Yellow/CardIcons/default1.png new file mode 100644 index 0000000..c0708ba Binary files /dev/null and b/Pegs/Yellow/CardIcons/default1.png differ diff --git a/Pegs/Yellow/CardIcons/default1.png.import b/Pegs/Yellow/CardIcons/default1.png.import new file mode 100644 index 0000000..47f402f --- /dev/null +++ b/Pegs/Yellow/CardIcons/default1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/default1.png-73551975554b9daf91ca5bb238dd192c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Pegs/Yellow/CardIcons/default1.png" +dest_files=[ "res://.import/default1.png-73551975554b9daf91ca5bb238dd192c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Pegs/Yellow/CardIcons/default2.png b/Pegs/Yellow/CardIcons/default2.png new file mode 100644 index 0000000..84e4571 Binary files /dev/null and b/Pegs/Yellow/CardIcons/default2.png differ diff --git a/Pegs/Yellow/CardIcons/default2.png.import b/Pegs/Yellow/CardIcons/default2.png.import new file mode 100644 index 0000000..9fcdf56 --- /dev/null +++ b/Pegs/Yellow/CardIcons/default2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/default2.png-a0ad125785fe4eb452fad490273110f4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Pegs/Yellow/CardIcons/default2.png" +dest_files=[ "res://.import/default2.png-a0ad125785fe4eb452fad490273110f4.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Pegs/Yellow/CardIcons/default3.png b/Pegs/Yellow/CardIcons/default3.png new file mode 100644 index 0000000..09140dc Binary files /dev/null and b/Pegs/Yellow/CardIcons/default3.png differ diff --git a/Pegs/Yellow/CardIcons/default3.png.import b/Pegs/Yellow/CardIcons/default3.png.import new file mode 100644 index 0000000..c2a86c3 --- /dev/null +++ b/Pegs/Yellow/CardIcons/default3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Pegs/Yellow/CardIcons/default3.png" +dest_files=[ "res://.import/default3.png-c353cc3e193c1c563538671b1d4ccdcc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Pegs/Yellow/PowerupCard.gd b/Pegs/Yellow/PowerupCard.gd new file mode 100644 index 0000000..7ad8331 --- /dev/null +++ b/Pegs/Yellow/PowerupCard.gd @@ -0,0 +1,15 @@ +extends TextureButton + +var spawn_position = Vector2() setget set_spawn_position, get_spawn_position + +func set_spawn_position(value): + spawn_position = value + +func get_spawn_position(): + return spawn_position + + +func _on_TextureButton_pressed() -> void: + get_tree().paused = false + GameStats.pick_powerup() + queue_free() diff --git a/Pegs/Yellow/PowerupCard.tscn b/Pegs/Yellow/PowerupCard.tscn new file mode 100644 index 0000000..378a824 --- /dev/null +++ b/Pegs/Yellow/PowerupCard.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://Menu/Theme.tres" type="Theme" id=1] +[ext_resource path="res://icon.png" type="Texture" id=2] +[ext_resource path="res://Pegs/Yellow/CardIcons/default3.png" type="Texture" id=3] +[ext_resource path="res://Pegs/Yellow/CardIcons/default2.png" type="Texture" id=4] +[ext_resource path="res://Pegs/Yellow/CardIcons/default.png" type="Texture" id=5] +[ext_resource path="res://Pegs/Yellow/PowerupCard.gd" type="Script" id=6] + +[node name="TextureButton" type="TextureButton"] +anchor_right = 0.167 +anchor_bottom = 0.296 +margin_right = -0.127998 +margin_bottom = 0.0639992 +hint_tooltip = "a powerup!!!" +theme = ExtResource( 1 ) +shortcut_in_tooltip = false +texture_normal = ExtResource( 5 ) +texture_pressed = ExtResource( 4 ) +texture_hover = ExtResource( 3 ) +script = ExtResource( 6 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 32, 32 ) +texture = ExtResource( 2 ) + +[connection signal="pressed" from="." to="." method="_on_TextureButton_pressed"] diff --git a/Pegs/Yellow/PowerupCards.gd b/Pegs/Yellow/PowerupCards.gd new file mode 100644 index 0000000..1ca6e1e --- /dev/null +++ b/Pegs/Yellow/PowerupCards.gd @@ -0,0 +1,23 @@ +extends Node2D + +var scenes = [] + +func _ready(): + GameStats.connect("powerup_picked", self, "queue_free") + scenes.append("res://Pegs/Yellow/PowerupCards/Scattershot.tscn") + + spawn_powerups(3) + get_tree().paused = true + GameStats.powerup_screen_active = true + + +func spawn_powerups(value): + var i = 0 + while i < value: + var NewPowerup = load(scenes[rand_range(0, scenes.size())]) + var new_powerup = NewPowerup.instance() + new_powerup.set_spawn_position(self.global_position) + var main = get_tree().current_scene + $CanvasLayer/CenterContainer/HBoxContainer.add_child(new_powerup) + i += 1 + diff --git a/Pegs/Yellow/PowerupCards.tscn b/Pegs/Yellow/PowerupCards.tscn new file mode 100644 index 0000000..8f7b92e --- /dev/null +++ b/Pegs/Yellow/PowerupCards.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Pegs/Yellow/PowerupCards.gd" type="Script" id=1] + +[node name="PowerupCards" type="Node2D"] +pause_mode = 2 +script = ExtResource( 1 ) + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="CenterContainer" type="CenterContainer" parent="CanvasLayer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/CenterContainer"] +margin_left = 192.0 +margin_top = 108.0 +margin_right = 192.0 +margin_bottom = 108.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/Pegs/Yellow/PowerupCards/Scattershot.tscn b/Pegs/Yellow/PowerupCards/Scattershot.tscn new file mode 100644 index 0000000..884bdf6 --- /dev/null +++ b/Pegs/Yellow/PowerupCards/Scattershot.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://Pegs/Yellow/PowerupCard.tscn" type="PackedScene" id=1] + +[node name="Scattershot" instance=ExtResource( 1 )] +hint_tooltip = "scattershot!" diff --git a/Pegs/Yellow/YellowPeg.gd b/Pegs/Yellow/YellowPeg.gd new file mode 100644 index 0000000..1a969ac --- /dev/null +++ b/Pegs/Yellow/YellowPeg.gd @@ -0,0 +1,28 @@ +extends StaticBody2D + +# turns the pegs green +func make_green(): + # preload a green peg + var Green_peg = load("res://Pegs/Green/GreenPeg.tscn") + # instance it + var green_peg = Green_peg.instance() + # take care of positioning + # green_peg.rotation = rotation + 5 + green_peg.global_position = global_position + + + # add score + $ScoreCounter.trigger() + + # get the main scene of current peg and add new peg to it + var main = get_tree().current_scene + main.add_child(green_peg) + + var Powerups = preload("res://Pegs/Yellow/PowerupCards.tscn") + var powerups = Powerups.instance() + powerups.position = global_position + + main.add_child(powerups) + + #finally delete the old peg + queue_free() diff --git a/Pegs/Yellow/YellowPeg.tscn b/Pegs/Yellow/YellowPeg.tscn new file mode 100644 index 0000000..05a558c --- /dev/null +++ b/Pegs/Yellow/YellowPeg.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://Pegs/Yellow/yellow.png" type="Texture" id=1] +[ext_resource path="res://Pegs/DefaultPegCollisionShape.tscn" type="PackedScene" id=2] +[ext_resource path="res://Pegs/ScoreCounter.tscn" type="PackedScene" id=3] +[ext_resource path="res://Pegs/Yellow/YellowPeg.gd" type="Script" id=4] + +[node name="YellowPeg" type="StaticBody2D"] +collision_mask = 0 +script = ExtResource( 4 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) + +[node name="DefaultPegCollisionShape" parent="." instance=ExtResource( 2 )] + +[node name="ScoreCounter" parent="." instance=ExtResource( 3 )] diff --git a/Pegs/Yellow/yellow.png b/Pegs/Yellow/yellow.png new file mode 100644 index 0000000..9675735 Binary files /dev/null and b/Pegs/Yellow/yellow.png differ diff --git a/Pegs/Yellow/yellow.png.import b/Pegs/Yellow/yellow.png.import new file mode 100644 index 0000000..f72d5cb --- /dev/null +++ b/Pegs/Yellow/yellow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/yellow.png-50fc212920f49451d8c0e83182479efc.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Pegs/Yellow/yellow.png" +dest_files=[ "res://.import/yellow.png-50fc212920f49451d8c0e83182479efc.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/Stages/Camera.gd b/Stages/Camera.gd index b28dc6d..0654eaf 100644 --- a/Stages/Camera.gd +++ b/Stages/Camera.gd @@ -2,7 +2,7 @@ extends Camera2D func _process(_delta): - var zoomlevel = clamp(Engine.time_scale, 0.5, 0.975) - - - zoom = lerp(zoom, Vector2(zoomlevel, zoomlevel), smoothing_speed / 200) + if GameStats.camera_fx: + var zoomlevel = clamp(Engine.time_scale, 0.5, 0.975) + zoom = lerp(zoom, Vector2(zoomlevel, zoomlevel), smoothing_speed / 200) + else: zoom = Vector2(1, 1) diff --git a/Stages/EmptyStage.tscn b/Stages/EmptyStage.tscn index cf168b2..14bdf7c 100644 --- a/Stages/EmptyStage.tscn +++ b/Stages/EmptyStage.tscn @@ -1,9 +1,9 @@ -[gd_scene load_steps=27 format=2] +[gd_scene load_steps=26 format=2] [ext_resource path="res://Cannon/Cannon.tscn" type="PackedScene" id=1] [ext_resource path="res://Borders/tileset.png" type="Texture" id=2] [ext_resource path="res://Ball/Ball.tscn" type="PackedScene" id=3] -[ext_resource path="res://Pegs/Purple/PurplePeg.tscn" type="PackedScene" id=4] +[ext_resource path="res://Pegs/Yellow/YellowPeg.tscn" type="PackedScene" id=4] [ext_resource path="res://ControlElements/Killzone.tscn" type="PackedScene" id=5] [ext_resource path="res://Bucket/Bucket.tscn" type="PackedScene" id=6] [ext_resource path="res://HUD/HUD.tscn" type="PackedScene" id=7] @@ -12,7 +12,6 @@ [ext_resource path="res://Stages/World.gd" type="Script" id=10] [ext_resource path="res://Effects/FadeIn.tscn" type="PackedScene" id=11] [ext_resource path="res://Stages/Background.png" type="Texture" id=12] -[ext_resource path="res://Pegs/Purple/PurpleBar.tscn" type="PackedScene" id=13] [ext_resource path="res://Menu/Pause.tscn" type="PackedScene" id=14] [sub_resource type="ConvexPolygonShape2D" id=1] @@ -230,89 +229,8 @@ position = Vector2( 0, 248 ) [node name="Pegs" type="Node2D" parent="."] -[node name="PurplePeg" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 48 ) - -[node name="PurplePeg2" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 48 ) - -[node name="PurplePeg3" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 64 ) - -[node name="PurplePeg4" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 64 ) - -[node name="PurplePeg5" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 80 ) - -[node name="PurplePeg6" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 80 ) - -[node name="PurplePeg7" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 96 ) - -[node name="PurplePeg8" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 96 ) - -[node name="PurplePeg9" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 112 ) - -[node name="PurplePeg10" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 112 ) - -[node name="PurplePeg11" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 128 ) - -[node name="PurplePeg12" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 128 ) - -[node name="PurplePeg13" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 168, 144 ) - -[node name="PurplePeg14" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 216, 144 ) - -[node name="PurplePeg18" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 176, 172 ) - -[node name="PinkPeg3" parent="Pegs" instance=ExtResource( 8 )] -position = Vector2( 192, 176 ) - -[node name="PurplePeg19" parent="Pegs" instance=ExtResource( 4 )] -position = Vector2( 208, 172 ) - [node name="PinkPeg" parent="Pegs" instance=ExtResource( 8 )] -position = Vector2( 111, 47 ) - -[node name="PinkPeg2" parent="Pegs" instance=ExtResource( 8 )] -position = Vector2( 168, 160 ) - -[node name="StaticBody2D" parent="Pegs" instance=ExtResource( 13 )] -position = Vector2( 283, 80 ) -rotation = -0.785397 - -[node name="StaticBody2D2" parent="Pegs" instance=ExtResource( 13 )] -position = Vector2( 259, 104 ) -rotation = -0.785397 - -[node name="StaticBody2D3" parent="Pegs" instance=ExtResource( 13 )] -position = Vector2( 235, 128 ) -rotation = -0.785397 - -[node name="StaticBody2D4" parent="Pegs" instance=ExtResource( 13 )] -position = Vector2( 40, 116 ) -rotation = 3.14159 - -[node name="StaticBody2D5" parent="Pegs" instance=ExtResource( 13 )] -position = Vector2( 64, 140 ) -rotation = 3.14159 - -[node name="StaticBody2D6" parent="Pegs" instance=ExtResource( 13 )] -position = Vector2( 88, 164 ) -rotation = 3.14159 - -[node name="PinkPeg4" parent="Pegs" instance=ExtResource( 8 )] -position = Vector2( 216, 160 ) +position = Vector2( 190, 72 ) [node name="Bucket" parent="." instance=ExtResource( 6 )] position = Vector2( 192, 209 ) @@ -321,4 +239,7 @@ position = Vector2( 192, 209 ) [node name="Pause" parent="." instance=ExtResource( 14 )] +[node name="YellowPeg" parent="." instance=ExtResource( 4 )] +position = Vector2( 152, 38 ) + [editable path="Ball"] diff --git a/Stages/World.gd b/Stages/World.gd index d573ec3..e41d92f 100644 --- a/Stages/World.gd +++ b/Stages/World.gd @@ -34,11 +34,10 @@ func load_data(data): func save_level(): - print("saving game") if !already_beaten: GameStats.unlock_points += 10 already_beaten = true - else: GameStats.unlock_points += 1 + else: GameStats.unlock_points += 5 if GameStats.score > high_score: diff --git a/Stats/GameStats.gd b/Stats/GameStats.gd index 2ae0592..7c28e32 100644 --- a/Stats/GameStats.gd +++ b/Stats/GameStats.gd @@ -4,15 +4,20 @@ signal balls_changed() signal current_stage_changed(scene) signal multiplier_changed(value) signal score_changed(value) +signal powerup_picked() var unlock_points = 10 -var max_balls = 8 +var max_balls = 3 var balls_left var pinks_left = 0 var level_won = false var current_stage = "res://Stages/EmptyStage.tscn" var multiplier = 1 var score = 0 +var camera_fx = true +var bonus_points = 0 +var best_combo = 1 +var powerup_screen_active = false func add_balls(balls): balls_left += balls @@ -22,10 +27,24 @@ func add_balls(balls): func decide_game(): # game is won if (pinks_left <= 0): + + while balls_left > 0: + bonus_points += 15 + balls_left -= 1 + score += bonus_points + emit_signal("balls_changed") + emit_signal("score_changed", score) + var main = get_tree().current_scene + var BallsLeftLabel = preload("res://HUD/BallsLeftLabel.tscn") + var balls_left_label = BallsLeftLabel.instance() + main.add_child(balls_left_label) + var Winscreen = preload("res://Menu/WinScreen.tscn") var winscreen = Winscreen.instance() main.add_child(winscreen) + + # game is lost elif (balls_left <= 0): restart_level() @@ -44,6 +63,8 @@ func reset_board(): balls_left = max_balls pinks_left = 0 level_won = false + bonus_points = 0 + emit_signal("balls_changed") func set_current_scene(stage): @@ -69,3 +90,6 @@ func set_score_to(value): score = value emit_signal("score_changed", score) +func pick_powerup(): + powerup_screen_active = false + emit_signal("powerup_picked") diff --git a/Stats/Saves.gd b/Stats/Saves.gd index 98e89f9..8084659 100644 --- a/Stats/Saves.gd +++ b/Stats/Saves.gd @@ -8,6 +8,7 @@ func _ready(): func save_game(): var data = { "unlock_points" : GameStats.unlock_points, + "camera_fx" : GameStats.camera_fx, "music_volume" : AudioServer.get_bus_volume_db(AudioServer.get_bus_index("Music")), "sfx_volume" : AudioServer.get_bus_volume_db(AudioServer.get_bus_index("SFX")) } @@ -17,6 +18,8 @@ func save_game(): if err == OK: file.store_var(data) file.close() + call_deferred("show_icon") + func load_game(): var file = File.new() @@ -27,10 +30,20 @@ func load_game(): file.close() load_unlock_points(data) load_volume(data) + load_camera_fx(data) + +func show_icon(): + var Floppy = preload("res://Effects/Floppy.tscn") + var floppy = Floppy.instance() + var main = get_tree().current_scene + main.add_child(floppy) func load_unlock_points(data): GameStats.unlock_points = data.unlock_points +func load_camera_fx(data): + GameStats.camera_fx = data.camera_fx + func load_volume(data): AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), data.sfx_volume) AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Music"), data.music_volume) diff --git a/default_bus_layout.tres b/default_bus_layout.tres index a23cbab..300a93d 100644 --- a/default_bus_layout.tres +++ b/default_bus_layout.tres @@ -1,4 +1,9 @@ -[gd_resource type="AudioBusLayout" format=2] +[gd_resource type="AudioBusLayout" load_steps=2 format=2] + +[sub_resource type="AudioEffectHighPassFilter" id=1] +resource_name = "HighPassFilter" +cutoff_hz = 1750.0 +resonance = 1.0 [resource] bus/1/name = "SFX" @@ -13,3 +18,5 @@ bus/2/mute = false bus/2/bypass_fx = false bus/2/volume_db = -5.04224 bus/2/send = "Master" +bus/2/effect/0/effect = SubResource( 1 ) +bus/2/effect/0/enabled = false diff --git a/export_presets.cfg b/export_presets.cfg index da245cc..1d1837e 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -105,7 +105,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="html/pegchamp.html" +export_path="../../web/zoebat-website/pegchamp/index.html" script_export_mode=1 script_encryption_key="" @@ -120,3 +120,203 @@ html/custom_html_shell="" html/head_include="" html/canvas_resize_policy=2 html/experimental_virtual_keyboard=false + +[preset.4] + +name="Android" +platform="Android" +runnable=true +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="" +script_export_mode=1 +script_encryption_key="" + +[preset.4.options] + +custom_template/debug="" +custom_template/release="" +custom_template/use_custom_build=false +custom_template/export_format=0 +architectures/armeabi-v7a=true +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +keystore/debug="" +keystore/debug_user="" +keystore/debug_password="" +keystore/release="" +keystore/release_user="" +keystore/release_password="" +one_click_deploy/clear_previous_install=false +version/code=1 +version/name="1.0" +package/unique_name="org.godotengine.$genname" +package/name="" +package/signed=true +launcher_icons/main_192x192="" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +graphics/32_bits_framebuffer=true +graphics/opengl_debug=false +xr_features/xr_mode=0 +xr_features/degrees_of_freedom=0 +xr_features/hand_tracking=0 +xr_features/focus_awareness=false +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PoolStringArray( ) +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false diff --git a/html/favicon.png.import b/html/favicon.png.import new file mode 100644 index 0000000..5fdb53c --- /dev/null +++ b/html/favicon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://html/favicon.png" +dest_files=[ "res://.import/favicon.png-5202e1e1f1b51903bfad5dada354cc00.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/html/pegchamp.png.import b/html/pegchamp.png.import new file mode 100644 index 0000000..3aefb58 --- /dev/null +++ b/html/pegchamp.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://html/pegchamp.png" +dest_files=[ "res://.import/pegchamp.png-0a8ee72fb014a46c0d2c6d002db987cb.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/project.sync-conflict-20211005-192154-INKEX2M.godot b/project.sync-conflict-20211005-192154-INKEX2M.godot new file mode 100644 index 0000000..f3103a3 --- /dev/null +++ b/project.sync-conflict-20211005-192154-INKEX2M.godot @@ -0,0 +1,104 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +[application] + +config/name="pegchamp" +run/main_scene="res://Menu/MainMenu.tscn" +boot_splash/image="res://icon.png" +boot_splash/fullsize=false +boot_splash/use_filter=false +boot_splash/bg_color=Color( 0.847059, 0.74902, 0.847059, 1 ) +config/icon="res://icon.png" + +[autoload] + +GameStats="*res://Stats/GameStats.gd" +Music="*res://Music/Music.tscn" +Saves="*res://Stats/Saves.gd" + +[debug] + +gdscript/completion/autocomplete_setters_and_getters=true + +[display] + +window/size/width=384 +window/size/height=216 +window/size/test_width=1280 +window/size/test_height=720 +mouse_cursor/custom_image="res://icon.png" +window/stretch/mode="2d" +window/stretch/aspect="keep" + +[global] + +touch=false + +[importer_defaults] + +texture={ +"compress/bptc_ldr": 0, +"compress/hdr_mode": 0, +"compress/lossy_quality": 0.7, +"compress/mode": 0, +"compress/normal_map": 0, +"detect_3d": false, +"flags/anisotropic": false, +"flags/filter": false, +"flags/mipmaps": false, +"flags/repeat": 0, +"flags/srgb": 2, +"process/HDR_as_SRGB": false, +"process/fix_alpha_border": true, +"process/invert_color": false, +"process/premult_alpha": false, +"size_limit": 0, +"stream": false, +"svg/scale": 1.0 +} + +[input] + +shoot={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) + ] +} +fast_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) + ] +} +pause={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null) + ] +} + +[input_devices] + +pointing/emulate_touch_from_mouse=true + +[layer_names] + +2d_physics/layer_1="World" +2d_physics/layer_2="Zones" +2d_physics/layer_3="BallDetection" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +environment/default_clear_color=Color( 0.847059, 0.74902, 0.847059, 1 ) +environment/default_environment="res://default_env.tres"