First Prototype

This commit is contained in:
Exobyt 2024-09-15 00:04:31 +02:00
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

Before After
Before After

BIN
Assets/Icons/Storm.ase Normal file

Binary file not shown.

BIN
Assets/Icons/Storm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View 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
View 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

View 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

Binary file not shown.

BIN
Assets/Portal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

34
Assets/Portal.png.import Normal file
View 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

Binary file not shown.

BIN
Assets/Shadow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

34
Assets/Shadow.png.import Normal file
View 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

View file

@ -3,4 +3,4 @@
[ext_resource type="PackedScene" uid="uid://1jyq2seprmvg" path="res://Spawner/spawner.tscn" id="1_ayequ"] [ext_resource type="PackedScene" uid="uid://1jyq2seprmvg" path="res://Spawner/spawner.tscn" id="1_ayequ"]
[node name="ObjectSpawner" instance=ExtResource("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
View 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

View file

@ -94,6 +94,7 @@ ROLL={
"deadzone": 0.5, "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) "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(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={ DOOR={

View file

@ -1,14 +1,37 @@
extends Node extends Node
enum GAMETIME { enum GAMETIME {
MIN = 240, MIN = 60*5,
MAX = 360 MAX = 60*6
} }
var lastHealth = 10
var money = 0 var money = 0
var StormTimeLeft = 100
var StormThreshold = 30
var extracted = false
func resetValues(): func resetValues():
extracted = false
money = 0 money = 0
lastHealth = 10
StormTimeLeft = 100
func addMoney(n): func addMoney(n):
money += n money += n
func setLastHealth(n):
lastHealth = n
func isStormThreshold():
return StormThreshold >= StormTimeLeft
func getStormThreshold():
return StormThreshold
func extractPlayer():
extracted = true

View file

@ -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="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"] [sub_resource type="CircleShape2D" id="CircleShape2D_7mwpw"]
size = Vector2(136, 136) 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 light_mask = 32
visibility_layer = 32 visibility_layer = 32
collision_layer = 32 collision_layer = 32
collision_mask = 16 collision_mask = 1040
script = ExtResource("1_c4amf") script = ExtResource("1_c4amf")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_e58ei") shape = SubResource("CircleShape2D_7mwpw")
[node name="NavigationObstacle2D" type="NavigationObstacle2D" parent="."] [node name="NavigationObstacle2D" type="NavigationObstacle2D" parent="."]
scale = Vector2(0.997855, 1) scale = Vector2(0.997855, 1)
vertices = PackedVector2Array(-32.0688, -32, 32.0688, -32, 32.0688, 32, -32.0688, 32) vertices = PackedVector2Array(-32.0688, -32, 32.0688, -32, 32.0688, 32, -32.0688, 32)
avoidance_layers = 32 avoidance_layers = 32
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="CollectArea" type="Area2D" parent="."]
texture = ExtResource("2_4nokb") 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"]

View file

@ -1,10 +1,50 @@
extends Area2D extends Area2D
@onready var collectArea = $CollectArea
@onready var animatedSprite = $AnimatedSprite2D
func _ready() -> void:
animatedSprite.play("default")
func _physics_process(delta: float) -> void: 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(): func cashInObject():
for i in get_overlapping_areas(): for i in collectArea.get_overlapping_areas():
if not i.isCarryied(): if not i.isCarryied():
G.addMoney(i.getValue()) G.addMoney(i.getValue())
i.queue_free() 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()

View file

@ -38,7 +38,7 @@ collision_layer = 2560
script = ExtResource("2_4vapd") script = ExtResource("2_4vapd")
damage = 1 damage = 1
attackCooldown = 1 attackCooldown = 1
normalSpeed = 80 normalSpeed = 70
[node name="CollisionShape2D" parent="." index="0"] [node name="CollisionShape2D" parent="." index="0"]
shape = SubResource("CircleShape2D_xq7op") shape = SubResource("CircleShape2D_xq7op")

View file

@ -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="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"]] [node name="Entity" type="CharacterBody2D" groups=["Entity"]]
light_mask = 512 light_mask = 512
@ -18,3 +22,7 @@ light_mask = 4
visibility_layer = 5 visibility_layer = 5
z_index = 1 z_index = 1
y_sort_enabled = true y_sort_enabled = true
[node name="Shadow" type="Sprite2D" parent="."]
material = SubResource("CanvasItemMaterial_4jtw1")
texture = ExtResource("2_nhikt")

View file

@ -11,9 +11,16 @@ extends "res://scenes/game/entities/entity.gd"
@onready var moneyValueLabel = $Camera2D/CanvasLayer/Control/HBoxContainer/MoneyValue @onready var moneyValueLabel = $Camera2D/CanvasLayer/Control/HBoxContainer/MoneyValue
@onready var objectValue = $Camera2D/CanvasLayer/Control/ObjectValues/ObjectMoneyValue @onready var objectValue = $Camera2D/CanvasLayer/Control/ObjectValues/ObjectMoneyValue
@onready var objectValues = $Camera2D/CanvasLayer/Control/ObjectValues @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 camera = $Camera2D
@onready var animation = $Camera2D/CanvasLayer/Control/AnimationPlayer
var rollSpeed = maxSpeed * 5 var rollSpeed = maxSpeed * 5
const rollCooldown = 5.0 const rollCooldown = 5.0
@ -29,7 +36,10 @@ var object = null
var lastDirection : Vector2 var lastDirection : Vector2
var lastdirectionVector : Vector2 var lastdirectionVector : Vector2
var shownStormProgress = false
func _ready(): func _ready():
animation.play("Introduction")
rollCooldownBar.min_value = 0 rollCooldownBar.min_value = 0
rollCooldownBar.max_value = rollCooldown rollCooldownBar.max_value = rollCooldown
healthBar.min_value = 0 healthBar.min_value = 0
@ -44,8 +54,18 @@ func setHudValues():
objectValue.text = str(object.getValue()) objectValue.text = str(object.getValue())
else: else:
objectValues.hide() 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: func _physics_process(delta: float) -> void:
Storm()
setHudValues() setHudValues()
var direction : Vector2 = Input.get_vector("MOVE_LEFT", "MOVE_RIGHT", "MOVE_UP", "MOVE_DOWN").normalized() var direction : Vector2 = Input.get_vector("MOVE_LEFT", "MOVE_RIGHT", "MOVE_UP", "MOVE_DOWN").normalized()
#var direction : Vector2 = Vector2( #var direction : Vector2 = Vector2(
@ -59,10 +79,8 @@ func _physics_process(delta: float) -> void:
lastdirectionVector = directionVector lastdirectionVector = directionVector
if Input.is_action_just_pressed("ROLL") and lastDirection != Vector2.ZERO: if Input.is_action_just_pressed("ROLL") and lastDirection != Vector2.ZERO:
roll() roll()
if Input.is_action_just_pressed("ROLL") and lastDirection != Vector2.ZERO: #if Input.is_action_just_pressed("DOOR"):
roll() #openDoor()
if Input.is_action_just_pressed("DOOR"):
openDoor()
if Input.is_action_just_pressed("Pickup"): if Input.is_action_just_pressed("Pickup"):
match carrying: match carrying:
false: false:
@ -168,5 +186,22 @@ func _on_hit_box_signal_hit(damage: Variant) -> void:
camera.shake(2,0.5) camera.shake(2,0.5)
func _on_death() -> void: func _on_animation_player_animation_finished(anim_name: StringName) -> void:
print("HOHO") 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()

View file

@ -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="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"] [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://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="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://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"] [sub_resource type="CircleShape2D" id="CircleShape2D_7ukjs"]
radius = 8.94427 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"] [sub_resource type="CircleShape2D" id="CircleShape2D_8u3aq"]
radius = 8.94427 radius = 8.94427
@ -27,6 +203,7 @@ radius = 8.94427
light_mask = 1536 light_mask = 1536
visibility_layer = 1536 visibility_layer = 1536
collision_layer = 1536 collision_layer = 1536
collision_mask = 46
script = ExtResource("2_s0pfn") script = ExtResource("2_s0pfn")
[node name="CollisionShape2D" parent="." index="0"] [node name="CollisionShape2D" parent="." index="0"]
@ -167,6 +344,101 @@ layout_mode = 2
layout_mode = 2 layout_mode = 2
texture = ExtResource("4_6t857") 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"] [node name="RollTimer" type="Timer" parent="." index="3"]
one_shot = true one_shot = true
@ -197,9 +469,13 @@ texture_scale = 2.0
position = Vector2(0, 4) position = Vector2(0, 4)
shape = SubResource("CircleShape2D_bjveg") 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="RollTimer" to="." method="_on_roll_timeout"]
[connection signal="timeout" from="RollCooldownTimer" to="." method="_on_roll_cooldown_timer_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="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"] [editable path="HitBox"]

View file

@ -4,14 +4,26 @@ extends Node2D
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready() -> void: func _ready() -> void:
randomize()
$Map.spawnObjects() $Map.spawnObjects()
$Map.spawnEnemies() $Map.spawnEnemies()
stormTimer.start(randi_range(G.GAMETIME.MIN, G.GAMETIME.MAX)) stormTimer.start(randi_range(G.GAMETIME.MIN, G.GAMETIME.MAX))
# Called every frame. 'delta' is the elapsed time since the previous frame. # Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void: func _process(delta: float) -> void:
pass G.StormTimeLeft = stormTimer.time_left
func _on_storm_timer_timeout() -> void: func _on_storm_timer_timeout() -> void:
print("Storm") print("Storm")
func _on_player_death() -> void:
get_parent().loadEndScren()
func pause():
get_tree().paused = true
func resume():
get_tree().paused = false

View file

@ -8,11 +8,12 @@
script = ExtResource("1_napbe") script = ExtResource("1_napbe")
[node name="Player" parent="." instance=ExtResource("3_sjgkj")] [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="Map" parent="." instance=ExtResource("3_vpriv")]
[node name="StormTimer" type="Timer" parent="."] [node name="StormTimer" type="Timer" parent="."]
one_shot = true one_shot = true
[connection signal="death" from="Player" to="." method="_on_player_death"]
[connection signal="timeout" from="StormTimer" to="." method="_on_storm_timer_timeout"] [connection signal="timeout" from="StormTimer" to="." method="_on_storm_timer_timeout"]

View file

@ -12,6 +12,9 @@ func _ready() -> void:
enemySpawnersArray[0].enabled = true enemySpawnersArray[0].enabled = true
enemySpawnersArray[1].enabled = true enemySpawnersArray[1].enabled = true
enemySpawnersArray[2].enabled = true
enemySpawnersArray[3].enabled = true
enemySpawnersArray[4].enabled = true
#for i in enemySpawnersArray: #for i in enemySpawnersArray:
#i.enabled = true #i.enabled = true

File diff suppressed because one or more lines are too long

View file

@ -35,7 +35,7 @@ func pickup(newPlayer):
func drop(): func drop():
global_position.y += 10 global_position.y += 10
player = null player = null
z_index = 0 z_index = 1
func getWeight(): func getWeight():
return weight return weight

View file

@ -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="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://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"] [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_n7gny"]
light_mode = 2 light_mode = 2
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_3q7s5"]
light_mode = 2
[sub_resource type="CircleShape2D" id="CircleShape2D_vvfu1"] [sub_resource type="CircleShape2D" id="CircleShape2D_vvfu1"]
radius = 8.0 radius = 8.0
[node name="Object" type="Area2D" groups=["Object"]] [node name="Object" type="Area2D" groups=["Object"]]
light_mask = 16 light_mask = 16
visibility_layer = 16 visibility_layer = 16
z_index = 1
material = SubResource("CanvasItemMaterial_n7gny") material = SubResource("CanvasItemMaterial_n7gny")
collision_layer = 16 collision_layer = 16
collision_mask = 96 collision_mask = 96
script = ExtResource("1_3y27f") 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="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, -4) position = Vector2(0, -4)
shape = SubResource("CircleShape2D_vvfu1") shape = SubResource("CircleShape2D_vvfu1")

View file

@ -10,8 +10,8 @@ radius = 8.0
value = 100 value = 100
weight = 40 weight = 40
[node name="CollisionShape2D" parent="." index="0"] [node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_fkh3i") shape = SubResource("CircleShape2D_fkh3i")
[node name="Sprite2D" parent="." index="1"] [node name="Sprite2D" parent="." index="2"]
texture = ExtResource("2_3c460") texture = ExtResource("2_3c460")

View file

@ -10,9 +10,8 @@ radius = 8.0
value = 800 value = 800
weight = 50 weight = 50
[node name="CollisionShape2D" parent="." index="0"] [node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_772ct") shape = SubResource("CircleShape2D_772ct")
[node name="Sprite2D" parent="." index="1"] [node name="Sprite2D" parent="." index="2"]
position = Vector2(0, -8)
texture = ExtResource("2_q4tnr") texture = ExtResource("2_q4tnr")

View file

@ -9,9 +9,8 @@ radius = 8.0
[node name="Vase" instance=ExtResource("1_fkdlr")] [node name="Vase" instance=ExtResource("1_fkdlr")]
y_sort_enabled = true y_sort_enabled = true
[node name="CollisionShape2D" parent="." index="0"] [node name="CollisionShape2D" parent="." index="1"]
shape = SubResource("CircleShape2D_pmiic") shape = SubResource("CircleShape2D_pmiic")
[node name="Sprite2D" parent="." index="1"] [node name="Sprite2D" parent="." index="2"]
position = Vector2(0, -4)
texture = ExtResource("2_vxdei") texture = ExtResource("2_vxdei")

View file

@ -1,11 +1,26 @@
extends Node extends Node
func _ready() -> void: func _ready() -> void:
loadGame() loadStartMenu()
func _process(delta: float) -> void:
if G.extracted and get_child(0).name != "EndScreen":
loadEndScren()
func loadGame(): func loadGame():
G.resetValues() G.resetValues()
for i in get_children(): for i in get_children():
i.queue_free() i.queue_free()
add_child(load("res://scenes/game/mainGame/main_game.tscn").instantiate()) 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())

View 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()

View 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"]

View 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

View file

@ -0,0 +1,5 @@
extends Control
func _on_start_button_button_up() -> void:
get_parent().loadGame()

View 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"]

View file

@ -0,0 +1 @@
,exobyt,exobyt-endeavour,14.09.2024 23:54,file:///home/exobyt/.config/libreoffice/4;

View file

@ -1,3 +1,10 @@
keys,de,en keys,de,en
START_GAME,Spielen,Play PLAY,Spielen,Play
MONEY,Geld,Money 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!"

1 keys de en
2 START_GAME PLAY Spielen Play
3 MONEY Geld Money
4 RESULT Ergebnis Result
5 UNDERSTOOD Verstanden Understood
6 SUCCES Erfolgreich extrahiert Succesfully extracted
7 FAILURE Leider nicht geschafft Lost in the Storm
8 STORMWARNING Sturm Warnung! Schnell zum Portal! Storm Warning! Back to the Portal. NOW!
9 INTRODUCTION Suche nach Objekten und Bringe sie zum Portal Search for Objects and bring them to the Portal
10 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!