Compare commits
No commits in common. "d8488fd557ad92eb6c7bc7ad3530e75041a4c7a5" and "d44b4cc724bf0df11742d3b7a28f1bd595972bfe" have entirely different histories.
d8488fd557
...
d44b4cc724
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
15
.gitignore
vendored
15
.gitignore
vendored
@ -1,17 +1,2 @@
|
|||||||
# ---> Godot
|
|
||||||
# Godot 4+ specific ignores
|
# Godot 4+ specific ignores
|
||||||
.godot/
|
.godot/
|
||||||
|
|
||||||
# Godot-specific ignores
|
|
||||||
.import/
|
|
||||||
export.cfg
|
|
||||||
export_presets.cfg
|
|
||||||
|
|
||||||
# Imported translations (automatically generated from CSV files)
|
|
||||||
*.translation
|
|
||||||
|
|
||||||
# Mono-specific ignores
|
|
||||||
.mono/
|
|
||||||
data_*/
|
|
||||||
mono_crash.*.json
|
|
||||||
|
|
||||||
|
5
CheckPointsHandler.gd
Normal file
5
CheckPointsHandler.gd
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@export var current : CharacterBody2D
|
BIN
HackerBasic.ttf
Normal file
BIN
HackerBasic.ttf
Normal file
Binary file not shown.
38
HackerBasic.ttf.import
Normal file
38
HackerBasic.ttf.import
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://3pvmifrm3xhh"
|
||||||
|
path="res://.godot/imported/HackerBasic.ttf-aa7eb7cf3d0776599b28827728f98419.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://HackerBasic.ttf"
|
||||||
|
dest_files=["res://.godot/imported/HackerBasic.ttf-aa7eb7cf3d0776599b28827728f98419.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=0
|
||||||
|
generate_mipmaps=false
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=1
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "New Configuration",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
9
LICENSE
9
LICENSE
@ -1,9 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2023 imk
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
42
MovingPlatform.gd
Normal file
42
MovingPlatform.gd
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
@tool
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
|
@export var pos1 : Vector2 = Vector2(0,0)
|
||||||
|
@export var pos2 : Vector2 = Vector2(2,9)
|
||||||
|
@export var debugging : bool = false
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
@export var speed : int = 1
|
||||||
|
|
||||||
|
var cur = 0
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if not Engine.is_editor_hint():
|
||||||
|
$start.global_position = pos1
|
||||||
|
$end.global_position = pos2
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
$start.global_position = pos1
|
||||||
|
$end.global_position = pos2
|
||||||
|
if not debugging:
|
||||||
|
return
|
||||||
|
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
if cur == 0:
|
||||||
|
tweener.tween_property($Platform,"global_position",pos1,speed)
|
||||||
|
await tweener.finished
|
||||||
|
$Platform.queue_redraw()
|
||||||
|
$Platform.global_position = pos1
|
||||||
|
await get_tree().create_timer(3).timeout
|
||||||
|
cur = 1
|
||||||
|
elif cur == 1:
|
||||||
|
tweener.tween_property($Platform,"global_position",pos2,speed)
|
||||||
|
await tweener.finished
|
||||||
|
$Platform.queue_redraw()
|
||||||
|
$Platform.global_position = pos2
|
||||||
|
await get_tree().create_timer(3).timeout
|
||||||
|
cur = 0
|
||||||
|
|
49
Node2D.gd
Normal file
49
Node2D.gd
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
var can_move = true
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
if SaveHandler.settings["checkpoint"] == "":
|
||||||
|
$continue.modulate = Color("747474")
|
||||||
|
can_move = false
|
||||||
|
$"new game".text = "[u][center]new game"
|
||||||
|
|
||||||
|
var switch = false
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
if Input.is_action_just_pressed("ui_down") and can_move:
|
||||||
|
if switch == false:
|
||||||
|
switch = true
|
||||||
|
$"new game".text = "[center]new game"
|
||||||
|
$continue.text = "[u][center]continue"
|
||||||
|
else:
|
||||||
|
switch = false
|
||||||
|
$"new game".text = "[u][center]new game"
|
||||||
|
$continue.text = "[center]continue"
|
||||||
|
if Input.is_action_just_pressed("ui_up") and can_move:
|
||||||
|
if switch == false:
|
||||||
|
switch = true
|
||||||
|
$"new game".text = "[center]new game"
|
||||||
|
$continue.text = "[u][center]continue"
|
||||||
|
else:
|
||||||
|
switch = false
|
||||||
|
$"new game".text = "[u][center]new game"
|
||||||
|
$continue.text = "[center]continue"
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("interact") or Input.is_action_just_pressed("ui_accept"):
|
||||||
|
if switch == false:
|
||||||
|
SaveHandler.set_setting("LoadSave",false)
|
||||||
|
else:
|
||||||
|
SaveHandler.set_setting("LoadSave",true)
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
var tweener2 = get_tree().create_tween()
|
||||||
|
tweener2.tween_property(get_parent().get_node("AudioStreamPlayer2D"),"volume_db",-100,3)
|
||||||
|
var recter = get_parent().get_node("CanvasLayer/ColorRect")
|
||||||
|
tweener.set_ease(Tween.EASE_IN)
|
||||||
|
tweener.set_trans(Tween.TRANS_CUBIC)
|
||||||
|
tweener.tween_property(recter,"size",Vector2(1152,648),2)
|
||||||
|
await tweener.finished
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
get_tree().change_scene_to_file("res://node_2d.tscn")
|
15
SPIKE.GD.gd
Normal file
15
SPIKE.GD.gd
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if body.name == "plr" and body.can_move:
|
||||||
|
body.can_move = false
|
||||||
|
var dial = body.get_node("Camera2D/dialogue")
|
||||||
|
dial.visible = true
|
||||||
|
dial.dialogue("Erm...","upsidedown",0.5)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.dialogue("Get out of my way...","nervous",0.5)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.dialogue("I HATE spikes in tunnels...", "normal", 0.5)
|
||||||
|
await get_parent().proceed
|
24
SaveHandler.gd
Normal file
24
SaveHandler.gd
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
@export var settings : Dictionary = {"checkpoint"="","LoadSave"=false}
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
if FileAccess.file_exists("user://settings"):
|
||||||
|
var filer = FileAccess.open("user://settings",FileAccess.READ)
|
||||||
|
var tempson = JSON.new()
|
||||||
|
tempson.parse(filer.get_as_text())
|
||||||
|
settings = tempson.get_data()
|
||||||
|
else:
|
||||||
|
writesave()
|
||||||
|
|
||||||
|
|
||||||
|
func writesave():
|
||||||
|
var filer = FileAccess.open("user://settings", FileAccess.WRITE)
|
||||||
|
filer.store_string(JSON.stringify(settings))
|
||||||
|
|
||||||
|
func set_setting(namer,value):
|
||||||
|
settings[namer] = value
|
||||||
|
writesave()
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
6
SaveHandler.tscn
Normal file
6
SaveHandler.tscn
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://0r1xemftuteu"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://SaveHandler.gd" id="1_j7ngb"]
|
||||||
|
|
||||||
|
[node name="SaveHandler" type="Node2D"]
|
||||||
|
script = ExtResource("1_j7ngb")
|
394
TILES.tres
Normal file
394
TILES.tres
Normal file
@ -0,0 +1,394 @@
|
|||||||
|
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://caxx0q7nei3h7"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_oi8tv"]
|
||||||
|
|
||||||
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_37hlk"]
|
||||||
|
texture = ExtResource("1_oi8tv")
|
||||||
|
10:13/0 = 0
|
||||||
|
10:13/0/terrain_set = 0
|
||||||
|
10:13/0/terrain = 5
|
||||||
|
10:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
10:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
10:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
10:14/0 = 0
|
||||||
|
10:14/0/terrain_set = 0
|
||||||
|
10:14/0/terrain = 5
|
||||||
|
10:14/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
10:14/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
10:14/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
11:14/0 = 0
|
||||||
|
11:14/0/terrain_set = 0
|
||||||
|
11:14/0/terrain = 5
|
||||||
|
11:14/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
11:14/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
11:14/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
12:14/0 = 0
|
||||||
|
12:14/0/terrain_set = 0
|
||||||
|
12:14/0/terrain = 5
|
||||||
|
12:14/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
12:14/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
12:14/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
12:13/0 = 0
|
||||||
|
12:13/0/terrain_set = 0
|
||||||
|
12:13/0/terrain = 5
|
||||||
|
12:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
12:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
12:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
11:13/0 = 0
|
||||||
|
11:13/0/terrain_set = 0
|
||||||
|
11:13/0/terrain = 5
|
||||||
|
11:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
11:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
11:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
13:13/0 = 0
|
||||||
|
13:13/0/terrain_set = 0
|
||||||
|
13:13/0/terrain = 5
|
||||||
|
13:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
13:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
13:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
13:14/0 = 0
|
||||||
|
13:14/0/terrain_set = 0
|
||||||
|
13:14/0/terrain = 5
|
||||||
|
13:14/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
13:14/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
13:14/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
14:12/0 = 0
|
||||||
|
14:12/0/terrain_set = 0
|
||||||
|
14:12/0/terrain = 1
|
||||||
|
14:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
14:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
14:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
14:11/0 = 0
|
||||||
|
14:11/0/terrain_set = 0
|
||||||
|
14:11/0/terrain = 1
|
||||||
|
14:11/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
14:11/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
14:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
15:11/0 = 0
|
||||||
|
15:11/0/terrain_set = 0
|
||||||
|
15:11/0/terrain = 1
|
||||||
|
15:11/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
15:11/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
15:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
16:11/0 = 0
|
||||||
|
16:11/0/terrain_set = 0
|
||||||
|
16:11/0/terrain = 1
|
||||||
|
16:11/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
16:11/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
16:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
17:11/0 = 0
|
||||||
|
17:11/0/terrain_set = 0
|
||||||
|
17:11/0/terrain = 1
|
||||||
|
17:11/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
17:11/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
17:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
17:12/0 = 0
|
||||||
|
17:12/0/terrain_set = 0
|
||||||
|
17:12/0/terrain = 1
|
||||||
|
17:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
17:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
17:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
17:13/0 = 0
|
||||||
|
17:13/0/terrain_set = 0
|
||||||
|
17:13/0/terrain = 1
|
||||||
|
17:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
17:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
17:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
16:12/0 = 0
|
||||||
|
16:12/0/terrain_set = 0
|
||||||
|
16:12/0/terrain = 1
|
||||||
|
16:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
16:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
16:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
15:12/0 = 0
|
||||||
|
15:12/0/terrain_set = 0
|
||||||
|
15:12/0/terrain = 1
|
||||||
|
15:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
15:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
15:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
2:4/0 = 0
|
||||||
|
2:4/0/terrain_set = 0
|
||||||
|
2:4/0/terrain = 3
|
||||||
|
2:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
2:4/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
1:4/0 = 0
|
||||||
|
1:4/0/terrain_set = 0
|
||||||
|
1:4/0/terrain = 3
|
||||||
|
1:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:4/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
0:4/0 = 0
|
||||||
|
0:4/0/terrain_set = 0
|
||||||
|
0:4/0/terrain = 3
|
||||||
|
0:4/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
0:4/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
0:3/0 = 0
|
||||||
|
0:3/0/terrain_set = 0
|
||||||
|
0:3/0/terrain = 4
|
||||||
|
0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
0:3/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
1:3/0 = 0
|
||||||
|
1:3/0/terrain_set = 0
|
||||||
|
1:3/0/terrain = 4
|
||||||
|
1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:3/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
2:3/0 = 0
|
||||||
|
2:3/0/terrain_set = 0
|
||||||
|
2:3/0/terrain = 4
|
||||||
|
2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
2:3/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
4:2/0 = 0
|
||||||
|
4:2/0/terrain_set = 0
|
||||||
|
4:2/0/terrain = 1
|
||||||
|
4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
4:2/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
4:1/0 = 0
|
||||||
|
4:1/0/terrain_set = 0
|
||||||
|
4:1/0/terrain = 1
|
||||||
|
4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
4:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
3:1/0 = 0
|
||||||
|
3:1/0/terrain_set = 0
|
||||||
|
3:1/0/terrain = 0
|
||||||
|
3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
3:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
3:1/0/terrains_peering_bit/left_side = 0
|
||||||
|
2:1/0 = 0
|
||||||
|
2:1/0/terrain_set = 0
|
||||||
|
2:1/0/terrain = 0
|
||||||
|
2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
2:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
2:1/0/terrains_peering_bit/right_side = 0
|
||||||
|
2:1/0/terrains_peering_bit/left_side = 0
|
||||||
|
1:1/next_alternative_id = 3
|
||||||
|
1:1/0 = 0
|
||||||
|
1:1/0/terrain_set = 0
|
||||||
|
1:1/0/terrain = 0
|
||||||
|
1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
1:1/0/terrains_peering_bit/right_side = 0
|
||||||
|
1:1/0/terrains_peering_bit/left_side = 0
|
||||||
|
1:1/1 = 1
|
||||||
|
1:1/1/transpose = true
|
||||||
|
1:1/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:1/1/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:1/1/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
1:1/2 = 2
|
||||||
|
1:1/2/flip_h = true
|
||||||
|
1:1/2/transpose = true
|
||||||
|
1:1/2/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:1/2/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:1/2/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
0:1/0 = 0
|
||||||
|
0:1/0/terrain_set = 0
|
||||||
|
0:1/0/terrain = 0
|
||||||
|
0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
0:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
0:1/0/terrains_peering_bit/right_side = 0
|
||||||
|
0:2/0 = 0
|
||||||
|
0:2/0/terrain_set = 0
|
||||||
|
0:2/0/terrain = 0
|
||||||
|
0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
0:2/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
0:2/0/terrains_peering_bit/right_side = 0
|
||||||
|
0:2/0/terrains_peering_bit/top_side = 0
|
||||||
|
0:2/0/terrains_peering_bit/top_right_corner = 0
|
||||||
|
1:2/0 = 0
|
||||||
|
1:2/0/terrain_set = 0
|
||||||
|
1:2/0/terrain = 0
|
||||||
|
1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:2/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
1:2/0/terrains_peering_bit/right_side = 0
|
||||||
|
1:2/0/terrains_peering_bit/left_side = 0
|
||||||
|
1:2/0/terrains_peering_bit/top_left_corner = 0
|
||||||
|
1:2/0/terrains_peering_bit/top_side = 0
|
||||||
|
1:2/0/terrains_peering_bit/top_right_corner = 0
|
||||||
|
2:2/0 = 0
|
||||||
|
2:2/0/terrain_set = 0
|
||||||
|
2:2/0/terrain = 0
|
||||||
|
2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
2:2/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
2:2/0/terrains_peering_bit/right_side = 0
|
||||||
|
2:2/0/terrains_peering_bit/left_side = 0
|
||||||
|
2:2/0/terrains_peering_bit/top_left_corner = 0
|
||||||
|
2:2/0/terrains_peering_bit/top_side = 0
|
||||||
|
2:2/0/terrains_peering_bit/top_right_corner = 0
|
||||||
|
3:2/0 = 0
|
||||||
|
3:2/0/terrain_set = 0
|
||||||
|
3:2/0/terrain = 0
|
||||||
|
3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
3:2/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
3:2/0/terrains_peering_bit/left_side = 0
|
||||||
|
3:2/0/terrains_peering_bit/top_left_corner = 0
|
||||||
|
3:2/0/terrains_peering_bit/top_side = 0
|
||||||
|
4:3/0 = 0
|
||||||
|
4:3/0/terrain_set = 0
|
||||||
|
4:3/0/terrain = 2
|
||||||
|
4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
4:3/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
4:3/0/terrains_peering_bit/top_side = 1
|
||||||
|
5:2/next_alternative_id = 2
|
||||||
|
5:2/0 = 0
|
||||||
|
5:2/0/terrain_set = 0
|
||||||
|
5:2/0/terrain = 2
|
||||||
|
5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
5:2/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
5:2/0/terrains_peering_bit/left_side = 1
|
||||||
|
5:2/1 = 1
|
||||||
|
5:2/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
5:2/1/physics_layer_0/angular_velocity = 0.0
|
||||||
|
5:1/0 = 0
|
||||||
|
5:1/0/terrain_set = 0
|
||||||
|
5:1/0/terrain = 2
|
||||||
|
5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
5:1/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
5:1/0/terrains_peering_bit/left_side = 1
|
||||||
|
4:0/0 = 0
|
||||||
|
4:0/0/terrain_set = 0
|
||||||
|
4:0/0/terrain = 2
|
||||||
|
4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
4:0/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
4:0/0/terrains_peering_bit/bottom_side = 1
|
||||||
|
3:0/0 = 0
|
||||||
|
3:0/0/terrain_set = 0
|
||||||
|
3:0/0/terrain = 2
|
||||||
|
3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
3:0/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
3:0/0/terrains_peering_bit/bottom_side = 0
|
||||||
|
2:0/0 = 0
|
||||||
|
2:0/0/terrain_set = 0
|
||||||
|
2:0/0/terrain = 2
|
||||||
|
2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
2:0/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
2:0/0/terrains_peering_bit/bottom_side = 0
|
||||||
|
1:0/0 = 0
|
||||||
|
1:0/0/terrain_set = 0
|
||||||
|
1:0/0/terrain = 2
|
||||||
|
1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:0/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:0/0/terrains_peering_bit/bottom_side = 0
|
||||||
|
0:0/0 = 0
|
||||||
|
0:0/0/terrain_set = 0
|
||||||
|
0:0/0/terrain = 2
|
||||||
|
0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
0:0/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
0:0/0/terrains_peering_bit/bottom_side = 0
|
||||||
|
18:18/0 = 0
|
||||||
|
18:18/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
18:18/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
18:18/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, -8, 0, 8, -8, 8, -8, -8)
|
||||||
|
18:17/0 = 0
|
||||||
|
18:17/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
18:17/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
18:17/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, -8, 0, 8, -8, 8, -8, -8)
|
||||||
|
18:16/0 = 0
|
||||||
|
18:16/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
18:16/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
18:16/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, -8, 0, 8, -8, 8, -8, -8)
|
||||||
|
19:16/next_alternative_id = 2
|
||||||
|
19:16/0 = 0
|
||||||
|
19:16/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
19:16/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
19:16/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
19:16/1 = 1
|
||||||
|
19:16/1/transpose = true
|
||||||
|
19:16/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
19:16/1/physics_layer_0/angular_velocity = 0.0
|
||||||
|
19:16/1/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
19:17/next_alternative_id = 2
|
||||||
|
19:17/0 = 0
|
||||||
|
19:17/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
19:17/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
19:17/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
19:17/1 = 1
|
||||||
|
19:17/1/transpose = true
|
||||||
|
19:17/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
19:17/1/physics_layer_0/angular_velocity = 0.0
|
||||||
|
19:17/1/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
|
||||||
|
19:18/next_alternative_id = 2
|
||||||
|
19:18/0 = 0
|
||||||
|
19:18/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
19:18/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
19:18/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
19:18/1 = 1
|
||||||
|
19:18/1/transpose = true
|
||||||
|
19:18/1/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
19:18/1/physics_layer_0/angular_velocity = 0.0
|
||||||
|
19:18/1/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, 8, 8, 8, 8, -8)
|
||||||
|
12:11/0 = 0
|
||||||
|
12:11/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
12:11/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
12:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -4.5, 5.5, -2, 3, 3, -1, 6, -4.5, 8, -8, -8, -8)
|
||||||
|
12:12/0 = 0
|
||||||
|
12:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
12:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
12:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, 8, -8, 8)
|
||||||
|
13:12/0 = 0
|
||||||
|
13:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
13:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
13:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, 8, -8, 8, 8)
|
||||||
|
13:11/0 = 0
|
||||||
|
13:11/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
13:11/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
13:11/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, 8, 8, -8)
|
||||||
|
11:12/0 = 0
|
||||||
|
11:12/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
11:12/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
11:12/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 6, 8, -8, 8)
|
||||||
|
14:13/0 = 0
|
||||||
|
14:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
14:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
14:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -2.5, 0.5, 3.5, -6, 8, -8, 8, 8)
|
||||||
|
7:15/0 = 0
|
||||||
|
7:15/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
7:15/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
9:14/0 = 0
|
||||||
|
9:14/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
9:14/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
9:13/0 = 0
|
||||||
|
9:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
9:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:15/0 = 0
|
||||||
|
1:15/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:15/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:15/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 8, -8, 8, -8, -8)
|
||||||
|
1:14/0 = 0
|
||||||
|
1:14/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:14/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:14/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 8, -8, 8, -8, -8)
|
||||||
|
1:13/0 = 0
|
||||||
|
1:13/0/physics_layer_0/linear_velocity = Vector2(0, 0)
|
||||||
|
1:13/0/physics_layer_0/angular_velocity = 0.0
|
||||||
|
1:13/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 8, -8, 8, -8, -8)
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
physics_layer_0/collision_layer = 3
|
||||||
|
terrain_set_0/mode = 0
|
||||||
|
terrain_set_0/terrain_0/name = "yah"
|
||||||
|
terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1)
|
||||||
|
terrain_set_0/terrain_1/name = "rocks"
|
||||||
|
terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1)
|
||||||
|
terrain_set_0/terrain_2/name = "nature"
|
||||||
|
terrain_set_0/terrain_2/color = Color(0.46875, 0.5, 0.25, 1)
|
||||||
|
terrain_set_0/terrain_3/name = "rocky path"
|
||||||
|
terrain_set_0/terrain_3/color = Color(0.375, 0.5, 0.25, 1)
|
||||||
|
terrain_set_0/terrain_4/name = "broken path"
|
||||||
|
terrain_set_0/terrain_4/color = Color(0.28125, 0.5, 0.25, 1)
|
||||||
|
terrain_set_0/terrain_5/name = "dirt"
|
||||||
|
terrain_set_0/terrain_5/color = Color(0.25, 0.5, 0.3125, 1)
|
||||||
|
sources/1 = SubResource("TileSetAtlasSource_37hlk")
|
BIN
Wicked Depths.exe
Normal file
BIN
Wicked Depths.exe
Normal file
Binary file not shown.
BIN
Wicked Depths.pck
Normal file
BIN
Wicked Depths.pck
Normal file
Binary file not shown.
24
beep.wav.import
Normal file
24
beep.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://bdpql7v8x0ajy"
|
||||||
|
path="res://.godot/imported/beep.wav-bc4655fdf7ad7a97d3e9727a4f4dc437.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://beep.wav"
|
||||||
|
dest_files=["res://.godot/imported/beep.wav-bc4655fdf7ad7a97d3e9727a4f4dc437.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
23
bigspike.tscn
Normal file
23
bigspike.tscn
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://odpq23pduo6y"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://spikes.gd" id="1_lgxat"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="2_6ke6f"]
|
||||||
|
|
||||||
|
[node name="bigspike" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_lgxat")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-8, -16)
|
||||||
|
texture = ExtResource("2_6ke6f")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(112, 240, 16, 16)
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Area2D"]
|
||||||
|
position = Vector2(0, -1)
|
||||||
|
scale = Vector2(0.762194, 0.845913)
|
||||||
|
polygon = PackedVector2Array(0, -16, 1, -16, 7.87202, -3.54646, 9.18402, 0, -8, 0, -7.87202, -1.18215, -1.312, -14.1859)
|
||||||
|
|
||||||
|
[connection signal="body_shape_entered" from="Area2D" to="." method="_on_area_2d_body_shape_entered"]
|
14
blur.gdshader
Normal file
14
blur.gdshader
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform float blur_amount : hint_range(0, 5);
|
||||||
|
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, filter_linear_mipmap;
|
||||||
|
|
||||||
|
uniform vec4 color: source_color;
|
||||||
|
uniform float multiplier = 0.2;
|
||||||
|
uniform float softness = 3.0;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
float value = distance(UV, vec2(0.5)) * -1.0;
|
||||||
|
// COLOR = textureLod(SCREEN_TEXTURE, SCREEN_UV, blur_amount);
|
||||||
|
COLOR = textureLod(SCREEN_TEXTURE,SCREEN_UV, smoothstep(softness, multiplier,value));
|
||||||
|
}
|
18
box.tscn
Normal file
18
box.tscn
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://c71awxjnumu3l"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_d8se8"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_8vkj6"]
|
||||||
|
size = Vector2(34, 34)
|
||||||
|
|
||||||
|
[node name="box" type="StaticBody2D"]
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
texture = ExtResource("1_d8se8")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(63, 207, 34, 34)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(17, 17)
|
||||||
|
shape = SubResource("RectangleShape2D_8vkj6")
|
22
checkpoint.gd
Normal file
22
checkpoint.gd
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
@export var checked : bool = false
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if not checked:
|
||||||
|
if body.name == "plr":
|
||||||
|
checked = true
|
||||||
|
get_parent().current = self
|
||||||
|
$AudioStreamPlayer.play()
|
||||||
|
$AnimatedSprite2D.play("checked")
|
||||||
|
SaveHandler.set_setting("checkpoint",self.name)
|
54
checkpoint.tscn
Normal file
54
checkpoint.tscn
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
[gd_scene load_steps=8 format=3 uid="uid://bfroah50qq5gb"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://checkpoint.gd" id="1_dskwv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="2_v47p3"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dl273eryfwl8x" path="res://checkpoint.wav" id="3_wd3wv"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_wjet7"]
|
||||||
|
atlas = ExtResource("2_v47p3")
|
||||||
|
region = Rect2(64, 295, 13, 25)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_8werw"]
|
||||||
|
atlas = ExtResource("2_v47p3")
|
||||||
|
region = Rect2(39, 295, 13, 25)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_2o0ox"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_wjet7")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"checked",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_8werw")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_6j55p"]
|
||||||
|
size = Vector2(13, 25)
|
||||||
|
|
||||||
|
[node name="Checkpoint" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_dskwv")
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(-7, -15)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_2o0ox")
|
||||||
|
centered = false
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
position = Vector2(-0.5, -2.5)
|
||||||
|
shape = SubResource("RectangleShape2D_6j55p")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("3_wd3wv")
|
||||||
|
|
||||||
|
[connection signal="body_shape_entered" from="Area2D" to="." method="_on_area_2d_body_shape_entered"]
|
BIN
checkpoint.wav
Normal file
BIN
checkpoint.wav
Normal file
Binary file not shown.
24
checkpoint.wav.import
Normal file
24
checkpoint.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dl273eryfwl8x"
|
||||||
|
path="res://.godot/imported/checkpoint.wav-5ba2b0466c3cca33e652822091dc2dab.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://checkpoint.wav"
|
||||||
|
dest_files=["res://.godot/imported/checkpoint.wav-5ba2b0466c3cca33e652822091dc2dab.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
BIN
chess_basic.ttf
Normal file
BIN
chess_basic.ttf
Normal file
Binary file not shown.
38
chess_basic.ttf.import
Normal file
38
chess_basic.ttf.import
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://d3o43pvd1ouya"
|
||||||
|
path="res://.godot/imported/chess_basic.ttf-6cfbfe5119f83c80da96c9edebaf9216.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://chess_basic.ttf"
|
||||||
|
dest_files=["res://.godot/imported/chess_basic.ttf-6cfbfe5119f83c80da96c9edebaf9216.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=0
|
||||||
|
generate_mipmaps=false
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=1
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "New Configuration",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
36
cloud.gd
Normal file
36
cloud.gd
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
|
||||||
|
@export var enabled = false
|
||||||
|
@export var fail = false
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
if not enabled:
|
||||||
|
self.visible = false
|
||||||
|
return
|
||||||
|
self.visible = true
|
||||||
|
var plr = get_parent().get_node("plr")
|
||||||
|
if plr.is_on_floor() or fail:
|
||||||
|
fail = false
|
||||||
|
position = plr.position + Vector2(0,60)
|
||||||
|
else:
|
||||||
|
position.x = plr.position.x
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if not enabled:
|
||||||
|
return
|
||||||
|
if body.name == "plr":
|
||||||
|
body.can_move = false
|
||||||
|
body.on_ladder = false
|
||||||
|
body.wall = "none"
|
||||||
|
body.airjump = false
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
$AudioStreamPlayer.play()
|
||||||
|
tweener.tween_property(body,"position",get_parent().get_node("CheckPoints").current.position,1)
|
||||||
|
await tweener.finished
|
||||||
|
body.can_move = true
|
||||||
|
|
29
cloud.tscn
Normal file
29
cloud.tscn
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://n72os6i7xjq0"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://cloud.gd" id="1_nppen"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="2_ykyww"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://ba0nag2pymsps" path="res://move.wav" id="3_aab8e"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2c8e7"]
|
||||||
|
size = Vector2(32, 7)
|
||||||
|
|
||||||
|
[node name="cloud" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_nppen")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-16, 0)
|
||||||
|
texture = ExtResource("2_ykyww")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(80, 298, 32, 6)
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
position = Vector2(0, 2.5)
|
||||||
|
shape = SubResource("RectangleShape2D_2c8e7")
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("3_aab8e")
|
||||||
|
|
||||||
|
[connection signal="body_shape_entered" from="Area2D" to="." method="_on_area_2d_body_shape_entered"]
|
BIN
credits.ogg
Normal file
BIN
credits.ogg
Normal file
Binary file not shown.
19
credits.ogg.import
Normal file
19
credits.ogg.import
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://dpvannddny8of"
|
||||||
|
path="res://.godot/imported/credits.ogg-8c9cd2d1824a8a2e3c80e059a8e9e336.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://credits.ogg"
|
||||||
|
dest_files=["res://.godot/imported/credits.ogg-8c9cd2d1824a8a2e3c80e059a8e9e336.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
18
endcam.gd
Normal file
18
endcam.gd
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
extends Camera2D
|
||||||
|
|
||||||
|
var end = 600
|
||||||
|
|
||||||
|
var read = false
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
tweener.tween_property(self,"position",Vector2(0,end),40)
|
||||||
|
await tweener.finished
|
||||||
|
get_parent().get_node("RichTextLabel").text += "\n \n press [enter] to return to the main menu"
|
||||||
|
read = true
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
if read and Input.is_action_just_pressed("interact"):
|
||||||
|
get_tree().change_scene_to_file("res://menu.tscn")
|
16
entering.gd
Normal file
16
entering.gd
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
extends Area2D
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
func _on_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if body.name == "plr":
|
||||||
|
get_parent().get_node("cloud").enabled = true
|
29
explorer.gd
Normal file
29
explorer.gd
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
extends CollisionShape2D
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
var cool = false
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
if Input.is_action_just_pressed("interact"):
|
||||||
|
if get_parent().get_parent().get_parent().get_node("plr") in get_parent().get_overlapping_bodies() and not cool:
|
||||||
|
cool = true
|
||||||
|
var body = get_parent().get_parent().get_parent().get_node("plr")
|
||||||
|
body.can_move = false
|
||||||
|
var dial = body.get_node("Camera2D/dialogue")
|
||||||
|
dial.visible = true
|
||||||
|
dial.dialogue("Hi, what are you doing here?","normal",0.5)
|
||||||
|
await get_parent().get_parent().get_parent().proceed
|
||||||
|
dial.dialogue("I'm just placing down flags and exploring, but I'm a bit scared to proceed.","explorer",0.5)
|
||||||
|
await get_parent().get_parent().get_parent().proceed
|
||||||
|
dial.dialogue("Why?","normal",0.5)
|
||||||
|
await get_parent().get_parent().get_parent().proceed
|
||||||
|
dial.dialogue("There are too many spikes ahead.","explorer",0.5)
|
||||||
|
await get_parent().get_parent().get_parent().proceed
|
||||||
|
dial.visible = false
|
||||||
|
body.can_move = true
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
cool = false
|
BIN
explorer.png
Normal file
BIN
explorer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 226 B |
34
explorer.png.import
Normal file
34
explorer.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://btw7cy3q5fxng"
|
||||||
|
path="res://.godot/imported/explorer.png-08f0f192286bcc95860276c74b2c58d7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://explorer.png"
|
||||||
|
dest_files=["res://.godot/imported/explorer.png-08f0f192286bcc95860276c74b2c58d7.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
|
202
export_presets.cfg
Normal file
202
export_presets.cfg
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../../desktop/Wicked Depths Win.zip"
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
|
||||||
|
[preset.0.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=0
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
texture_format/bptc=true
|
||||||
|
texture_format/s3tc=true
|
||||||
|
texture_format/etc=false
|
||||||
|
texture_format/etc2=false
|
||||||
|
binary_format/architecture="x86_64"
|
||||||
|
codesign/enable=false
|
||||||
|
codesign/timestamp=true
|
||||||
|
codesign/timestamp_server_url=""
|
||||||
|
codesign/digest_algorithm=1
|
||||||
|
codesign/description=""
|
||||||
|
codesign/custom_options=PackedStringArray()
|
||||||
|
application/modify_resources=true
|
||||||
|
application/icon=""
|
||||||
|
application/console_wrapper_icon=""
|
||||||
|
application/icon_interpolation=4
|
||||||
|
application/file_version=""
|
||||||
|
application/product_version=""
|
||||||
|
application/company_name=""
|
||||||
|
application/product_name=""
|
||||||
|
application/file_description=""
|
||||||
|
application/copyright=""
|
||||||
|
application/trademarks=""
|
||||||
|
ssh_remote_deploy/enabled=false
|
||||||
|
ssh_remote_deploy/host="user@host_ip"
|
||||||
|
ssh_remote_deploy/port="22"
|
||||||
|
ssh_remote_deploy/extra_args_ssh=""
|
||||||
|
ssh_remote_deploy/extra_args_scp=""
|
||||||
|
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||||
|
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||||
|
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||||
|
$settings = New-ScheduledTaskSettingsSet
|
||||||
|
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||||
|
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||||
|
Start-ScheduledTask -TaskName godot_remote_debug
|
||||||
|
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||||
|
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||||
|
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||||
|
|
||||||
|
[preset.1]
|
||||||
|
|
||||||
|
name="macOS"
|
||||||
|
platform="macOS"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../../desktop/Wicked Depths MacOS.zip"
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
|
||||||
|
[preset.1.options]
|
||||||
|
|
||||||
|
export/distribution_type=1
|
||||||
|
binary_format/architecture="universal"
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=1
|
||||||
|
application/icon=""
|
||||||
|
application/icon_interpolation=4
|
||||||
|
application/bundle_identifier="com.imk.wickeddepths"
|
||||||
|
application/signature=""
|
||||||
|
application/app_category="Games"
|
||||||
|
application/short_version="1.0"
|
||||||
|
application/version="1.0"
|
||||||
|
application/copyright=""
|
||||||
|
application/copyright_localized={}
|
||||||
|
application/min_macos_version="10.12"
|
||||||
|
display/high_res=true
|
||||||
|
xcode/platform_build="14C18"
|
||||||
|
xcode/sdk_version="13.1"
|
||||||
|
xcode/sdk_build="22C55"
|
||||||
|
xcode/sdk_name="macosx13.1"
|
||||||
|
xcode/xcode_version="1420"
|
||||||
|
xcode/xcode_build="14C18"
|
||||||
|
codesign/codesign=1
|
||||||
|
codesign/installer_identity=""
|
||||||
|
codesign/apple_team_id=""
|
||||||
|
codesign/identity=""
|
||||||
|
codesign/entitlements/custom_file=""
|
||||||
|
codesign/entitlements/allow_jit_code_execution=false
|
||||||
|
codesign/entitlements/allow_unsigned_executable_memory=false
|
||||||
|
codesign/entitlements/allow_dyld_environment_variables=false
|
||||||
|
codesign/entitlements/disable_library_validation=false
|
||||||
|
codesign/entitlements/audio_input=false
|
||||||
|
codesign/entitlements/camera=false
|
||||||
|
codesign/entitlements/location=false
|
||||||
|
codesign/entitlements/address_book=false
|
||||||
|
codesign/entitlements/calendars=false
|
||||||
|
codesign/entitlements/photos_library=false
|
||||||
|
codesign/entitlements/apple_events=false
|
||||||
|
codesign/entitlements/debugging=false
|
||||||
|
codesign/entitlements/app_sandbox/enabled=false
|
||||||
|
codesign/entitlements/app_sandbox/network_server=false
|
||||||
|
codesign/entitlements/app_sandbox/network_client=false
|
||||||
|
codesign/entitlements/app_sandbox/device_usb=false
|
||||||
|
codesign/entitlements/app_sandbox/device_bluetooth=false
|
||||||
|
codesign/entitlements/app_sandbox/files_downloads=0
|
||||||
|
codesign/entitlements/app_sandbox/files_pictures=0
|
||||||
|
codesign/entitlements/app_sandbox/files_music=0
|
||||||
|
codesign/entitlements/app_sandbox/files_movies=0
|
||||||
|
codesign/entitlements/app_sandbox/helper_executables=[]
|
||||||
|
codesign/custom_options=PackedStringArray()
|
||||||
|
notarization/notarization=0
|
||||||
|
privacy/microphone_usage_description=""
|
||||||
|
privacy/microphone_usage_description_localized={}
|
||||||
|
privacy/camera_usage_description=""
|
||||||
|
privacy/camera_usage_description_localized={}
|
||||||
|
privacy/location_usage_description=""
|
||||||
|
privacy/location_usage_description_localized={}
|
||||||
|
privacy/address_book_usage_description=""
|
||||||
|
privacy/address_book_usage_description_localized={}
|
||||||
|
privacy/calendar_usage_description=""
|
||||||
|
privacy/calendar_usage_description_localized={}
|
||||||
|
privacy/photos_library_usage_description=""
|
||||||
|
privacy/photos_library_usage_description_localized={}
|
||||||
|
privacy/desktop_folder_usage_description=""
|
||||||
|
privacy/desktop_folder_usage_description_localized={}
|
||||||
|
privacy/documents_folder_usage_description=""
|
||||||
|
privacy/documents_folder_usage_description_localized={}
|
||||||
|
privacy/downloads_folder_usage_description=""
|
||||||
|
privacy/downloads_folder_usage_description_localized={}
|
||||||
|
privacy/network_volumes_usage_description=""
|
||||||
|
privacy/network_volumes_usage_description_localized={}
|
||||||
|
privacy/removable_volumes_usage_description=""
|
||||||
|
privacy/removable_volumes_usage_description_localized={}
|
||||||
|
ssh_remote_deploy/enabled=false
|
||||||
|
ssh_remote_deploy/host="user@host_ip"
|
||||||
|
ssh_remote_deploy/port="22"
|
||||||
|
ssh_remote_deploy/extra_args_ssh=""
|
||||||
|
ssh_remote_deploy/extra_args_scp=""
|
||||||
|
ssh_remote_deploy/run_script="#!/usr/bin/env bash
|
||||||
|
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||||
|
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
|
||||||
|
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||||
|
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
|
||||||
|
rm -rf \"{temp_dir}\""
|
||||||
|
|
||||||
|
[preset.2]
|
||||||
|
|
||||||
|
name="Web"
|
||||||
|
platform="Web"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../../desktop/pls work/index.html"
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
|
||||||
|
[preset.2.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
variant/extensions_support=false
|
||||||
|
vram_texture_compression/for_desktop=true
|
||||||
|
vram_texture_compression/for_mobile=false
|
||||||
|
html/export_icon=true
|
||||||
|
html/custom_html_shell=""
|
||||||
|
html/head_include=""
|
||||||
|
html/canvas_resize_policy=2
|
||||||
|
html/focus_canvas_on_start=true
|
||||||
|
html/experimental_virtual_keyboard=false
|
||||||
|
progressive_web_app/enabled=false
|
||||||
|
progressive_web_app/offline_page=""
|
||||||
|
progressive_web_app/display=1
|
||||||
|
progressive_web_app/orientation=0
|
||||||
|
progressive_web_app/icon_144x144=""
|
||||||
|
progressive_web_app/icon_180x180=""
|
||||||
|
progressive_web_app/icon_512x512=""
|
||||||
|
progressive_web_app/background_color=Color(0, 0, 0, 1)
|
22
falling platform.gd
Normal file
22
falling platform.gd
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
|
||||||
|
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if body.name == "plr" and $Sprite2D.visible and body.can_move:
|
||||||
|
$AnimationPlayer.play("shake")
|
||||||
|
await $AnimationPlayer.animation_finished
|
||||||
|
$Sprite2D.visible = false
|
||||||
|
$CollisionShape2D.disabled = true
|
||||||
|
$CPUParticles2D.emitting = true
|
||||||
|
$cooldown.start()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_cooldown_timeout():
|
||||||
|
$Sprite2D.visible = true
|
||||||
|
$CollisionShape2D.disabled = false
|
9
falling platform.tres
Normal file
9
falling platform.tres
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bj2fec1jrrmp2"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" path="res://shadow the hedgehog.gdshader" id="1_dpopf"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shader = ExtResource("1_dpopf")
|
||||||
|
shader_parameter/background_color = null
|
||||||
|
shader_parameter/shadow_color = null
|
||||||
|
shader_parameter/offset_in_pixels = Vector2(10, 10)
|
88
falling platform.tscn
Normal file
88
falling platform.tscn
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
[gd_scene load_steps=9 format=3 uid="uid://bhsonnkuhv084"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_5g584"]
|
||||||
|
[ext_resource type="Script" path="res://falling platform.gd" id="1_v2xtr"]
|
||||||
|
[ext_resource type="Shader" path="res://shadow the hedgehog.gdshader" id="1_vheun"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_b4b3u"]
|
||||||
|
shader = ExtResource("1_vheun")
|
||||||
|
shader_parameter/radius = 5.0
|
||||||
|
shader_parameter/modulate = null
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vtajb"]
|
||||||
|
size = Vector2(32, 5)
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_jolii"]
|
||||||
|
size = Vector2(32, 3)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_uia04"]
|
||||||
|
resource_name = "shake"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite2D:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.1001, 0.2, 0.3, 0.4, 0.4001, 0.5, 0.6, 0.7, 0.7001, 0.8, 0.9),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(-16, -2), Vector2(-16, -2), Vector2(-16, -1), Vector2(-16, -3), Vector2(-16, -1), Vector2(-16, -2), Vector2(-16, -1), Vector2(-16, -3), Vector2(-16, -1), Vector2(-16, -2), Vector2(-16, -1), Vector2(-16, -3), Vector2(-16, -1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_texqf"]
|
||||||
|
_data = {
|
||||||
|
"shake": SubResource("Animation_uia04")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="CharacterBody2D" type="CharacterBody2D"]
|
||||||
|
material = SubResource("ShaderMaterial_b4b3u")
|
||||||
|
script = ExtResource("1_v2xtr")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-16, -2)
|
||||||
|
texture = ExtResource("1_5g584")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(16, 283, 32, 5)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0, 0.5)
|
||||||
|
shape = SubResource("RectangleShape2D_vtajb")
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
position = Vector2(0, -3.5)
|
||||||
|
shape = SubResource("RectangleShape2D_jolii")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_texqf")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D" parent="."]
|
||||||
|
emitting = false
|
||||||
|
amount = 5
|
||||||
|
one_shot = true
|
||||||
|
direction = Vector2(0, 0)
|
||||||
|
spread = 180.0
|
||||||
|
gravity = Vector2(0, 160)
|
||||||
|
initial_velocity_min = 54.54
|
||||||
|
initial_velocity_max = 103.03
|
||||||
|
angular_velocity_min = -283.63
|
||||||
|
angular_velocity_max = -142.7
|
||||||
|
damping_min = 100.0
|
||||||
|
damping_max = 100.0
|
||||||
|
angle_min = -720.0
|
||||||
|
angle_max = 720.0
|
||||||
|
scale_amount_min = 0.0
|
||||||
|
scale_amount_max = 2.0
|
||||||
|
color = Color(0.54902, 0.309804, 0.262745, 1)
|
||||||
|
|
||||||
|
[node name="cooldown" type="Timer" parent="."]
|
||||||
|
wait_time = 3.0
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[connection signal="body_shape_entered" from="Area2D" to="." method="_on_area_2d_body_shape_entered"]
|
||||||
|
[connection signal="timeout" from="cooldown" to="." method="_on_cooldown_timeout"]
|
6
flip.gd
Normal file
6
flip.gd
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@tool
|
||||||
|
extends CharacterBody2D
|
||||||
|
@export var invert : bool = false
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
$Sprite2D.flip_h = invert
|
43
holecutscene.gd
Normal file
43
holecutscene.gd
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
extends CollisionShape2D
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
var done = false
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if done:
|
||||||
|
return
|
||||||
|
if body.name == "plr":
|
||||||
|
body.can_move = false
|
||||||
|
body.get_node("AnimatedSprite2D").play("idle")
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
tweener.tween_property(get_parent().get_parent().get_node("AudioStreamPlayer"),"volume_db",-100,2)
|
||||||
|
await tweener.finished
|
||||||
|
get_parent().get_parent().get_node("AudioStreamPlayer").stop()
|
||||||
|
get_parent().get_parent().get_node("the_hole").play()
|
||||||
|
var campos = body.get_node("Camera2D").global_position
|
||||||
|
var campos2 = get_parent().get_parent().get_node("CamPos").position
|
||||||
|
tweener = get_tree().create_tween()
|
||||||
|
tweener.tween_property(body.get_node("Camera2D"),"global_position",campos2,15)
|
||||||
|
await tweener.finished
|
||||||
|
tweener = get_tree().create_tween()
|
||||||
|
tweener.tween_property(body.get_node("Camera2D"),"global_position",campos,5)
|
||||||
|
await tweener.finished
|
||||||
|
var dial = body.get_node("Camera2D/dialogue")
|
||||||
|
dial.visible = true
|
||||||
|
dial.dialogue("Oh my.","upsidedown",0.5)
|
||||||
|
await get_parent().get_parent().proceed
|
||||||
|
dial.dialogue("I cannot believe my eyes.","normal",0.5)
|
||||||
|
await get_parent().get_parent().proceed
|
||||||
|
dial.dialogue("Well... Let's get down to business.","normal",0.5)
|
||||||
|
await get_parent().get_parent().proceed
|
||||||
|
dial.visible = false
|
||||||
|
body.can_move = true
|
||||||
|
done = true
|
24
hurt.wav.import
Normal file
24
hurt.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://jcvrmvfs3xyh"
|
||||||
|
path="res://.godot/imported/hurt.wav-2cb5c2fa6a1da6cff830b5c940b3b10a.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://hurt.wav"
|
||||||
|
dest_files=["res://.godot/imported/hurt.wav-2cb5c2fa6a1da6cff830b5c940b3b10a.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
1
icon.svg
Normal file
1
icon.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>
|
After Width: | Height: | Size: 950 B |
37
icon.svg.import
Normal file
37
icon.svg.import
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c73xjysqnxhnl"
|
||||||
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.svg"
|
||||||
|
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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
|
24
ladder.gd
Normal file
24
ladder.gd
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
var player = false
|
||||||
|
var the_player = get_parent().get_node("plr")
|
||||||
|
var overlap = $ladder.get_overlapping_bodies()
|
||||||
|
for i in overlap:
|
||||||
|
if i.name == "plr":
|
||||||
|
player = true
|
||||||
|
the_player = i
|
||||||
|
|
||||||
|
if player:
|
||||||
|
if Input.is_action_just_pressed("interact") or Input.is_action_just_pressed("ui_up") or Input.is_action_just_pressed("ui_down"):
|
||||||
|
the_player.ladder = self
|
||||||
|
the_player.on_ladder = true
|
||||||
|
elif the_player.ladder == self:
|
||||||
|
the_player.on_ladder = false
|
19
ladder.tscn
Normal file
19
ladder.tscn
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://dhnuuq6nyb06p"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_1hbxe"]
|
||||||
|
[ext_resource type="Script" path="res://ladder.gd" id="1_1t8bt"]
|
||||||
|
|
||||||
|
[node name="ladder" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_1t8bt")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-6, -23)
|
||||||
|
texture = ExtResource("1_1hbxe")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(240, 258, 12, 46)
|
||||||
|
|
||||||
|
[node name="ladder" type="Area2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="ladder"]
|
||||||
|
polygon = PackedVector2Array(-6, -22, -6, -15, -6, 22, 6, 22, 6, -22)
|
28
lamp.tscn
Normal file
28
lamp.tscn
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://b87fj1agx6p6l"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://flip.gd" id="1_33rdy"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_t5acf"]
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ddu6t"]
|
||||||
|
noise_type = 3
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_elwfk"]
|
||||||
|
width = 10
|
||||||
|
height = 1
|
||||||
|
noise = SubResource("FastNoiseLite_ddu6t")
|
||||||
|
|
||||||
|
[node name="lamp" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_33rdy")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-8, -24)
|
||||||
|
texture = ExtResource("1_t5acf")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(102, 12, 18, 35)
|
||||||
|
|
||||||
|
[node name="PointLight2D" type="PointLight2D" parent="."]
|
||||||
|
position = Vector2(1, -19)
|
||||||
|
range_z_min = -1
|
||||||
|
range_z_max = 1
|
||||||
|
texture = SubResource("NoiseTexture2D_elwfk")
|
BIN
logo.aseprite
Normal file
BIN
logo.aseprite
Normal file
Binary file not shown.
34
logo.png.import
Normal file
34
logo.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bnu54l0yr376b"
|
||||||
|
path="res://.godot/imported/logo.png-cca8726399059c8d4f806e28e356b14d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://logo.png"
|
||||||
|
dest_files=["res://.godot/imported/logo.png-cca8726399059c8d4f806e28e356b14d.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
|
123
main.tscn
Normal file
123
main.tscn
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
[gd_scene load_steps=6 format=3 uid="uid://du6nvw5y77il3"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bdncoo2t66e58" path="res://plr.tscn" id="1_j7a0h"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://n72os6i7xjq0" path="res://cloud.tscn" id="1_kfkva"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bhsonnkuhv084" path="res://falling platform.tscn" id="3_amck2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b2eqjtv8oxnjx" path="res://moving_platform.tscn" id="4_dg4mb"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xo6cy"]
|
||||||
|
size = Vector2(1168, 235)
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D" parent="."]
|
||||||
|
scale = Vector2(0.463094, 0.333576)
|
||||||
|
|
||||||
|
[node name="StaticBody2D" type="StaticBody2D" parent="Node2D"]
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Node2D/StaticBody2D"]
|
||||||
|
offset_left = -15.0
|
||||||
|
offset_top = 474.0
|
||||||
|
offset_right = 1153.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D/StaticBody2D"]
|
||||||
|
position = Vector2(569, 591)
|
||||||
|
shape = SubResource("RectangleShape2D_xo6cy")
|
||||||
|
|
||||||
|
[node name="StaticBody2D2" type="StaticBody2D" parent="Node2D"]
|
||||||
|
position = Vector2(46, -639)
|
||||||
|
scale = Vector2(0.0447952, 1.66806)
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Node2D/StaticBody2D2"]
|
||||||
|
offset_left = -15.0
|
||||||
|
offset_top = 474.0
|
||||||
|
offset_right = 1153.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D/StaticBody2D2"]
|
||||||
|
position = Vector2(569, 591)
|
||||||
|
shape = SubResource("RectangleShape2D_xo6cy")
|
||||||
|
|
||||||
|
[node name="StaticBody2D3" type="StaticBody2D" parent="Node2D"]
|
||||||
|
position = Vector2(240, -646)
|
||||||
|
scale = Vector2(0.0447952, 1.66806)
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Node2D/StaticBody2D3"]
|
||||||
|
offset_left = -15.0
|
||||||
|
offset_top = 474.0
|
||||||
|
offset_right = 1153.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D/StaticBody2D3"]
|
||||||
|
position = Vector2(569, 591)
|
||||||
|
shape = SubResource("RectangleShape2D_xo6cy")
|
||||||
|
|
||||||
|
[node name="StaticBody2D4" type="StaticBody2D" parent="Node2D"]
|
||||||
|
position = Vector2(437, 7)
|
||||||
|
scale = Vector2(0.148027, 0.37178)
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Node2D/StaticBody2D4"]
|
||||||
|
offset_left = -15.0
|
||||||
|
offset_top = 474.0
|
||||||
|
offset_right = 1153.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D/StaticBody2D4"]
|
||||||
|
position = Vector2(569, 591)
|
||||||
|
shape = SubResource("RectangleShape2D_xo6cy")
|
||||||
|
|
||||||
|
[node name="StaticBody2D5" type="StaticBody2D" parent="Node2D"]
|
||||||
|
position = Vector2(758, 133)
|
||||||
|
scale = Vector2(0.148027, 0.37178)
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Node2D/StaticBody2D5"]
|
||||||
|
offset_left = -15.0
|
||||||
|
offset_top = 474.0
|
||||||
|
offset_right = 1153.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D/StaticBody2D5"]
|
||||||
|
position = Vector2(569, 591)
|
||||||
|
shape = SubResource("RectangleShape2D_xo6cy")
|
||||||
|
|
||||||
|
[node name="StaticBody2D6" type="StaticBody2D" parent="Node2D"]
|
||||||
|
position = Vector2(889, -37)
|
||||||
|
scale = Vector2(0.148027, 0.37178)
|
||||||
|
collision_layer = 3
|
||||||
|
|
||||||
|
[node name="ColorRect" type="ColorRect" parent="Node2D/StaticBody2D6"]
|
||||||
|
offset_left = -15.0
|
||||||
|
offset_top = 474.0
|
||||||
|
offset_right = 1153.0
|
||||||
|
offset_bottom = 709.0
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Node2D/StaticBody2D6"]
|
||||||
|
position = Vector2(569, 591)
|
||||||
|
shape = SubResource("RectangleShape2D_xo6cy")
|
||||||
|
|
||||||
|
[node name="cloud" parent="." instance=ExtResource("1_kfkva")]
|
||||||
|
visible = false
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[node name="plr" parent="." instance=ExtResource("1_j7a0h")]
|
||||||
|
position = Vector2(82, 126)
|
||||||
|
|
||||||
|
[node name="CharacterBody2D" parent="." instance=ExtResource("3_amck2")]
|
||||||
|
position = Vector2(171, 83)
|
||||||
|
|
||||||
|
[node name="MovingPlatform" parent="." instance=ExtResource("4_dg4mb")]
|
||||||
|
position = Vector2(169, 33)
|
||||||
|
pos1 = Vector2(83, 30)
|
||||||
|
pos2 = Vector2(229, 31)
|
||||||
|
|
||||||
|
[node name="Marker2D" type="Marker2D" parent="."]
|
||||||
|
position = Vector2(83, 30)
|
||||||
|
|
||||||
|
[node name="Marker2D2" type="Marker2D" parent="."]
|
||||||
|
position = Vector2(229, 31)
|
19
menu.ogg.import
Normal file
19
menu.ogg.import
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://c8dkwi4a2midq"
|
||||||
|
path="res://.godot/imported/menu.ogg-5ef9a33c7c85f60bb9731999734a1568.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://menu.ogg"
|
||||||
|
dest_files=["res://.godot/imported/menu.ogg-5ef9a33c7c85f60bb9731999734a1568.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
24
move.wav.import
Normal file
24
move.wav.import
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://ba0nag2pymsps"
|
||||||
|
path="res://.godot/imported/move.wav-f85ee16066a061629a52fc644a858326.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://move.wav"
|
||||||
|
dest_files=["res://.godot/imported/move.wav-f85ee16066a061629a52fc644a858326.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=0
|
42
moving_platform.tscn
Normal file
42
moving_platform.tscn
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://b2eqjtv8oxnjx"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://MovingPlatform.gd" id="1_5ypkw"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="2_xvef3"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_l8va0"]
|
||||||
|
size = Vector2(32, 5)
|
||||||
|
|
||||||
|
[node name="MovingPlatform" type="Node2D"]
|
||||||
|
script = ExtResource("1_5ypkw")
|
||||||
|
pos2 = Vector2(0, 0)
|
||||||
|
|
||||||
|
[node name="start" type="Marker2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="start"]
|
||||||
|
position = Vector2(-16, 0)
|
||||||
|
texture = ExtResource("2_xvef3")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(400, 299, 32, 5)
|
||||||
|
|
||||||
|
[node name="end" type="Marker2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="end"]
|
||||||
|
position = Vector2(-16, 0)
|
||||||
|
texture = ExtResource("2_xvef3")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(400, 299, 32, 5)
|
||||||
|
|
||||||
|
[node name="Platform" type="CharacterBody2D" parent="."]
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="Platform"]
|
||||||
|
position = Vector2(-16, 0)
|
||||||
|
texture = ExtResource("2_xvef3")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(352, 299, 32, 5)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Platform"]
|
||||||
|
position = Vector2(0, 2.5)
|
||||||
|
shape = SubResource("RectangleShape2D_l8va0")
|
531
nod3D0F.tmp
Normal file
531
nod3D0F.tmp
Normal file
File diff suppressed because one or more lines are too long
531
nod673E.tmp
Normal file
531
nod673E.tmp
Normal file
File diff suppressed because one or more lines are too long
55
node_2d.gd
Normal file
55
node_2d.gd
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
var dialogue
|
||||||
|
|
||||||
|
signal proceed
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
$plr.can_move = false
|
||||||
|
$plr/AnimatedSprite2D.visible = false
|
||||||
|
if SaveHandler.settings["LoadSave"]:
|
||||||
|
$CheckPoints.current = get_node(str("CheckPoints/")+SaveHandler.settings["checkpoint"])
|
||||||
|
if not typeof($CheckPoints.current) == TYPE_NIL:
|
||||||
|
$plr.position = $CheckPoints.current.position
|
||||||
|
$cloud.enabled = true
|
||||||
|
$plr.can_move = true
|
||||||
|
$plr/AnimatedSprite2D.visible = true
|
||||||
|
var tweener2 = get_tree().create_tween()
|
||||||
|
tweener2.set_trans(Tween.TRANS_SINE)
|
||||||
|
tweener2.tween_property($plr/CanvasLayer/fadeout,"size",Vector2(1152,0),3)
|
||||||
|
$the_hole.play()
|
||||||
|
await tweener2.finished
|
||||||
|
return
|
||||||
|
var tweener2 = get_tree().create_tween()
|
||||||
|
tweener2.set_trans(Tween.TRANS_SINE)
|
||||||
|
tweener2.tween_property($plr/CanvasLayer/fadeout,"size",Vector2(1152,0),3)
|
||||||
|
$AudioStreamPlayer.play()
|
||||||
|
await tweener2.finished
|
||||||
|
|
||||||
|
dialogue = $plr/Camera2D/dialogue
|
||||||
|
#dialogue.dialogue("haiiii :3","",0.5)
|
||||||
|
|
||||||
|
|
||||||
|
await get_tree().create_timer(0.2).timeout
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
$fakeplr.play("move")
|
||||||
|
tweener.tween_property($fakeplr,"position",$plr/AnimatedSprite2D.global_position,5)
|
||||||
|
await tweener.finished
|
||||||
|
$plr/AnimatedSprite2D.visible = true
|
||||||
|
$plr/AnimatedSprite2D.play("idle")
|
||||||
|
$fakeplr.visible = false
|
||||||
|
$plr/Camera2D/dialogue.dialogue("The hole should be near me.","nervous",0.5)
|
||||||
|
$plr/Camera2D/dialogue.visible = true
|
||||||
|
await proceed
|
||||||
|
$plr/Camera2D/dialogue.dialogue("I hope what I read wasn't fake news.","upsidedown",0.5)
|
||||||
|
await proceed
|
||||||
|
$plr/Camera2D/dialogue.dialogue("I haven't got the chance to climb in a hole for a long time.","nervous",0.5)
|
||||||
|
await proceed
|
||||||
|
$plr/Camera2D/dialogue.visible = false
|
||||||
|
$plr.can_move = true
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
if Input.is_action_just_pressed("interact") or Input.is_action_just_pressed("dialogue interact"):
|
||||||
|
print("hi")
|
||||||
|
proceed.emit()
|
1573
node_2d.tscn
Normal file
1573
node_2d.tscn
Normal file
File diff suppressed because one or more lines are too long
19
platform.tscn
Normal file
19
platform.tscn
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://b8rvllt13xio"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_adm44"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_n7m64"]
|
||||||
|
size = Vector2(32, 5)
|
||||||
|
|
||||||
|
[node name="Platform" type="CharacterBody2D"]
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-16, -2)
|
||||||
|
texture = ExtResource("1_adm44")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(64, 267, 32, 5)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0, 0.5)
|
||||||
|
shape = SubResource("RectangleShape2D_n7m64")
|
219
plr.gd
Normal file
219
plr.gd
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const JUMP_VELOCITY = -260
|
||||||
|
|
||||||
|
# Get the gravity from the project settings to be synced with RigidBody nodes.
|
||||||
|
var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")
|
||||||
|
var dir = "none"
|
||||||
|
|
||||||
|
var airjump = false
|
||||||
|
var tweener1
|
||||||
|
var tweener2
|
||||||
|
|
||||||
|
var ignore = Vector2(0,0)
|
||||||
|
var wall = "none"
|
||||||
|
|
||||||
|
var can_jump = true
|
||||||
|
|
||||||
|
var first_air = false
|
||||||
|
|
||||||
|
var tweener = ""
|
||||||
|
|
||||||
|
var defspeed = 100
|
||||||
|
var sprintspeed = 150
|
||||||
|
var SPEED = defspeed
|
||||||
|
|
||||||
|
var can_move = true
|
||||||
|
|
||||||
|
@export var on_ladder = false
|
||||||
|
@export var ladder : CharacterBody2D
|
||||||
|
|
||||||
|
var cool = 0.6
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
tweener1 = get_tree().create_tween()
|
||||||
|
tweener2 = get_tree().create_tween()
|
||||||
|
func _physics_process(delta):
|
||||||
|
|
||||||
|
if on_ladder:
|
||||||
|
if not Input.is_action_pressed("sprint") and SPEED != defspeed:
|
||||||
|
SPEED = defspeed
|
||||||
|
tweener = get_tree().create_tween()
|
||||||
|
velocity = Vector2(0,0)
|
||||||
|
$Left/CPUParticles2D.emitting = false
|
||||||
|
$right/CPUParticles2D.emitting = false
|
||||||
|
$AnimatedSprite2D.play("idle")
|
||||||
|
|
||||||
|
if Input.is_action_pressed("ui_up"):
|
||||||
|
velocity.y += -1 * SPEED * 0.5
|
||||||
|
if Input.is_action_pressed("ui_down"):
|
||||||
|
velocity.y += 1 * SPEED * 0.5
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("ui_accept"):
|
||||||
|
velocity.y = JUMP_VELOCITY
|
||||||
|
on_ladder = false
|
||||||
|
move_and_slide()
|
||||||
|
return
|
||||||
|
if Input.is_action_just_pressed("ui_left") or Input.is_action_just_pressed("ui_right"):
|
||||||
|
|
||||||
|
on_ladder = false
|
||||||
|
airjump = true
|
||||||
|
$LedgeAssistWall.start()
|
||||||
|
|
||||||
|
move_and_slide()
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
if not can_move:
|
||||||
|
if not Input.is_action_pressed("sprint") and SPEED != defspeed:
|
||||||
|
SPEED = defspeed
|
||||||
|
tweener = get_tree().create_tween()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("sprint"):
|
||||||
|
|
||||||
|
if not str(tweener) == "":
|
||||||
|
tweener.stop()
|
||||||
|
|
||||||
|
tweener = get_tree().create_tween()
|
||||||
|
tweener.tween_property(self,"SPEED",sprintspeed,1)
|
||||||
|
|
||||||
|
elif Input.is_action_just_released("sprint"):
|
||||||
|
if not str(tweener) == "":
|
||||||
|
tweener.stop()
|
||||||
|
tweener = get_tree().create_tween()
|
||||||
|
tweener.tween_property(self,"SPEED",defspeed,0.3)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if not is_on_floor():
|
||||||
|
velocity.y += gravity * delta
|
||||||
|
if can_jump and first_air:
|
||||||
|
first_air = false
|
||||||
|
$LedgeAssist.start(0.05)
|
||||||
|
|
||||||
|
if is_on_floor():
|
||||||
|
ignore = Vector2(0,0)
|
||||||
|
can_jump = true
|
||||||
|
|
||||||
|
|
||||||
|
first_air = is_on_floor() or is_on_wall_only()
|
||||||
|
|
||||||
|
if not is_on_wall_only():
|
||||||
|
wall = "none"
|
||||||
|
# Handle Jump.
|
||||||
|
if Input.is_action_just_pressed("ui_accept") and can_jump or airjump and Input.is_action_just_pressed("ui_accept"):
|
||||||
|
can_jump = false
|
||||||
|
velocity.y = JUMP_VELOCITY
|
||||||
|
$AnimatedSprite2D.play("jump")
|
||||||
|
if airjump:
|
||||||
|
if wall == "right":
|
||||||
|
ignore.y = 1
|
||||||
|
ignore.x = 0
|
||||||
|
$leftt.stop()
|
||||||
|
$rightt.start(cool)
|
||||||
|
elif wall == "left":
|
||||||
|
ignore.x = 1
|
||||||
|
ignore.y = 0
|
||||||
|
$rightt.stop()
|
||||||
|
$leftt.start(cool)
|
||||||
|
wall = "none"
|
||||||
|
airjump = false
|
||||||
|
|
||||||
|
|
||||||
|
# Get the input direction and handle the movement/deceleration.
|
||||||
|
# As good practice, you should replace UI actions with custom gameplay actions.
|
||||||
|
var direction = Input.get_axis("ui_left", "ui_right")
|
||||||
|
|
||||||
|
if direction == -1:
|
||||||
|
dir = "left"
|
||||||
|
if wall == "none":
|
||||||
|
$AnimatedSprite2D.flip_h = true
|
||||||
|
else:
|
||||||
|
$AnimatedSprite2D.flip_h = false
|
||||||
|
elif direction == 1:
|
||||||
|
dir = "right"
|
||||||
|
if wall == "none":
|
||||||
|
$AnimatedSprite2D.flip_h = false
|
||||||
|
else:
|
||||||
|
$AnimatedSprite2D.flip_h = true
|
||||||
|
else:
|
||||||
|
dir = "none"
|
||||||
|
if velocity.y == 0:
|
||||||
|
$AnimatedSprite2D.play("idle")
|
||||||
|
elif not $AnimatedSprite2D.animation == "jump":
|
||||||
|
$AnimatedSprite2D.play("jump")
|
||||||
|
|
||||||
|
if Input.is_action_just_pressed("lookdown"):
|
||||||
|
if tweener1.is_running():
|
||||||
|
tweener1.stop()
|
||||||
|
tweener2 = get_tree().create_tween()
|
||||||
|
tweener2.tween_property($Camera2D,"offset",Vector2(0,50),0.5)
|
||||||
|
elif Input.is_action_just_released("lookdown"):
|
||||||
|
if tweener2.is_running():
|
||||||
|
tweener2.stop()
|
||||||
|
tweener1 = get_tree().create_tween()
|
||||||
|
tweener1.tween_property($Camera2D,"offset",Vector2(0,0),0.5)
|
||||||
|
print($Camera2D.offset)
|
||||||
|
|
||||||
|
if direction:
|
||||||
|
velocity.x = direction * SPEED
|
||||||
|
else:
|
||||||
|
velocity.x = move_toward(velocity.x, 0, SPEED)
|
||||||
|
|
||||||
|
if not velocity.x == 0 and velocity.y == 0:
|
||||||
|
$AnimatedSprite2D.play("move")
|
||||||
|
|
||||||
|
|
||||||
|
if not is_on_floor() and not on_ladder:
|
||||||
|
var left_collide = $Left.get_overlapping_bodies()
|
||||||
|
var right_collide = $right.get_overlapping_bodies()
|
||||||
|
if dir == "left" and len($Left.get_overlapping_bodies()) >= 1 and not ignore.x:
|
||||||
|
velocity.y *= 0.6
|
||||||
|
wall = "left"
|
||||||
|
$Left/CPUParticles2D.emitting = true
|
||||||
|
$right/CPUParticles2D.emitting = false
|
||||||
|
$AnimatedSprite2D.play("wall")
|
||||||
|
airjump = true
|
||||||
|
elif dir == "right" and len($right.get_overlapping_bodies()) >= 1 and not ignore.y:
|
||||||
|
velocity.y *= 0.6
|
||||||
|
wall = "right"
|
||||||
|
$right/CPUParticles2D.emitting = true
|
||||||
|
$Left/CPUParticles2D.emitting = false
|
||||||
|
$AnimatedSprite2D.play("wall")
|
||||||
|
airjump = true
|
||||||
|
else:
|
||||||
|
$Left/CPUParticles2D.emitting = false
|
||||||
|
$right/CPUParticles2D.emitting = false
|
||||||
|
if airjump:
|
||||||
|
$LedgeAssistWall.start()
|
||||||
|
else:
|
||||||
|
airjump = false
|
||||||
|
else:
|
||||||
|
$Left/CPUParticles2D.emitting = false
|
||||||
|
$right/CPUParticles2D.emitting = false
|
||||||
|
|
||||||
|
move_and_slide()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_leftt_timeout():
|
||||||
|
ignore.x = 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_rightt_timeout():
|
||||||
|
ignore.y = 0
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ledge_assist_timeout():
|
||||||
|
can_jump = false
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ledge_assist_wall_timeout():
|
||||||
|
airjump = false
|
34
plr.png.import
Normal file
34
plr.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cay38nkmtth7e"
|
||||||
|
path="res://.godot/imported/plr.png-601476af0b5f8e062abf6e068157bf7c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://plr.png"
|
||||||
|
dest_files=["res://.godot/imported/plr.png-601476af0b5f8e062abf6e068157bf7c.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
|
10
plr.tres
Normal file
10
plr.tres
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[gd_resource type="Theme" load_steps=2 format=3 uid="uid://doj6uvro8nygh"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://3pvmifrm3xhh" path="res://HackerBasic.ttf" id="1_12na6"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
RichTextLabel/colors/font_outline_color = Color(0, 0, 0, 1)
|
||||||
|
RichTextLabel/constants/line_separation = -5
|
||||||
|
RichTextLabel/font_sizes/bold_font_size = 16
|
||||||
|
RichTextLabel/font_sizes/normal_font_size = 16
|
||||||
|
RichTextLabel/fonts/normal_font = ExtResource("1_12na6")
|
355
plr.tscn
Normal file
355
plr.tscn
Normal file
@ -0,0 +1,355 @@
|
|||||||
|
[gd_scene load_steps=33 format=3 uid="uid://bdncoo2t66e58"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://plr.gd" id="1_ub5ic"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dvrxgvepbbhl7" path="res://silly_fella.png" id="2_hijeb"]
|
||||||
|
[ext_resource type="Material" uid="uid://btj4q14v2jd0t" path="res://vingette.tres" id="3_2p62w"]
|
||||||
|
[ext_resource type="Script" path="res://scroll.gd" id="3_vv75q"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="4_id5lh"]
|
||||||
|
[ext_resource type="Script" path="res://typewrite.gd" id="5_68akq"]
|
||||||
|
[ext_resource type="Theme" uid="uid://doj6uvro8nygh" path="res://plr.tres" id="6_qo7h3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://btw7cy3q5fxng" path="res://explorer.png" id="7_d3k28"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bdpql7v8x0ajy" path="res://beep.wav" id="7_d3xbw"]
|
||||||
|
[ext_resource type="Shader" path="res://blur.gdshader" id="9_axrdm"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_xil0x"]
|
||||||
|
size = Vector2(6, 15)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_yljtm"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(0, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_t5nf3"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(16, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_odf15"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(32, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_d2unb"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(96, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_jm6aj"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(112, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_p3ah2"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(144, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_7kh7l"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(48, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ds08w"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(64, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_708w7"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(80, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_mpv1h"]
|
||||||
|
atlas = ExtResource("2_hijeb")
|
||||||
|
region = Rect2(128, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_q5dbt"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_yljtm")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_t5nf3")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_odf15")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_t5nf3")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"idle",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_d2unb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_jm6aj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_d2unb")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_p3ah2")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"jump",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_7kh7l")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ds08w")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_708w7")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ds08w")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"move",
|
||||||
|
"speed": 7.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_mpv1h")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"wall",
|
||||||
|
"speed": 5.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1r4pd"]
|
||||||
|
size = Vector2(1.5, 12.5)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_hdeoh"]
|
||||||
|
atlas = ExtResource("4_id5lh")
|
||||||
|
region = Rect2(335, 220, 114, 53)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_vvr4i"]
|
||||||
|
atlas = ExtResource("4_id5lh")
|
||||||
|
region = Rect2(401, 192, 14, 11)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_2jfhy"]
|
||||||
|
atlas = ExtResource("4_id5lh")
|
||||||
|
region = Rect2(417, 193, 14, 11)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_7ahja"]
|
||||||
|
atlas = ExtResource("4_id5lh")
|
||||||
|
region = Rect2(433, 193, 14, 11)
|
||||||
|
|
||||||
|
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_1bc3s"]
|
||||||
|
load_path = "res://.godot/imported/sheet1.png-df3b94edccf6a27528de01b5fa16fed6.ctex"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kp2us"]
|
||||||
|
shader = ExtResource("9_axrdm")
|
||||||
|
shader_parameter/blur_amount = 0.291
|
||||||
|
shader_parameter/color = null
|
||||||
|
shader_parameter/multiplier = -5.98
|
||||||
|
shader_parameter/softness = 3.12
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_h3c1q"]
|
||||||
|
resource_name = "death"
|
||||||
|
length = 0.1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("AnimatedSprite2D:modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 1), Color(0, 0, 0, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_jpfe0"]
|
||||||
|
resource_name = "new_animation"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a2qok"]
|
||||||
|
_data = {
|
||||||
|
"death": SubResource("Animation_h3c1q"),
|
||||||
|
"new_animation": SubResource("Animation_jpfe0")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="plr" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_ub5ic")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0, -4.5)
|
||||||
|
shape = SubResource("RectangleShape2D_xil0x")
|
||||||
|
|
||||||
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
|
position = Vector2(-8, -13)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_q5dbt")
|
||||||
|
animation = &"jump"
|
||||||
|
frame = 3
|
||||||
|
frame_progress = 1.0
|
||||||
|
centered = false
|
||||||
|
|
||||||
|
[node name="Left" type="Area2D" parent="."]
|
||||||
|
position = Vector2(-7, 7)
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 2
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Left"]
|
||||||
|
position = Vector2(4, -11.75)
|
||||||
|
shape = SubResource("RectangleShape2D_1r4pd")
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D" parent="Left"]
|
||||||
|
position = Vector2(4, -10)
|
||||||
|
emitting = false
|
||||||
|
amount = 10
|
||||||
|
randomness = 0.8
|
||||||
|
lifetime_randomness = 1.0
|
||||||
|
emission_shape = 3
|
||||||
|
emission_rect_extents = Vector2(1, 1)
|
||||||
|
spread = 180.0
|
||||||
|
gravity = Vector2(0, 50)
|
||||||
|
angular_velocity_max = 58.18
|
||||||
|
angle_max = 29.1
|
||||||
|
scale_amount_min = 0.5
|
||||||
|
color = Color(0.698039, 0.698039, 0.698039, 1)
|
||||||
|
|
||||||
|
[node name="right" type="Area2D" parent="."]
|
||||||
|
position = Vector2(7, -4)
|
||||||
|
collision_layer = 2
|
||||||
|
collision_mask = 2
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="right"]
|
||||||
|
position = Vector2(-3.75, -1)
|
||||||
|
shape = SubResource("RectangleShape2D_1r4pd")
|
||||||
|
|
||||||
|
[node name="CPUParticles2D" type="CPUParticles2D" parent="right"]
|
||||||
|
position = Vector2(-4, 1)
|
||||||
|
emitting = false
|
||||||
|
amount = 10
|
||||||
|
randomness = 0.8
|
||||||
|
lifetime_randomness = 1.0
|
||||||
|
emission_shape = 3
|
||||||
|
emission_rect_extents = Vector2(1, 1)
|
||||||
|
spread = 180.0
|
||||||
|
gravity = Vector2(0, 50)
|
||||||
|
angular_velocity_max = 58.18
|
||||||
|
angle_max = 29.1
|
||||||
|
scale_amount_min = 0.5
|
||||||
|
color = Color(0.698039, 0.698039, 0.698039, 1)
|
||||||
|
|
||||||
|
[node name="rightt" type="Timer" parent="."]
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="leftt" type="Timer" parent="."]
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="LedgeAssist" type="Timer" parent="."]
|
||||||
|
wait_time = 0.05
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="LedgeAssistWall" type="Timer" parent="."]
|
||||||
|
wait_time = 0.02
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="Camera2D" type="Camera2D" parent="."]
|
||||||
|
position = Vector2(2, -16)
|
||||||
|
zoom = Vector2(5, 5)
|
||||||
|
limit_left = -391
|
||||||
|
limit_smoothed = true
|
||||||
|
drag_horizontal_enabled = true
|
||||||
|
drag_vertical_enabled = true
|
||||||
|
drag_top_margin = 0.35
|
||||||
|
drag_right_margin = 0.35
|
||||||
|
drag_bottom_margin = 0.0
|
||||||
|
script = ExtResource("3_vv75q")
|
||||||
|
|
||||||
|
[node name="dialogue" type="Sprite2D" parent="Camera2D"]
|
||||||
|
visible = false
|
||||||
|
z_index = 4096
|
||||||
|
position = Vector2(-58, -62)
|
||||||
|
texture = SubResource("AtlasTexture_hdeoh")
|
||||||
|
centered = false
|
||||||
|
script = ExtResource("5_68akq")
|
||||||
|
|
||||||
|
[node name="RichTextLabel" type="RichTextLabel" parent="Camera2D/dialogue"]
|
||||||
|
clip_contents = false
|
||||||
|
offset_left = 3.0
|
||||||
|
offset_top = 11.0
|
||||||
|
offset_right = 111.0
|
||||||
|
offset_bottom = 51.0
|
||||||
|
theme = ExtResource("6_qo7h3")
|
||||||
|
scroll_active = false
|
||||||
|
|
||||||
|
[node name="Timer" type="Timer" parent="Camera2D/dialogue"]
|
||||||
|
one_shot = true
|
||||||
|
|
||||||
|
[node name="Icons" type="Node2D" parent="Camera2D/dialogue"]
|
||||||
|
|
||||||
|
[node name="normal" type="Sprite2D" parent="Camera2D/dialogue/Icons"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(6, 4)
|
||||||
|
texture = SubResource("AtlasTexture_vvr4i")
|
||||||
|
centered = false
|
||||||
|
|
||||||
|
[node name="nervous" type="Sprite2D" parent="Camera2D/dialogue/Icons"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(6, 4)
|
||||||
|
texture = SubResource("AtlasTexture_2jfhy")
|
||||||
|
centered = false
|
||||||
|
|
||||||
|
[node name="upsidedown" type="Sprite2D" parent="Camera2D/dialogue/Icons"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(6, 4)
|
||||||
|
texture = SubResource("AtlasTexture_7ahja")
|
||||||
|
centered = false
|
||||||
|
|
||||||
|
[node name="explorer" type="Sprite2D" parent="Camera2D/dialogue/Icons"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(6, 2)
|
||||||
|
texture = ExtResource("7_d3k28")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(7, 5, 15, 13)
|
||||||
|
|
||||||
|
[node name="spike" type="Sprite2D" parent="Camera2D/dialogue/Icons"]
|
||||||
|
visible = false
|
||||||
|
position = Vector2(6, 13)
|
||||||
|
texture = SubResource("CompressedTexture2D_1bc3s")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(320, 190, 15, 2)
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="Camera2D/dialogue"]
|
||||||
|
stream = ExtResource("7_d3xbw")
|
||||||
|
volume_db = -10.576
|
||||||
|
max_polyphony = 7
|
||||||
|
|
||||||
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
layer = 20
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="blur" type="ColorRect" parent="CanvasLayer"]
|
||||||
|
z_index = 40
|
||||||
|
material = SubResource("ShaderMaterial_kp2us")
|
||||||
|
offset_right = 1152.0
|
||||||
|
offset_bottom = 648.0
|
||||||
|
|
||||||
|
[node name="vingette" type="ColorRect" parent="CanvasLayer"]
|
||||||
|
z_index = 90
|
||||||
|
material = ExtResource("3_2p62w")
|
||||||
|
offset_right = 1152.0
|
||||||
|
offset_bottom = 648.0
|
||||||
|
|
||||||
|
[node name="fadeout" type="ColorRect" parent="CanvasLayer"]
|
||||||
|
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="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
"": SubResource("AnimationLibrary_a2qok")
|
||||||
|
}
|
||||||
|
|
||||||
|
[connection signal="timeout" from="rightt" to="." method="_on_rightt_timeout"]
|
||||||
|
[connection signal="timeout" from="leftt" to="." method="_on_leftt_timeout"]
|
||||||
|
[connection signal="timeout" from="LedgeAssist" to="." method="_on_ledge_assist_timeout"]
|
||||||
|
[connection signal="timeout" from="LedgeAssistWall" to="." method="_on_ledge_assist_wall_timeout"]
|
87
project.godot
Normal file
87
project.godot
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=5
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="wicked depths"
|
||||||
|
run/main_scene="res://menu.tscn"
|
||||||
|
config/features=PackedStringArray("4.2", "GL Compatibility")
|
||||||
|
config/icon="res://plr.png"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
SaveHandler="*res://SaveHandler.tscn"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/resizable=false
|
||||||
|
window/stretch/mode="canvas_items"
|
||||||
|
window/stretch/aspect="expand"
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
ui_accept={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_left={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
|
||||||
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"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":65,"key_label":0,"unicode":97,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_right={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||||
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"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":68,"key_label":0,"unicode":100,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_up={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
|
||||||
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"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":87,"key_label":0,"unicode":119,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
ui_down={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
|
||||||
|
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"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":83,"key_label":0,"unicode":115,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
sprint={
|
||||||
|
"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,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
interact={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [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":4194309,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
"dialogue interact"={
|
||||||
|
"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":32,"key_label":0,"unicode":32,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
lookdown={
|
||||||
|
"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":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
textures/canvas_textures/default_texture_filter=0
|
||||||
|
renderer/rendering_method.mobile="gl_compatibility"
|
17
scroll.gd
Normal file
17
scroll.gd
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
extends Camera2D
|
||||||
|
|
||||||
|
|
||||||
|
var max
|
||||||
|
var min
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
$dialogue.global_position = self.get_screen_center_position() - Vector2(55,60)
|
||||||
|
#$vingette.global_position = self.get_screen_center_position() - $vingette.size / 2
|
||||||
|
#$blur.global_position = self.get_screen_center_position() - $vingette.size / 2
|
24
shadow the hedgehog.gdshader
Normal file
24
shadow the hedgehog.gdshader
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
render_mode blend_mix;
|
||||||
|
|
||||||
|
uniform float radius = 5.0;
|
||||||
|
uniform vec4 modulate : source_color;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
vec2 ps = TEXTURE_PIXEL_SIZE;
|
||||||
|
|
||||||
|
vec4 shadow = texture(TEXTURE, UV + vec2(-radius, -radius) * ps);
|
||||||
|
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(-radius, 0.0) * ps);
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(-radius, radius) * ps);
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(0.0, -radius) * ps);
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(0.0, radius) * ps);
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(radius, -radius) * ps);
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(radius, 0.0) * ps);
|
||||||
|
shadow += texture(TEXTURE, UV + vec2(radius, radius) * ps);
|
||||||
|
shadow /= 8.0;
|
||||||
|
shadow *= modulate;
|
||||||
|
|
||||||
|
vec4 col = texture(TEXTURE, UV);
|
||||||
|
COLOR = mix(shadow, col, col.a);
|
||||||
|
}
|
BIN
sheet1.png
Normal file
BIN
sheet1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
34
sheet1.png.import
Normal file
34
sheet1.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://45fgpfmo6jpm"
|
||||||
|
path="res://.godot/imported/sheet1.png-df3b94edccf6a27528de01b5fa16fed6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sheet1.png"
|
||||||
|
dest_files=["res://.godot/imported/sheet1.png-df3b94edccf6a27528de01b5fa16fed6.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
silly_fella.png
Normal file
BIN
silly_fella.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 605 B |
34
silly_fella.png.import
Normal file
34
silly_fella.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dvrxgvepbbhl7"
|
||||||
|
path="res://.godot/imported/silly_fella.png-28d814c2d5e2db480a226b37d1c97cac.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://silly_fella.png"
|
||||||
|
dest_files=["res://.godot/imported/silly_fella.png-28d814c2d5e2db480a226b37d1c97cac.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
|
18
smallbox.tscn
Normal file
18
smallbox.tscn
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://d00vg8sfapfvi"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_j757x"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ypdmu"]
|
||||||
|
size = Vector2(12, 12)
|
||||||
|
|
||||||
|
[node name="StaticBody2D" type="StaticBody2D"]
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
texture = ExtResource("1_j757x")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(34, 244, 12, 12)
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(6, 6)
|
||||||
|
shape = SubResource("RectangleShape2D_ypdmu")
|
11
spikes.gd
Normal file
11
spikes.gd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
extends CharacterBody2D
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if body.name == "plr" and body.can_move:
|
||||||
|
body.get_node("AnimationPlayer").play("death")
|
||||||
|
body.position = get_tree().current_scene.get_node("CheckPoints").current.position
|
||||||
|
get_parent().get_node("cloud").fail = true
|
||||||
|
await body.get_node("AnimationPlayer").animation_finished
|
||||||
|
body.get_node("AnimatedSprite2D").modulate = Color(1,1,1,1)
|
25
spikes.tscn
Normal file
25
spikes.tscn
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://dd774nk6uqj8k"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://spikes.gd" id="1_8aurg"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://45fgpfmo6jpm" path="res://sheet1.png" id="1_bldt1"]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_i1t6q"]
|
||||||
|
size = Vector2(17, 2)
|
||||||
|
|
||||||
|
[node name="spikes" type="CharacterBody2D"]
|
||||||
|
script = ExtResource("1_8aurg")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(-9, 0)
|
||||||
|
texture = ExtResource("1_bldt1")
|
||||||
|
centered = false
|
||||||
|
region_enabled = true
|
||||||
|
region_rect = Rect2(320, 190, 17, 2)
|
||||||
|
|
||||||
|
[node name="Area2D" type="Area2D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||||
|
position = Vector2(-0.5, 1)
|
||||||
|
shape = SubResource("RectangleShape2D_i1t6q")
|
||||||
|
|
||||||
|
[connection signal="body_shape_entered" from="Area2D" to="." method="_on_area_2d_body_shape_entered"]
|
44
the end.gd
Normal file
44
the end.gd
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
extends Sprite2D
|
||||||
|
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
||||||
|
var sizer = 648
|
||||||
|
|
||||||
|
func _on_area_2d_body_shape_entered(body_rid, body, body_shape_index, local_shape_index):
|
||||||
|
if body.name == "plr":
|
||||||
|
body.can_move = false
|
||||||
|
self.visible = false
|
||||||
|
$Area2D.queue_free()
|
||||||
|
var dial = body.get_node("Camera2D/dialogue")
|
||||||
|
var tweener2 = get_tree().create_tween()
|
||||||
|
tweener2.tween_property(get_parent().get_node("the_hole"),"volume_db",-100,2)
|
||||||
|
dial.visible = true
|
||||||
|
dial.dialogue("Wow...","upsidedown",0.5)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.dialogue("5 {CURRENCY}.","nervous",0.5)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.dialogue("That was worth it!","normal",0.5)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.dialogue("How am I supposed to get back up...","nervous",2)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.dialogue("Cliffhanger!","normal",1)
|
||||||
|
await get_parent().proceed
|
||||||
|
dial.visible = false
|
||||||
|
var fader = body.get_node("CanvasLayer/fadeout")
|
||||||
|
fader.size.y = 0
|
||||||
|
fader.visible = true
|
||||||
|
var tweener = get_tree().create_tween()
|
||||||
|
tweener.set_ease(Tween.EASE_OUT)
|
||||||
|
tweener.set_trans(Tween.TRANS_BOUNCE)
|
||||||
|
tweener.tween_property(fader,"size",Vector2(1152,sizer),3)
|
||||||
|
|
||||||
|
await tweener.finished
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
get_tree().change_scene_to_file("res://end.tscn")
|
BIN
the hole.ogg
Normal file
BIN
the hole.ogg
Normal file
Binary file not shown.
19
the hole.ogg.import
Normal file
19
the hole.ogg.import
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://bnicwbjceyq76"
|
||||||
|
path="res://.godot/imported/the hole.ogg-6c13aaf3c87211abc409282d2c77c36e.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://the hole.ogg"
|
||||||
|
dest_files=["res://.godot/imported/the hole.ogg-6c13aaf3c87211abc409282d2c77c36e.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
39
typewrite.gd
Normal file
39
typewrite.gd
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
extends Sprite2D
|
||||||
|
|
||||||
|
signal di_continue
|
||||||
|
|
||||||
|
# Called when the node enters the scene tree for the first time.
|
||||||
|
func _ready():
|
||||||
|
#var canvas = get_parent().get_node("CanvasLayer")
|
||||||
|
#await get_tree().create_timer(0.1).timeout
|
||||||
|
#get_parent().remove_child(self)
|
||||||
|
#canvas.add_child(self)
|
||||||
|
pass
|
||||||
|
|
||||||
|
var typing = false
|
||||||
|
|
||||||
|
func dialogue(new_text,icon,dur):
|
||||||
|
if typing == true:
|
||||||
|
typing = false
|
||||||
|
await di_continue
|
||||||
|
typing = true
|
||||||
|
var icons = $Icons.get_children()
|
||||||
|
for i in icons:
|
||||||
|
i.visible = false
|
||||||
|
if i.name == icon:
|
||||||
|
i.visible = true
|
||||||
|
var leng = len(new_text) + 1
|
||||||
|
$RichTextLabel.visible_characters = 0
|
||||||
|
$RichTextLabel.text = new_text
|
||||||
|
for i in leng:
|
||||||
|
if typing == false:
|
||||||
|
di_continue.emit()
|
||||||
|
$AudioStreamPlayer.stop()
|
||||||
|
return
|
||||||
|
$RichTextLabel.visible_characters = i
|
||||||
|
$AudioStreamPlayer.play()
|
||||||
|
$Timer.start(dur/leng)
|
||||||
|
await $Timer.timeout
|
||||||
|
typing = false
|
||||||
|
func _process(delta):
|
||||||
|
pass
|
13
vingette.gdshader
Normal file
13
vingette.gdshader
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
uniform vec4 color: source_color;
|
||||||
|
uniform float multiplier = 0.2;
|
||||||
|
uniform float softness = 3.0;
|
||||||
|
|
||||||
|
void fragment()
|
||||||
|
{
|
||||||
|
float value = distance(UV, vec2(0.5));
|
||||||
|
COLOR = vec4(color.rgb, smoothstep(multiplier, softness,value));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
9
vingette.tres
Normal file
9
vingette.tres
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://btj4q14v2jd0t"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" path="res://vingette.gdshader" id="1_bbfr1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shader = ExtResource("1_bbfr1")
|
||||||
|
shader_parameter/color = Color(0.0901961, 0.0901961, 0.0901961, 1)
|
||||||
|
shader_parameter/multiplier = 0.0
|
||||||
|
shader_parameter/softness = 1.92
|
BIN
wandering.ogg
Normal file
BIN
wandering.ogg
Normal file
Binary file not shown.
19
wandering.ogg.import
Normal file
19
wandering.ogg.import
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="oggvorbisstr"
|
||||||
|
type="AudioStreamOggVorbis"
|
||||||
|
uid="uid://c0cy533wk03js"
|
||||||
|
path="res://.godot/imported/wandering.ogg-bc10e01db6ecc090ccd5bf1952a88b68.oggvorbisstr"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://wandering.ogg"
|
||||||
|
dest_files=["res://.godot/imported/wandering.ogg-bc10e01db6ecc090ccd5bf1952a88b68.oggvorbisstr"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=true
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
Loading…
Reference in New Issue
Block a user