First Prototype
This commit is contained in:
parent
e18beb6c4c
commit
9e3349eec3
40 changed files with 1100 additions and 48 deletions
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 6.3 KiB |
BIN
Assets/Icons/Storm.ase
Normal file
BIN
Assets/Icons/Storm.ase
Normal file
Binary file not shown.
BIN
Assets/Icons/Storm.png
Normal file
BIN
Assets/Icons/Storm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
34
Assets/Icons/Storm.png.import
Normal file
34
Assets/Icons/Storm.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://caumye6m8df7a"
|
||||
path="res://.godot/imported/Storm.png-697b2aa028713016d391106b080c791d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Icons/Storm.png"
|
||||
dest_files=["res://.godot/imported/Storm.png-697b2aa028713016d391106b080c791d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
214
Assets/Icons/Storm.svg
Normal file
214
Assets/Icons/Storm.svg
Normal file
|
|
@ -0,0 +1,214 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="100"
|
||||
height="100"
|
||||
viewBox="0 0 100 100"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||
sodipodi:docname="Storm.svg"
|
||||
inkscape:export-filename="Storm.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#999999"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
showgrid="true"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="24.218407"
|
||||
inkscape:cy="-14.495689"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1008"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1">
|
||||
<inkscape:grid
|
||||
id="grid1"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="1"
|
||||
spacingy="1"
|
||||
empcolor="#0099e5"
|
||||
empopacity="0.30196078"
|
||||
color="#0099e5"
|
||||
opacity="0.14901961"
|
||||
empspacing="5"
|
||||
dotted="false"
|
||||
gridanglex="30"
|
||||
gridanglez="30"
|
||||
visible="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs1">
|
||||
<rect
|
||||
x="29"
|
||||
y="40"
|
||||
width="6"
|
||||
height="20"
|
||||
id="rect22" />
|
||||
<symbol
|
||||
id="exit"
|
||||
viewBox="0 0 476.88324 340.61832">
|
||||
<title
|
||||
id="title7">Exit</title>
|
||||
<path
|
||||
d="M 20.021549,0 A 20.02155,20.02155 0 0 0 0.002018,20.01953 V 320.3125 a 20.02155,20.02155 0 1 0 40.039064,0 V 40.03907 H 204.20123 V 320.3125 a 20.02155,20.02155 0 1 0 40.03907,0 V 20.01953 A 20.02155,20.02155 0 0 0 224.22077,0 H 20.021552 Z M 416.05866,70.71094 a 21.426571,21.426571 0 0 0 -18.98438,31.58008 l 23.10742,44.4375 H 294.88678 a 21.426571,21.426571 0 0 0 -21.49219,24.29687 21.426571,21.426571 0 0 0 21.49219,24.21875 H 420.1817 l -23.10742,44.4375 a 21.426571,21.426571 0 1 0 38.01563,19.76954 l 39.38867,-75.74805 a 21.426571,21.426571 0 0 0 2.20703,-12.76563 21.426571,21.426571 0 0 0 -2.20703,-12.66797 L 435.08991,82.52344 a 21.426571,21.426571 0 0 0 -19.03125,-11.8125 z"
|
||||
id="path8" />
|
||||
<path
|
||||
opacity="0.1"
|
||||
d="M 34.306484,32.66854 H 207.00918 V 316.49791 H 34.306484 Z"
|
||||
id="path9" />
|
||||
</symbol>
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<rect
|
||||
style="fill:#ff0000;fill-opacity:1;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round;stroke:#000000;stroke-opacity:1"
|
||||
id="rect30"
|
||||
width="90"
|
||||
height="90.227028"
|
||||
x="5"
|
||||
y="4.8864861"
|
||||
rx="25"
|
||||
ry="25" />
|
||||
<g
|
||||
id="g25"
|
||||
transform="matrix(2.6,0,0,2.6,-67,-47.5)">
|
||||
<circle
|
||||
style="fill:#808080;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle11"
|
||||
cx="40"
|
||||
cy="35"
|
||||
r="5" />
|
||||
<circle
|
||||
style="fill:#808080;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle12"
|
||||
cx="45"
|
||||
cy="35"
|
||||
r="5" />
|
||||
<circle
|
||||
style="fill:#808080;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle13"
|
||||
cx="45"
|
||||
cy="30"
|
||||
r="5" />
|
||||
<circle
|
||||
style="fill:#808080;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="circle14"
|
||||
cx="50"
|
||||
cy="35"
|
||||
r="5" />
|
||||
<path
|
||||
style="fill:#ffff00;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 40.450147,41.051316 -1.874634,3.672295 1.72361,1.424488 -2.848976,3.447221 3.823318,-3.222148 -1.723611,-1.424488 z"
|
||||
id="path14"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#ffff00;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 53.869794,48.053227 -1.795742,-3.71151 -2.176181,0.514038 -1.028077,-4.352362 0.260412,4.993214 2.176181,-0.514038 z"
|
||||
id="path15"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#ffff00;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 45,41 -1,4 2,1 -2,4 3,-4 -2,-1 z"
|
||||
id="path16"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<g
|
||||
id="g18"
|
||||
transform="matrix(0.66381583,0,0,0.66381583,15.773518,13.792103)">
|
||||
<path
|
||||
id="path17"
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 a 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 z" />
|
||||
<path
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 1,-2 1,2 z"
|
||||
id="path18" />
|
||||
</g>
|
||||
<g
|
||||
id="g20"
|
||||
transform="matrix(0.66381583,0,0,0.66381583,20.17731,14.787827)">
|
||||
<path
|
||||
id="path19"
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 a 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 z" />
|
||||
<path
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 1,-2 1,2 z"
|
||||
id="path20" />
|
||||
</g>
|
||||
<g
|
||||
id="g22"
|
||||
transform="matrix(0.66381583,0,0,0.66381583,24.76217,14.124011)">
|
||||
<path
|
||||
id="path21"
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 a 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 z" />
|
||||
<path
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 1,-2 1,2 z"
|
||||
id="path22" />
|
||||
</g>
|
||||
<g
|
||||
id="g24"
|
||||
transform="matrix(0.66381583,0,0,0.66381583,29.726643,14.124011)">
|
||||
<path
|
||||
id="path23"
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 a 1,1 0 0 0 1,1 1,1 0 0 0 1,-1 z" />
|
||||
<path
|
||||
style="fill:#00ffff;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round"
|
||||
d="m 32,43 1,-2 1,2 z"
|
||||
id="path24" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g27"
|
||||
transform="translate(2.5,5.3750001)">
|
||||
<circle
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path25"
|
||||
cx="47.460999"
|
||||
cy="42.460999"
|
||||
r="2.4609971" />
|
||||
<circle
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path26"
|
||||
cx="47.5"
|
||||
cy="35"
|
||||
r="2.5" />
|
||||
<circle
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="path26-9"
|
||||
cx="47.5"
|
||||
cy="25"
|
||||
r="2.5" />
|
||||
<rect
|
||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77953;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect27"
|
||||
width="5"
|
||||
height="10"
|
||||
x="45"
|
||||
y="25"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.5 KiB |
37
Assets/Icons/Storm.svg.import
Normal file
37
Assets/Icons/Storm.svg.import
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://4rqws3rjo853"
|
||||
path="res://.godot/imported/Storm.svg-56174ed4b2847c4ef71970e8e0f684b0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Icons/Storm.svg"
|
||||
dest_files=["res://.godot/imported/Storm.svg-56174ed4b2847c4ef71970e8e0f684b0.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
BIN
Assets/Portal.ase
Normal file
BIN
Assets/Portal.ase
Normal file
Binary file not shown.
BIN
Assets/Portal.png
Normal file
BIN
Assets/Portal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
34
Assets/Portal.png.import
Normal file
34
Assets/Portal.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c3o6hrpc0fim2"
|
||||
path="res://.godot/imported/Portal.png-deddfbed2087a716f98f047f199c96ba.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Portal.png"
|
||||
dest_files=["res://.godot/imported/Portal.png-deddfbed2087a716f98f047f199c96ba.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
Assets/Shadow.aseprite
Normal file
BIN
Assets/Shadow.aseprite
Normal file
Binary file not shown.
BIN
Assets/Shadow.png
Normal file
BIN
Assets/Shadow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 505 B |
34
Assets/Shadow.png.import
Normal file
34
Assets/Shadow.png.import
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://83mf84k2pi3m"
|
||||
path="res://.godot/imported/Shadow.png-983b6206ecdb81e9243583ecccaae850.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Assets/Shadow.png"
|
||||
dest_files=["res://.godot/imported/Shadow.png-983b6206ecdb81e9243583ecccaae850.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
|
@ -3,4 +3,4 @@
|
|||
[ext_resource type="PackedScene" uid="uid://1jyq2seprmvg" path="res://Spawner/spawner.tscn" id="1_ayequ"]
|
||||
|
||||
[node name="ObjectSpawner" instance=ExtResource("1_ayequ")]
|
||||
spawnObjectsPaths = Array[String](["res://scenes/game/objects/objects/computer.tscn", "res://scenes/game/objects/objects/controller.tscn", "res://scenes/game/objects/objects/food_tin_can.tscn", "res://scenes/game/objects/objects/game_console.tscn", "res://scenes/game/objects/objects/gold_bar.tscn", "res://scenes/game/objects/objects/hammer.tscn", "res://scenes/game/objects/objects/helmet.tscn", "res://scenes/game/objects/objects/monitor.tscn", "res://scenes/game/objects/objects/mystery_box.tscn", "res://scenes/game/objects/objects/mystery_briefcase.tscn", "res://scenes/game/objects/objects/mystery_liquid.tscn", "res://scenes/game/objects/objects/mystery_remote.tscn", "res://scenes/game/objects/objects/screwdriver.tscn", "res://scenes/game/objects/objects/soda_can.tscn", "res://scenes/game/objects/objects/speaker.tscn", "res://scenes/game/objects/objects/teddy_bear.tscn", "res://scenes/game/objects/objects/telephone.tscn", "res://scenes/game/objects/objects/toolbox.tscn", "res://scenes/game/objects/objects/vase.tscn"])
|
||||
spawnObjectsPaths = Array[String](["res://scenes/game/objects/objects/computer.tscn", "res://scenes/game/objects/objects/controller.tscn", "res://scenes/game/objects/objects/food_tin_can.tscn", "res://scenes/game/objects/objects/game_console.tscn", "res://scenes/game/objects/objects/gold_bar.tscn", "res://scenes/game/objects/objects/hammer.tscn", "res://scenes/game/objects/objects/helmet.tscn", "res://scenes/game/objects/objects/monitor.tscn", "res://scenes/game/objects/objects/mystery_briefcase.tscn", "res://scenes/game/objects/objects/mystery_liquid.tscn", "res://scenes/game/objects/objects/screwdriver.tscn", "res://scenes/game/objects/objects/soda_can.tscn", "res://scenes/game/objects/objects/speaker.tscn", "res://scenes/game/objects/objects/teddy_bear.tscn", "res://scenes/game/objects/objects/telephone.tscn", "res://scenes/game/objects/objects/toolbox.tscn", "res://scenes/game/objects/objects/vase.tscn"])
|
||||
|
|
|
|||
5
Theme/MainTheme.tres
Normal file
5
Theme/MainTheme.tres
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[gd_resource type="Theme" format=3 uid="uid://cotw1alu4b2ad"]
|
||||
|
||||
[resource]
|
||||
Button/font_sizes/font_size = 32
|
||||
Label/font_sizes/font_size = 48
|
||||
|
|
@ -94,6 +94,7 @@ ROLL={
|
|||
"deadzone": 0.5,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":true,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
DOOR={
|
||||
|
|
|
|||
|
|
@ -1,14 +1,37 @@
|
|||
extends Node
|
||||
|
||||
enum GAMETIME {
|
||||
MIN = 240,
|
||||
MAX = 360
|
||||
MIN = 60*5,
|
||||
MAX = 60*6
|
||||
}
|
||||
|
||||
var lastHealth = 10
|
||||
|
||||
var money = 0
|
||||
|
||||
var StormTimeLeft = 100
|
||||
|
||||
var StormThreshold = 30
|
||||
|
||||
var extracted = false
|
||||
|
||||
func resetValues():
|
||||
extracted = false
|
||||
money = 0
|
||||
lastHealth = 10
|
||||
StormTimeLeft = 100
|
||||
|
||||
func addMoney(n):
|
||||
money += n
|
||||
|
||||
func setLastHealth(n):
|
||||
lastHealth = n
|
||||
|
||||
func isStormThreshold():
|
||||
return StormThreshold >= StormTimeLeft
|
||||
|
||||
func getStormThreshold():
|
||||
return StormThreshold
|
||||
|
||||
func extractPlayer():
|
||||
extracted = true
|
||||
|
|
|
|||
|
|
@ -1,25 +1,75 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://sgnp11xty7i1"]
|
||||
[gd_scene load_steps=10 format=3 uid="uid://sgnp11xty7i1"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/game/collectionArea/collection_area.gd" id="1_c4amf"]
|
||||
[ext_resource type="Texture2D" uid="uid://caaj6cyrfglu5" path="res://Assets/CollectionZone.png" id="2_4nokb"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3o6hrpc0fim2" path="res://Assets/Portal.png" id="2_s7bky"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_e58ei"]
|
||||
size = Vector2(136, 136)
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_7mwpw"]
|
||||
radius = 72.0
|
||||
|
||||
[node name="CollectionArea" type="Area2D"]
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_f6w8f"]
|
||||
radius = 12.0
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7rm1e"]
|
||||
atlas = ExtResource("2_s7bky")
|
||||
region = Rect2(0, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ubxxq"]
|
||||
atlas = ExtResource("2_s7bky")
|
||||
region = Rect2(128, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_dv0w3"]
|
||||
atlas = ExtResource("2_s7bky")
|
||||
region = Rect2(256, 0, 128, 128)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vxmh6"]
|
||||
atlas = ExtResource("2_s7bky")
|
||||
region = Rect2(384, 0, 128, 128)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_g6wmf"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7rm1e")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ubxxq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_dv0w3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vxmh6")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[node name="Portal" type="Area2D"]
|
||||
light_mask = 32
|
||||
visibility_layer = 32
|
||||
collision_layer = 32
|
||||
collision_mask = 16
|
||||
collision_mask = 1040
|
||||
script = ExtResource("1_c4amf")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_e58ei")
|
||||
shape = SubResource("CircleShape2D_7mwpw")
|
||||
|
||||
[node name="NavigationObstacle2D" type="NavigationObstacle2D" parent="."]
|
||||
scale = Vector2(0.997855, 1)
|
||||
vertices = PackedVector2Array(-32.0688, -32, 32.0688, -32, 32.0688, 32, -32.0688, 32)
|
||||
avoidance_layers = 32
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture = ExtResource("2_4nokb")
|
||||
[node name="CollectArea" type="Area2D" parent="."]
|
||||
collision_layer = 32
|
||||
collision_mask = 1040
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="CollectArea"]
|
||||
shape = SubResource("CircleShape2D_f6w8f")
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
sprite_frames = SubResource("SpriteFrames_g6wmf")
|
||||
frame_progress = 0.634411
|
||||
|
||||
[connection signal="area_entered" from="CollectArea" to="." method="_on_collect_area_area_entered"]
|
||||
[connection signal="body_entered" from="CollectArea" to="." method="_on_collect_area_body_entered"]
|
||||
|
|
|
|||
|
|
@ -1,10 +1,50 @@
|
|||
extends Area2D
|
||||
|
||||
@onready var collectArea = $CollectArea
|
||||
@onready var animatedSprite = $AnimatedSprite2D
|
||||
|
||||
func _ready() -> void:
|
||||
animatedSprite.play("default")
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
cashInObject()
|
||||
for i in get_overlapping_bodies():
|
||||
if i.is_in_group("Player"):
|
||||
if G.isStormThreshold():
|
||||
moveTowardsCenter(i)
|
||||
for i in get_overlapping_areas():
|
||||
if i.is_in_group("Object"):
|
||||
if not i.isCarryied():
|
||||
moveTowardsCenter(i)
|
||||
else:
|
||||
scale = Vector2(1,1)
|
||||
#cashInObject()
|
||||
|
||||
func cashInObject():
|
||||
for i in get_overlapping_areas():
|
||||
for i in collectArea.get_overlapping_areas():
|
||||
if not i.isCarryied():
|
||||
G.addMoney(i.getValue())
|
||||
i.queue_free()
|
||||
|
||||
|
||||
func moveTowardsCenter(object : Node2D):
|
||||
object.global_position.y = move_toward(object.global_position.y, global_position.y, 2)
|
||||
|
||||
object.global_position.x = move_toward(object.global_position.x, global_position.x, 2)
|
||||
|
||||
object.scale.y -= 0.01
|
||||
object.scale.x -= 0.01
|
||||
|
||||
func extractPlayer():
|
||||
G.extractPlayer()
|
||||
|
||||
|
||||
func _on_collect_area_area_entered(area: Area2D) -> void:
|
||||
if area.is_in_group("Object"):
|
||||
cashInObject()
|
||||
|
||||
|
||||
func _on_collect_area_body_entered(body: Node2D) -> void:
|
||||
|
||||
if G.isStormThreshold():
|
||||
if body.is_in_group("Player"):
|
||||
extractPlayer()
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ collision_layer = 2560
|
|||
script = ExtResource("2_4vapd")
|
||||
damage = 1
|
||||
attackCooldown = 1
|
||||
normalSpeed = 80
|
||||
normalSpeed = 70
|
||||
|
||||
[node name="CollisionShape2D" parent="." index="0"]
|
||||
shape = SubResource("CircleShape2D_xq7op")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b18cf4i8v6a1"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://b18cf4i8v6a1"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/game/entities/entity.gd" id="1_s7hj7"]
|
||||
[ext_resource type="Texture2D" uid="uid://83mf84k2pi3m" path="res://Assets/Shadow.png" id="2_nhikt"]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_4jtw1"]
|
||||
light_mode = 2
|
||||
|
||||
[node name="Entity" type="CharacterBody2D" groups=["Entity"]]
|
||||
light_mask = 512
|
||||
|
|
@ -18,3 +22,7 @@ light_mask = 4
|
|||
visibility_layer = 5
|
||||
z_index = 1
|
||||
y_sort_enabled = true
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
material = SubResource("CanvasItemMaterial_4jtw1")
|
||||
texture = ExtResource("2_nhikt")
|
||||
|
|
|
|||
|
|
@ -11,9 +11,16 @@ extends "res://scenes/game/entities/entity.gd"
|
|||
@onready var moneyValueLabel = $Camera2D/CanvasLayer/Control/HBoxContainer/MoneyValue
|
||||
@onready var objectValue = $Camera2D/CanvasLayer/Control/ObjectValues/ObjectMoneyValue
|
||||
@onready var objectValues = $Camera2D/CanvasLayer/Control/ObjectValues
|
||||
@onready var stormProgress = $Camera2D/CanvasLayer/Control/Storm/ProgressBar
|
||||
@onready var stormUi = $Camera2D/CanvasLayer/Control/Storm
|
||||
@onready var stormTimerDamage = $StormTimerDamage
|
||||
@onready var sormwarningLabel = $Camera2D/CanvasLayer/Control/STORMWARNINGLabel
|
||||
|
||||
|
||||
@onready var camera = $Camera2D
|
||||
|
||||
@onready var animation = $Camera2D/CanvasLayer/Control/AnimationPlayer
|
||||
|
||||
var rollSpeed = maxSpeed * 5
|
||||
|
||||
const rollCooldown = 5.0
|
||||
|
|
@ -29,7 +36,10 @@ var object = null
|
|||
var lastDirection : Vector2
|
||||
var lastdirectionVector : Vector2
|
||||
|
||||
var shownStormProgress = false
|
||||
|
||||
func _ready():
|
||||
animation.play("Introduction")
|
||||
rollCooldownBar.min_value = 0
|
||||
rollCooldownBar.max_value = rollCooldown
|
||||
healthBar.min_value = 0
|
||||
|
|
@ -44,8 +54,18 @@ func setHudValues():
|
|||
objectValue.text = str(object.getValue())
|
||||
else:
|
||||
objectValues.hide()
|
||||
G.setLastHealth(health)
|
||||
stormProgress.value = G.StormTimeLeft
|
||||
if G.isStormThreshold():
|
||||
if not shownStormProgress:
|
||||
sormwarningLabel.show()
|
||||
shownStormProgress = true
|
||||
animation.play("StormTimerAppear")
|
||||
stormProgress.max_value = G.getStormThreshold()
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
Storm()
|
||||
setHudValues()
|
||||
var direction : Vector2 = Input.get_vector("MOVE_LEFT", "MOVE_RIGHT", "MOVE_UP", "MOVE_DOWN").normalized()
|
||||
#var direction : Vector2 = Vector2(
|
||||
|
|
@ -59,10 +79,8 @@ func _physics_process(delta: float) -> void:
|
|||
lastdirectionVector = directionVector
|
||||
if Input.is_action_just_pressed("ROLL") and lastDirection != Vector2.ZERO:
|
||||
roll()
|
||||
if Input.is_action_just_pressed("ROLL") and lastDirection != Vector2.ZERO:
|
||||
roll()
|
||||
if Input.is_action_just_pressed("DOOR"):
|
||||
openDoor()
|
||||
#if Input.is_action_just_pressed("DOOR"):
|
||||
#openDoor()
|
||||
if Input.is_action_just_pressed("Pickup"):
|
||||
match carrying:
|
||||
false:
|
||||
|
|
@ -168,5 +186,22 @@ func _on_hit_box_signal_hit(damage: Variant) -> void:
|
|||
camera.shake(2,0.5)
|
||||
|
||||
|
||||
func _on_death() -> void:
|
||||
print("HOHO")
|
||||
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
|
||||
if anim_name == "StormTimerAppear":
|
||||
animation.play("StormTimer")
|
||||
|
||||
func Storm():
|
||||
if G.StormTimeLeft <= 0 and stormTimerDamage.is_stopped():
|
||||
stormTimerDamage.start(1)
|
||||
|
||||
func _on_storm_timer_damage_timeout() -> void:
|
||||
if stormTimerDamage.is_stopped():
|
||||
stormTimerDamage.start(1)
|
||||
hit(1)
|
||||
|
||||
func pause():
|
||||
get_parent().pause()
|
||||
|
||||
|
||||
func resume():
|
||||
get_parent().resume()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=17 format=3 uid="uid://0duodsosmfpq"]
|
||||
[gd_scene load_steps=24 format=3 uid="uid://0duodsosmfpq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://b18cf4i8v6a1" path="res://scenes/game/entities/entity.tscn" id="1_kmfws"]
|
||||
[ext_resource type="Script" path="res://scenes/game/entities/player/player.gd" id="2_s0pfn"]
|
||||
|
|
@ -13,10 +13,186 @@
|
|||
[ext_resource type="StyleBox" uid="uid://31r7sc1edews" path="res://Theme/Empty.tres" id="7_luccy"]
|
||||
[ext_resource type="StyleBox" uid="uid://6x7dblrcglcl" path="res://Theme/HealthBar.tres" id="8_kgbvc"]
|
||||
[ext_resource type="Texture2D" uid="uid://c2o4115sewunm" path="res://Assets/Icons/Roll.png" id="10_1rhoe"]
|
||||
[ext_resource type="Texture2D" uid="uid://caumye6m8df7a" path="res://Assets/Icons/Storm.png" id="12_7rs7u"]
|
||||
[ext_resource type="StyleBox" uid="uid://db7h680qdfcrv" path="res://scenes/menu/startMenu/Storm.tres" id="12_wohun"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_7ukjs"]
|
||||
radius = 8.94427
|
||||
|
||||
[sub_resource type="Animation" id="Animation_4p2qj"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Camera2D/CanvasLayer/Control/Storm:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Camera2D/CanvasLayer/Control/Storm:scale")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Camera2D/CanvasLayer/Control/IntroductionLabel:visible_ratio")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Camera2D/CanvasLayer/Control/WARNING:visible_ratio")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Camera2D/CanvasLayer/Control/ColorRect:modulate")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7uqa8"]
|
||||
resource_name = "StormTimerAppear"
|
||||
length = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Camera2D/CanvasLayer/Control/Storm:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Camera2D/CanvasLayer/Control/Storm:scale")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, 0), Vector2(1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_8ahng"]
|
||||
resource_name = "StormTimer"
|
||||
length = 0.8
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Camera2D/CanvasLayer/Control/Storm:scale")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4, 0.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1), Vector2(1.1, 1.1), Vector2(1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_1uxm1"]
|
||||
resource_name = "Introduction"
|
||||
length = 21.0
|
||||
step = 0.5
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Camera2D/CanvasLayer/Control/IntroductionLabel:visible_ratio")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1.5, 4.5, 6),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0, 1.0, 0.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Camera2D/CanvasLayer/Control/WARNING:visible_ratio")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(7, 9, 12, 14),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0, 1.0, 0.0]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Camera2D/CanvasLayer/Control/ColorRect:modulate")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(15, 16.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 16.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"pause"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"resume"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1cg8p"]
|
||||
_data = {
|
||||
"Introduction": SubResource("Animation_1uxm1"),
|
||||
"RESET": SubResource("Animation_4p2qj"),
|
||||
"StormTimer": SubResource("Animation_8ahng"),
|
||||
"StormTimerAppear": SubResource("Animation_7uqa8")
|
||||
}
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_8u3aq"]
|
||||
radius = 8.94427
|
||||
|
||||
|
|
@ -27,6 +203,7 @@ radius = 8.94427
|
|||
light_mask = 1536
|
||||
visibility_layer = 1536
|
||||
collision_layer = 1536
|
||||
collision_mask = 46
|
||||
script = ExtResource("2_s0pfn")
|
||||
|
||||
[node name="CollisionShape2D" parent="." index="0"]
|
||||
|
|
@ -167,6 +344,101 @@ layout_mode = 2
|
|||
layout_mode = 2
|
||||
texture = ExtResource("4_6t857")
|
||||
|
||||
[node name="STORMWARNINGLabel" type="Label" parent="Camera2D/CanvasLayer/Control" index="3"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -0.5
|
||||
offset_right = 0.5
|
||||
offset_bottom = 67.0
|
||||
grow_horizontal = 2
|
||||
text = "STORMWARNING"
|
||||
|
||||
[node name="Storm" type="HBoxContainer" parent="Camera2D/CanvasLayer/Control" index="4"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -320.0
|
||||
offset_top = 67.0
|
||||
offset_right = 320.0
|
||||
offset_bottom = 152.0
|
||||
grow_horizontal = 2
|
||||
pivot_offset = Vector2(320, 42)
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Camera2D/CanvasLayer/Control/Storm" index="0"]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("12_7rs7u")
|
||||
expand_mode = 2
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="Camera2D/CanvasLayer/Control/Storm" index="1"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
theme_override_styles/background = ExtResource("7_luccy")
|
||||
theme_override_styles/fill = ExtResource("12_wohun")
|
||||
show_percentage = false
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="Camera2D/CanvasLayer/Control" index="5"]
|
||||
process_mode = 3
|
||||
root_node = NodePath("../../../..")
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_1cg8p")
|
||||
}
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="Camera2D/CanvasLayer/Control" index="6"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="WARNING" type="Label" parent="Camera2D/CanvasLayer/Control" index="7"]
|
||||
process_mode = 3
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -500.0
|
||||
offset_top = -500.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 500.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
text = "WARNING"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
visible_characters = 0
|
||||
visible_ratio = 0.0
|
||||
|
||||
[node name="IntroductionLabel" type="Label" parent="Camera2D/CanvasLayer/Control" index="8"]
|
||||
process_mode = 3
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -500.0
|
||||
offset_top = -500.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 500.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
text = "INTRODUCTION"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
visible_characters = 0
|
||||
visible_ratio = 0.0
|
||||
|
||||
[node name="RollTimer" type="Timer" parent="." index="3"]
|
||||
one_shot = true
|
||||
|
||||
|
|
@ -197,9 +469,13 @@ texture_scale = 2.0
|
|||
position = Vector2(0, 4)
|
||||
shape = SubResource("CircleShape2D_bjveg")
|
||||
|
||||
[connection signal="death" from="." to="." method="_on_death"]
|
||||
[node name="StormTimerDamage" type="Timer" parent="." index="9"]
|
||||
one_shot = true
|
||||
|
||||
[connection signal="animation_finished" from="Camera2D/CanvasLayer/Control/AnimationPlayer" to="." method="_on_animation_player_animation_finished"]
|
||||
[connection signal="timeout" from="RollTimer" to="." method="_on_roll_timeout"]
|
||||
[connection signal="timeout" from="RollCooldownTimer" to="." method="_on_roll_cooldown_timer_timeout"]
|
||||
[connection signal="signalHit" from="HitBox" to="." method="_on_hit_box_signal_hit"]
|
||||
[connection signal="timeout" from="StormTimerDamage" to="." method="_on_storm_timer_damage_timeout"]
|
||||
|
||||
[editable path="HitBox"]
|
||||
|
|
|
|||
|
|
@ -4,14 +4,26 @@ extends Node2D
|
|||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
randomize()
|
||||
$Map.spawnObjects()
|
||||
$Map.spawnEnemies()
|
||||
stormTimer.start(randi_range(G.GAMETIME.MIN, G.GAMETIME.MAX))
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
G.StormTimeLeft = stormTimer.time_left
|
||||
|
||||
|
||||
func _on_storm_timer_timeout() -> void:
|
||||
print("Storm")
|
||||
|
||||
|
||||
func _on_player_death() -> void:
|
||||
get_parent().loadEndScren()
|
||||
|
||||
|
||||
func pause():
|
||||
get_tree().paused = true
|
||||
|
||||
func resume():
|
||||
get_tree().paused = false
|
||||
|
|
|
|||
|
|
@ -8,11 +8,12 @@
|
|||
script = ExtResource("1_napbe")
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("3_sjgkj")]
|
||||
position = Vector2(-24, 0)
|
||||
position = Vector2(-16, -88)
|
||||
|
||||
[node name="Map" parent="." instance=ExtResource("3_vpriv")]
|
||||
|
||||
[node name="StormTimer" type="Timer" parent="."]
|
||||
one_shot = true
|
||||
|
||||
[connection signal="death" from="Player" to="." method="_on_player_death"]
|
||||
[connection signal="timeout" from="StormTimer" to="." method="_on_storm_timer_timeout"]
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ func _ready() -> void:
|
|||
|
||||
enemySpawnersArray[0].enabled = true
|
||||
enemySpawnersArray[1].enabled = true
|
||||
enemySpawnersArray[2].enabled = true
|
||||
enemySpawnersArray[3].enabled = true
|
||||
enemySpawnersArray[4].enabled = true
|
||||
#for i in enemySpawnersArray:
|
||||
#i.enabled = true
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -35,7 +35,7 @@ func pickup(newPlayer):
|
|||
func drop():
|
||||
global_position.y += 10
|
||||
player = null
|
||||
z_index = 0
|
||||
z_index = 1
|
||||
|
||||
func getWeight():
|
||||
return weight
|
||||
|
|
|
|||
|
|
@ -1,22 +1,33 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://dxpd1pq7v6ing"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://dxpd1pq7v6ing"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/game/objects/object.gd" id="1_3y27f"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4h5dodgulduy" path="res://Assets/Icons/Pickup.png" id="2_pqvu2"]
|
||||
[ext_resource type="Texture2D" uid="uid://83mf84k2pi3m" path="res://Assets/Shadow.png" id="3_hre65"]
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_n7gny"]
|
||||
light_mode = 2
|
||||
|
||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_3q7s5"]
|
||||
light_mode = 2
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_vvfu1"]
|
||||
radius = 8.0
|
||||
|
||||
[node name="Object" type="Area2D" groups=["Object"]]
|
||||
light_mask = 16
|
||||
visibility_layer = 16
|
||||
z_index = 1
|
||||
material = SubResource("CanvasItemMaterial_n7gny")
|
||||
collision_layer = 16
|
||||
collision_mask = 96
|
||||
script = ExtResource("1_3y27f")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
material = SubResource("CanvasItemMaterial_3q7s5")
|
||||
position = Vector2(2.38419e-07, 2.38419e-07)
|
||||
scale = Vector2(0.5, 0.5)
|
||||
texture = ExtResource("3_hre65")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2(0, -4)
|
||||
shape = SubResource("CircleShape2D_vvfu1")
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ radius = 8.0
|
|||
value = 100
|
||||
weight = 40
|
||||
|
||||
[node name="CollisionShape2D" parent="." index="0"]
|
||||
[node name="CollisionShape2D" parent="." index="1"]
|
||||
shape = SubResource("CircleShape2D_fkh3i")
|
||||
|
||||
[node name="Sprite2D" parent="." index="1"]
|
||||
[node name="Sprite2D" parent="." index="2"]
|
||||
texture = ExtResource("2_3c460")
|
||||
|
|
|
|||
|
|
@ -10,9 +10,8 @@ radius = 8.0
|
|||
value = 800
|
||||
weight = 50
|
||||
|
||||
[node name="CollisionShape2D" parent="." index="0"]
|
||||
[node name="CollisionShape2D" parent="." index="1"]
|
||||
shape = SubResource("CircleShape2D_772ct")
|
||||
|
||||
[node name="Sprite2D" parent="." index="1"]
|
||||
position = Vector2(0, -8)
|
||||
[node name="Sprite2D" parent="." index="2"]
|
||||
texture = ExtResource("2_q4tnr")
|
||||
|
|
|
|||
|
|
@ -9,9 +9,8 @@ radius = 8.0
|
|||
[node name="Vase" instance=ExtResource("1_fkdlr")]
|
||||
y_sort_enabled = true
|
||||
|
||||
[node name="CollisionShape2D" parent="." index="0"]
|
||||
[node name="CollisionShape2D" parent="." index="1"]
|
||||
shape = SubResource("CircleShape2D_pmiic")
|
||||
|
||||
[node name="Sprite2D" parent="." index="1"]
|
||||
position = Vector2(0, -4)
|
||||
[node name="Sprite2D" parent="." index="2"]
|
||||
texture = ExtResource("2_vxdei")
|
||||
|
|
|
|||
|
|
@ -1,11 +1,26 @@
|
|||
extends Node
|
||||
|
||||
func _ready() -> void:
|
||||
loadGame()
|
||||
loadStartMenu()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if G.extracted and get_child(0).name != "EndScreen":
|
||||
loadEndScren()
|
||||
|
||||
func loadGame():
|
||||
G.resetValues()
|
||||
for i in get_children():
|
||||
i.queue_free()
|
||||
add_child(load("res://scenes/game/mainGame/main_game.tscn").instantiate())
|
||||
|
||||
func loadEndScren():
|
||||
for i in get_children():
|
||||
i.queue_free()
|
||||
add_child(load("res://scenes/menu/endScreen/end_screen.tscn").instantiate())
|
||||
|
||||
|
||||
func loadStartMenu():
|
||||
G.resetValues()
|
||||
for i in get_children():
|
||||
i.queue_free()
|
||||
add_child(load("res://scenes/menu/startMenu/start_menu.tscn").instantiate())
|
||||
|
|
|
|||
19
scenes/menu/endScreen/end_screen.gd
Normal file
19
scenes/menu/endScreen/end_screen.gd
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
extends Control
|
||||
|
||||
@onready var moneyResultLabel = $CenterContainer/VBoxContainer/HBoxContainer/MoneyResult
|
||||
@onready var healthResultLabel = $CenterContainer/VBoxContainer/HBoxContainer2/HealthResult
|
||||
|
||||
@onready var succesLabel = $CenterContainer/VBoxContainer/VBoxContainer/SUCCESLabel
|
||||
@onready var failureLabel = $CenterContainer/VBoxContainer/VBoxContainer/FAILURELabel
|
||||
|
||||
func _ready() -> void:
|
||||
if G.extracted:
|
||||
succesLabel.show()
|
||||
failureLabel.hide()
|
||||
moneyResultLabel.text = str(G.money)
|
||||
healthResultLabel.text = str(G.lastHealth)
|
||||
|
||||
|
||||
|
||||
func _on_home_button_button_up() -> void:
|
||||
get_parent().loadStartMenu()
|
||||
112
scenes/menu/endScreen/end_screen.tscn
Normal file
112
scenes/menu/endScreen/end_screen.tscn
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://jga6awfuwsyp"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://cotw1alu4b2ad" path="res://Theme/MainTheme.tres" id="1_iscr2"]
|
||||
[ext_resource type="Texture2D" uid="uid://drjv0kpcfubr0" path="res://Assets/Icons/Dollar.png" id="2_54fgt"]
|
||||
[ext_resource type="Script" path="res://scenes/menu/endScreen/end_screen.gd" id="2_wokl6"]
|
||||
[ext_resource type="Texture2D" uid="uid://b27g8eulkxvyr" path="res://Assets/Icons/Health.png" id="3_n82yp"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_3uh6l"]
|
||||
font_size = 48
|
||||
font_color = Color(0.918136, 0.0328273, 0.194379, 1)
|
||||
outline_size = 5
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_58qpv"]
|
||||
font_size = 48
|
||||
font_color = Color(0.0700001, 0.6, 0, 1)
|
||||
outline_size = 5
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_kocpg"]
|
||||
font_size = 48
|
||||
font_color = Color(0, 1, 0.0999999, 1)
|
||||
outline_size = 5
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_2huu8"]
|
||||
font_size = 48
|
||||
font_color = Color(1, 0, 0, 1)
|
||||
outline_size = 5
|
||||
outline_color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="EndScreen" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_iscr2")
|
||||
script = ExtResource("2_wokl6")
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="LabelResults" type="Label" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "RESULT"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="HSeparator3" type="HSeparator" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="FAILURELabel" type="Label" parent="CenterContainer/VBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "FAILURE"
|
||||
label_settings = SubResource("LabelSettings_3uh6l")
|
||||
|
||||
[node name="SUCCESLabel" type="Label" parent="CenterContainer/VBoxContainer/VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "SUCCES"
|
||||
label_settings = SubResource("LabelSettings_58qpv")
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="CenterContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("2_54fgt")
|
||||
|
||||
[node name="MoneyResult" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
label_settings = SubResource("LabelSettings_kocpg")
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="CenterContainer/VBoxContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
texture = ExtResource("3_n82yp")
|
||||
|
||||
[node name="Health" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
text = "10/"
|
||||
label_settings = SubResource("LabelSettings_2huu8")
|
||||
|
||||
[node name="HealthResult" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
label_settings = SubResource("LabelSettings_2huu8")
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HomeButton" type="Button" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Understood"
|
||||
|
||||
[connection signal="button_up" from="CenterContainer/VBoxContainer/HomeButton" to="." method="_on_home_button_button_up"]
|
||||
14
scenes/menu/startMenu/Storm.tres
Normal file
14
scenes/menu/startMenu/Storm.tres
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
[gd_resource type="StyleBoxFlat" format=3 uid="uid://db7h680qdfcrv"]
|
||||
|
||||
[resource]
|
||||
bg_color = Color(0.913183, 0.621028, 0, 1)
|
||||
border_width_left = 5
|
||||
border_width_top = 5
|
||||
border_width_right = 5
|
||||
border_width_bottom = 5
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
corner_radius_top_left = 5
|
||||
corner_radius_top_right = 5
|
||||
corner_radius_bottom_right = 5
|
||||
corner_radius_bottom_left = 5
|
||||
corner_detail = 20
|
||||
5
scenes/menu/startMenu/start_menu.gd
Normal file
5
scenes/menu/startMenu/start_menu.gd
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
extends Control
|
||||
|
||||
|
||||
func _on_start_button_button_up() -> void:
|
||||
get_parent().loadGame()
|
||||
54
scenes/menu/startMenu/start_menu.tscn
Normal file
54
scenes/menu/startMenu/start_menu.tscn
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://ceu62dbrvd31p"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://cotw1alu4b2ad" path="res://Theme/MainTheme.tres" id="1_2eoii"]
|
||||
[ext_resource type="Script" path="res://scenes/menu/startMenu/start_menu.gd" id="2_y1mcp"]
|
||||
[ext_resource type="PackedScene" uid="uid://br7eqr6jomsg4" path="res://scenes/game/map/map.tscn" id="3_w2x7d"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2xbgtcyxvi73" path="res://Assets/Player/Player.png" id="4_0cn2q"]
|
||||
|
||||
[node name="StartMenu" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme = ExtResource("1_2eoii")
|
||||
script = ExtResource("2_y1mcp")
|
||||
|
||||
[node name="Map" parent="." instance=ExtResource("3_w2x7d")]
|
||||
visible = false
|
||||
position = Vector2(976, 540)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
position = Vector2(960, 456)
|
||||
scale = Vector2(1.5, 1.5)
|
||||
texture = ExtResource("4_0cn2q")
|
||||
hframes = 25
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
modulate = Color(1, 1, 1, 0.376471)
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="StartButton" type="Button" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "PLAY"
|
||||
|
||||
[connection signal="button_up" from="CenterContainer/VBoxContainer/StartButton" to="." method="_on_start_button_button_up"]
|
||||
1
translations/.~lock.translations.csv#
Normal file
1
translations/.~lock.translations.csv#
Normal file
|
|
@ -0,0 +1 @@
|
|||
,exobyt,exobyt-endeavour,14.09.2024 23:54,file:///home/exobyt/.config/libreoffice/4;
|
||||
|
|
@ -1,3 +1,10 @@
|
|||
keys,de,en
|
||||
START_GAME,Spielen,Play
|
||||
PLAY,Spielen,Play
|
||||
MONEY,Geld,Money
|
||||
RESULT,Ergebnis,Result
|
||||
UNDERSTOOD,Verstanden,Understood
|
||||
SUCCES,Erfolgreich extrahiert,Succesfully extracted
|
||||
FAILURE,Leider nicht geschafft,Lost in the Storm
|
||||
STORMWARNING,Sturm Warnung! Schnell zum Portal!,Storm Warning! Back to the Portal. NOW!
|
||||
INTRODUCTION,Suche nach Objekten und Bringe sie zum Portal,Search for Objects and bring them to the Portal
|
||||
WARNING,"Es wude ein Sturm vorrausgesagt. Wir werden dich aber warnen wenn er kommt, sei dann aber schnell!","The Weather Report said there was a Storm coming. We will warn you if it is close, but be fast!"
|
||||
|
|
|
|||
|
Loading…
Add table
Add a link
Reference in a new issue