12 Commits

Author SHA1 Message Date
ruslan 9590e29956 Added new level 2. Reworked objects 2026-08-07 15:20:19 +03:00
ruslan 1f4e17648d Added pickup bounce 2026-08-07 13:32:26 +03:00
ruslan 017263b2bb Reworked tiles 2026-08-07 12:28:24 +03:00
ruslan 00ecde975e Fixed pitch initializing 2026-06-27 19:31:27 +03:00
ruslan e2dcad2e41 Fixed typos. Fixed player timers mode 2026-06-27 19:29:10 +03:00
ruslan 04f2325489 Added begining of level 2 2026-06-23 23:44:11 +03:00
ruslan 68929cef64 Finished level 1 2026-06-23 22:44:19 +03:00
ruslan ad410e5ec5 Updated part of the first level 2026-06-22 23:51:37 +03:00
ruslan 05532b1f6f Added shader disabling flag to doors 2026-06-22 23:50:23 +03:00
ruslan 569cde340b Added HiddedColorPlatform 2026-06-21 19:29:27 +03:00
ruslan a1601c9266 Added missing blood shader 2026-06-20 23:24:23 +03:00
ruslan 6452b8e2e3 Added color switching to the TouchColorPlatform 2026-06-20 23:23:47 +03:00
71 changed files with 2364 additions and 950 deletions
+5
View File
@@ -4,6 +4,7 @@ extends CharacterBody2D
signal dead signal dead
signal interacted signal interacted
signal color_switched(new_color: CollisionSwitcher.ObjectColor)
const PICKUP_OFFSET = 16.0 const PICKUP_OFFSET = 16.0
@@ -149,3 +150,7 @@ func _rearrange_pickups() -> void:
func _on_switch_buffer_timer_timeout() -> void: func _on_switch_buffer_timer_timeout() -> void:
_is_switching_needed = false _is_switching_needed = false
func _on_collision_switched(new_color: CollisionSwitcher.ObjectColor) -> void:
color_switched.emit(new_color)
+4
View File
@@ -102,14 +102,17 @@ drag_bottom_margin = 0.1
position = Vector2(0, -24) position = Vector2(0, -24)
[node name="SwitchBufferTimer" type="Timer" parent="." unique_id=115300327] [node name="SwitchBufferTimer" type="Timer" parent="." unique_id=115300327]
process_callback = 0
wait_time = 0.5 wait_time = 0.5
one_shot = true one_shot = true
[node name="JumpBufferTimer" type="Timer" parent="." unique_id=740877224] [node name="JumpBufferTimer" type="Timer" parent="." unique_id=740877224]
process_callback = 0
wait_time = 0.1 wait_time = 0.1
one_shot = true one_shot = true
[node name="CoyoteTimeTimer" type="Timer" parent="." unique_id=117837002] [node name="CoyoteTimeTimer" type="Timer" parent="." unique_id=117837002]
process_callback = 0
wait_time = 0.1 wait_time = 0.1
one_shot = true one_shot = true
@@ -270,4 +273,5 @@ fall_state = NodePath("../FallState")
fall_left_state = NodePath("../FallLeftState") fall_left_state = NodePath("../FallLeftState")
fall_right_state = NodePath("../FallRightState") fall_right_state = NodePath("../FallRightState")
[connection signal="switched" from="CollisionSwitcher" to="." method="_on_collision_switched"]
[connection signal="timeout" from="SwitchBufferTimer" to="." method="_on_switch_buffer_timer_timeout"] [connection signal="timeout" from="SwitchBufferTimer" to="." method="_on_switch_buffer_timer_timeout"]
+26 -1
View File
@@ -3,6 +3,15 @@ class_name CollisionSwitcher
extends Node extends Node
signal switched(new_color: CollisionSwitcher.ObjectColor)
enum ObjectColor {
White,
Black,
}
enum Collisions { enum Collisions {
GREY_WORLD = 1 << 0, GREY_WORLD = 1 << 0,
GREY_ENEMY = 1 << 4, GREY_ENEMY = 1 << 4,
@@ -82,11 +91,14 @@ func switch_color(switch_time := 0.0) -> void:
if is_zero_approx(switch_time): if is_zero_approx(switch_time):
_state = State.Black if _state == State.White else State.White _state = State.Black if _state == State.White else State.White
_emit_switch_signal()
else: else:
_state = State.TransitionToBlack if _state == State.White else State.TransitionToWhite _state = State.TransitionToBlack if _state == State.White else State.TransitionToWhite
_intensity_tween = create_tween() _intensity_tween = create_tween()
_intensity_tween.tween_method(_set_shader_internsity, 0.0, MAX_INTENSITY, switch_time) _intensity_tween.tween_method(_set_shader_internsity, 0.0, MAX_INTENSITY, switch_time) \
.set_ease(Tween.EASE_OUT_IN) \
.set_trans(Tween.TRANS_SINE)
_intensity_tween.finished.connect(_update_state) _intensity_tween.finished.connect(_update_state)
@@ -111,6 +123,7 @@ func _update_state() -> void:
_state = State.Black _state = State.Black
State.TransitionToWhite: State.TransitionToWhite:
_state = State.White _state = State.White
_emit_switch_signal()
func _apply_color() -> void: func _apply_color() -> void:
@@ -147,3 +160,15 @@ func _apply_color_to_object(object: CollisionObject2D) -> void:
func _apply_color_to_material(material: Material) -> void: func _apply_color_to_material(material: Material) -> void:
var is_black := _state == State.Black or _state == State.TransitionToBlack var is_black := _state == State.Black or _state == State.TransitionToBlack
material.set(SHADER_SWITCH_COLORS, is_black) material.set(SHADER_SWITCH_COLORS, is_black)
func _emit_switch_signal() -> void:
var color : ObjectColor
match _state:
State.White:
color = ObjectColor.White
State.Black:
color = ObjectColor.Black
_:
return
switched.emit(color)
+1
View File
@@ -1,3 +1,4 @@
@tool
class_name BookDoor class_name BookDoor
extends LockedDoor extends LockedDoor
+1
View File
@@ -1,3 +1,4 @@
@tool
class_name CircleDoor class_name CircleDoor
extends LockedDoor extends LockedDoor
+14
View File
@@ -1,3 +1,4 @@
@tool
class_name Door class_name Door
extends Node2D extends Node2D
@@ -8,6 +9,13 @@ const ANIMATION_OPENING = "opening"
const ANIMATION_CLOSING = "closing" const ANIMATION_CLOSING = "closing"
@export var use_shader := true:
set(value):
use_shader = value
if is_node_ready():
_update_shader()
var _needed_to_be_open := false var _needed_to_be_open := false
var _needed_to_be_closed := false var _needed_to_be_closed := false
@@ -19,6 +27,7 @@ var _needed_to_be_closed := false
func _ready() -> void: func _ready() -> void:
_update_shader()
sprite.play(ANIMATION_CLOSED) sprite.play(ANIMATION_CLOSED)
@@ -50,6 +59,11 @@ func _close() -> void:
static_body.process_mode = Node.PROCESS_MODE_INHERIT static_body.process_mode = Node.PROCESS_MODE_INHERIT
func _update_shader() -> void:
var intensity := 0.5 if use_shader else 1.0
sprite.material.set(CollisionSwitcher.SHADER_INTENSITY, intensity)
func _on_animation_finished() -> void: func _on_animation_finished() -> void:
match sprite.animation: match sprite.animation:
ANIMATION_OPENING: ANIMATION_OPENING:
+15 -15
View File
@@ -1,14 +1,14 @@
[gd_scene load_steps=15 format=3 uid="uid://b7mhdrj3b6loq"] [gd_scene format=3 uid="uid://b7mhdrj3b6loq"]
[ext_resource type="Script" uid="uid://5uqub2a6701b" path="res://game/doors/door.gd" id="1_vx1od"] [ext_resource type="Script" uid="uid://5uqub2a6701b" path="res://game/doors/door.gd" id="1_vx1od"]
[ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/walls_gray.tres" id="1_xelsh"] [ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/walls_gray.tres" id="1_xelsh"]
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_ymlcn"] [ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_ymlcn"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cs8ri"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_cs8ri"]
size = Vector2(9, 48) size = Vector2(6, 38)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_u7b5a"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_u7b5a"]
size = Vector2(48, 48) size = Vector2(36, 38)
[sub_resource type="AtlasTexture" id="AtlasTexture_5nqrw"] [sub_resource type="AtlasTexture" id="AtlasTexture_5nqrw"]
atlas = ExtResource("3_ymlcn") atlas = ExtResource("3_ymlcn")
@@ -48,7 +48,7 @@ animations = [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_5nqrw") "texture": SubResource("AtlasTexture_5nqrw")
}], }],
"loop": true, "loop": 1,
"name": &"closed", "name": &"closed",
"speed": 5.0 "speed": 5.0
}, { }, {
@@ -62,7 +62,7 @@ animations = [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_4vug2") "texture": SubResource("AtlasTexture_4vug2")
}], }],
"loop": false, "loop": 0,
"name": &"closing", "name": &"closing",
"speed": 10.0 "speed": 10.0
}, { }, {
@@ -70,7 +70,7 @@ animations = [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_ymlcn") "texture": SubResource("AtlasTexture_ymlcn")
}], }],
"loop": true, "loop": 1,
"name": &"open", "name": &"open",
"speed": 5.0 "speed": 5.0
}, { }, {
@@ -84,34 +84,34 @@ animations = [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_j83fq") "texture": SubResource("AtlasTexture_j83fq")
}], }],
"loop": false, "loop": 0,
"name": &"opening", "name": &"opening",
"speed": 10.0 "speed": 10.0
}] }]
[node name="Door" type="Node2D"] [node name="Door" type="Node2D" unique_id=2006466960]
script = ExtResource("1_vx1od") script = ExtResource("1_vx1od")
[node name="StaticBody2D" type="StaticBody2D" parent="."] [node name="StaticBody2D" type="StaticBody2D" parent="." unique_id=584436734]
position = Vector2(-8.5, 0)
[node name="StaticBodyCollision" type="CollisionShape2D" parent="StaticBody2D"] [node name="StaticBodyCollision" type="CollisionShape2D" parent="StaticBody2D" unique_id=193176175]
unique_name_in_owner = true unique_name_in_owner = true
shape = SubResource("RectangleShape2D_cs8ri") shape = SubResource("RectangleShape2D_cs8ri")
[node name="Area2D" type="Area2D" parent="."] [node name="Area2D" type="Area2D" parent="." unique_id=371280403]
position = Vector2(-8.5, 0)
collision_layer = 0 collision_layer = 0
collision_mask = 136 collision_mask = 136
[node name="AreaCollision" type="CollisionShape2D" parent="Area2D"] [node name="AreaCollision" type="CollisionShape2D" parent="Area2D" unique_id=853891699]
unique_name_in_owner = true unique_name_in_owner = true
shape = SubResource("RectangleShape2D_u7b5a") shape = SubResource("RectangleShape2D_u7b5a")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=1718827818]
material = ExtResource("1_xelsh") material = ExtResource("1_xelsh")
position = Vector2(8, -5)
sprite_frames = SubResource("SpriteFrames_r8rhb") sprite_frames = SubResource("SpriteFrames_r8rhb")
animation = &"closed" animation = &"closed"
frame_progress = 0.23665914
[connection signal="body_entered" from="Area2D" to="." method="_on_area_entered"] [connection signal="body_entered" from="Area2D" to="." method="_on_area_entered"]
[connection signal="body_exited" from="Area2D" to="." method="_on_area_exited"] [connection signal="body_exited" from="Area2D" to="." method="_on_area_exited"]
+1
View File
@@ -1,3 +1,4 @@
@tool
extends Door extends Door
+1
View File
@@ -1,3 +1,4 @@
@tool
class_name LockedDoor class_name LockedDoor
extends Door extends Door
+1
View File
@@ -1,3 +1,4 @@
@tool
class_name SquareDoor class_name SquareDoor
extends LockedDoor extends LockedDoor
+1
View File
@@ -1,3 +1,4 @@
@tool
class_name TriagleDoor class_name TriagleDoor
extends LockedDoor extends LockedDoor
+16 -492
View File
@@ -3,8 +3,7 @@
[ext_resource type="Script" uid="uid://c737mx0kxva7i" path="res://game/levels/abstract_level.gd" id="1_o2mui"] [ext_resource type="Script" uid="uid://c737mx0kxva7i" path="res://game/levels/abstract_level.gd" id="1_o2mui"]
[ext_resource type="PackedScene" uid="uid://dtcad8tdx78tg" path="res://game/characters/player/player.tscn" id="2_r0ht6"] [ext_resource type="PackedScene" uid="uid://dtcad8tdx78tg" path="res://game/characters/player/player.tscn" id="2_r0ht6"]
[ext_resource type="PackedScene" uid="uid://dqu87loahl7wn" path="res://game/tiles/walls.tscn" id="3_3fw0b"] [ext_resource type="PackedScene" uid="uid://dqu87loahl7wn" path="res://game/tiles/walls.tscn" id="3_3fw0b"]
[ext_resource type="Texture2D" uid="uid://due8mmt5ww1sf" path="res://images/level/walls.png" id="3_fnnmn"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="4_3fw0b"]
[ext_resource type="Material" uid="uid://dojhoc6ljpt1a" path="res://game/materials/walls_gray.tres" id="3_pi5fd"]
[ext_resource type="Material" uid="uid://d2o2o1w8kb51g" path="res://game/materials/walls_white.tres" id="5_6b8cu"] [ext_resource type="Material" uid="uid://d2o2o1w8kb51g" path="res://game/materials/walls_white.tres" id="5_6b8cu"]
[ext_resource type="PackedScene" uid="uid://nfgx201cn4ti" path="res://game/tiles/traps.tscn" id="5_b7vts"] [ext_resource type="PackedScene" uid="uid://nfgx201cn4ti" path="res://game/tiles/traps.tscn" id="5_b7vts"]
[ext_resource type="Material" uid="uid://bhksbugqhxxa0" path="res://game/materials/walls_black.tres" id="6_x8k35"] [ext_resource type="Material" uid="uid://bhksbugqhxxa0" path="res://game/materials/walls_black.tres" id="6_x8k35"]
@@ -12,494 +11,22 @@
[ext_resource type="PackedScene" uid="uid://84lhc3yn8vub" path="res://game/menu/game_over_menu.tscn" id="8_b7vts"] [ext_resource type="PackedScene" uid="uid://84lhc3yn8vub" path="res://game/menu/game_over_menu.tscn" id="8_b7vts"]
[ext_resource type="PackedScene" uid="uid://bareycqj42c6e" path="res://game/menu/completion_menu.tscn" id="11_3fw0b"] [ext_resource type="PackedScene" uid="uid://bareycqj42c6e" path="res://game/menu/completion_menu.tscn" id="11_3fw0b"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_8ydah"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_8xgvj"]
texture = ExtResource("3_fnnmn") resource_local_to_scene = true
0:0/0 = 0 shader = ExtResource("4_3fw0b")
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8) shader_parameter/black_color = Color(0, 0, 0, 1)
1:0/0 = 0 shader_parameter/white_color = Color(1, 1, 1, 1)
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3) shader_parameter/switch_colors = false
2:0/0 = 0 shader_parameter/threshold = 0.5
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3) shader_parameter/speed = 0.5
3:0/0 = 0 shader_parameter/intensity = 0.5
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8) shader_parameter/scale = 0.1
4:0/0 = 0 shader_parameter/seed = 0.0
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8) shader_parameter/direction = Vector2(1, 1)
5:0/0 = 0 shader_parameter/use_world_pos = true
5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:0/0 = 0
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:1/0 = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
2:1/0 = 0
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8)
3:1/0 = 0
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3)
4:1/0 = 0
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8)
5:1/0 = 0
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:1/0 = 0
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:2/0 = 0
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
1:2/0 = 0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
2:2/0 = 0
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8)
3:2/0 = 0
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:2/0 = 0
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:2/0 = 0
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:2/0 = 0
6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:3/0 = 0
0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
1:3/0 = 0
1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8)
2:3/0 = 0
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
3:3/0 = 0
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3)
4:3/0 = 0
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:3/0 = 0
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:3/0 = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8)
6:4/0 = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
5:5/0 = 0
5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
4:5/0 = 0
4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8)
3:5/0 = 0
3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
2:5/0 = 0
2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3)
1:5/0 = 0
1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
0:5/0 = 0
0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3)
0:4/0 = 0
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
1:4/0 = 0
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
2:4/0 = 0
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
3:4/0 = 0
3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
4:4/0 = 0
4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
5:4/0 = 0
5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8)
0:6/0 = 0
0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
1:6/0 = 0
1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
2:6/0 = 0
2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
7:0/0 = 0
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:0/0 = 0
8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:1/0 = 0
8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:1/0 = 0
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:2/0 = 0
7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:2/0 = 0
8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:3/0 = 0
8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:3/0 = 0
7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:4/0 = 0
7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:4/0 = 0
8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:5/0 = 0
8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:5/0 = 0
7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:6/0 = 0
3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
4:6/0 = 0
4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
5:6/0 = 0
5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
6:6/0 = 0
6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8)
7:6/0 = 0
7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:6/0 = 0
8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:7/0 = 0
8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:7/0 = 0
7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
6:7/0 = 0
6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3)
5:7/0 = 0
5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
4:7/0 = 0
4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8)
3:7/0 = 0
3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8)
3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8)
2:7/0 = 0
2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8)
2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8)
1:7/0 = 0
1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
0:7/0 = 0
0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
0:8/0 = 0
0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8)
1:8/0 = 0
1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
2:8/0 = 0
2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:8/0 = 0
3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
4:8/0 = 0
4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8)
5:8/0 = 0
5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
[sub_resource type="TileSet" id="TileSet_8xgvj"]
physics_layer_0/collision_layer = 1
physics_layer_0/collision_mask = 0
sources/0 = SubResource("TileSetAtlasSource_8ydah")
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3fw0b"]
texture = ExtResource("3_fnnmn")
0:0/0 = 0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8)
1:0/0 = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
2:0/0 = 0
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
3:0/0 = 0
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8)
4:0/0 = 0
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8)
5:0/0 = 0
5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:0/0 = 0
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:1/0 = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
2:1/0 = 0
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8)
3:1/0 = 0
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3)
4:1/0 = 0
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8)
5:1/0 = 0
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:1/0 = 0
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:2/0 = 0
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
1:2/0 = 0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
2:2/0 = 0
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8)
3:2/0 = 0
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:2/0 = 0
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:2/0 = 0
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:2/0 = 0
6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:3/0 = 0
0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
1:3/0 = 0
1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8)
2:3/0 = 0
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
3:3/0 = 0
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3)
4:3/0 = 0
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:3/0 = 0
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:3/0 = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8)
6:4/0 = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
5:5/0 = 0
5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
4:5/0 = 0
4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8)
3:5/0 = 0
3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
2:5/0 = 0
2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3)
1:5/0 = 0
1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
0:5/0 = 0
0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3)
0:4/0 = 0
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
1:4/0 = 0
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
2:4/0 = 0
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
3:4/0 = 0
3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
4:4/0 = 0
4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
5:4/0 = 0
5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8)
0:6/0 = 0
0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
1:6/0 = 0
1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
2:6/0 = 0
2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
7:0/0 = 0
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:0/0 = 0
8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:1/0 = 0
8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:1/0 = 0
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:2/0 = 0
7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:2/0 = 0
8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:3/0 = 0
8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:3/0 = 0
7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:4/0 = 0
7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:4/0 = 0
8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:5/0 = 0
8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:5/0 = 0
7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:6/0 = 0
3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
4:6/0 = 0
4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
5:6/0 = 0
5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
6:6/0 = 0
6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8)
7:6/0 = 0
7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:6/0 = 0
8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:7/0 = 0
8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:7/0 = 0
7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
6:7/0 = 0
6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3)
5:7/0 = 0
5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
4:7/0 = 0
4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8)
3:7/0 = 0
3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8)
3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8)
2:7/0 = 0
2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8)
2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8)
1:7/0 = 0
1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
0:7/0 = 0
0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
0:8/0 = 0
0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8)
1:8/0 = 0
1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
2:8/0 = 0
2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:8/0 = 0
3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
4:8/0 = 0
4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8)
5:8/0 = 0
5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
[sub_resource type="TileSet" id="TileSet_un604"]
physics_layer_0/collision_layer = 2
physics_layer_0/collision_mask = 0
sources/0 = SubResource("TileSetAtlasSource_3fw0b")
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rvm7w"]
texture = ExtResource("3_fnnmn")
0:0/0 = 0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3, 8, -8)
1:0/0 = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
2:0/0 = 0
2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
3:0/0 = 0
3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8)
4:0/0 = 0
4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8)
5:0/0 = 0
5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:0/0 = 0
6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:1/0 = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
2:1/0 = 0
2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8)
3:1/0 = 0
3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, -3, 3, -3)
4:1/0 = 0
4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8)
5:1/0 = 0
5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:1/0 = 0
6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:2/0 = 0
0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
1:2/0 = 0
1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
2:2/0 = 0
2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8)
3:2/0 = 0
3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:2/0 = 0
4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:2/0 = 0
5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:2/0 = 0
6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
0:3/0 = 0
0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
1:3/0 = 0
1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -8, -3, 8, -3, 8, -8)
2:3/0 = 0
2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
3:3/0 = 0
3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, -8, 8, 8, 8, 8, 3)
4:3/0 = 0
4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
5:3/0 = 0
5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
6:3/0 = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 8, 8, 8, 8, -8)
6:4/0 = 0
6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
5:5/0 = 0
5:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
4:5/0 = 0
4:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8)
3:5/0 = 0
3:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
2:5/0 = 0
2:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3)
1:5/0 = 0
1:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 3, 8, 3, 8, 8, -8, 8)
0:5/0 = 0
0:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, -8, 8, -8, 3, 3, 3)
0:4/0 = 0
0:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
1:4/0 = 0
1:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
2:4/0 = 0
2:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
3:4/0 = 0
3:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
4:4/0 = 0
4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, -3, -8, -3, 8, -8, 8)
5:4/0 = 0
5:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 8, -8, 8, 8, 3, 8)
0:6/0 = 0
0:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
1:6/0 = 0
1:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
2:6/0 = 0
2:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
7:0/0 = 0
7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:0/0 = 0
8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:1/0 = 0
8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:1/0 = 0
7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:2/0 = 0
7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:2/0 = 0
8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:3/0 = 0
8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:3/0 = 0
7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:4/0 = 0
7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:4/0 = 0
8:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:5/0 = 0
8:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:5/0 = 0
7:5/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:6/0 = 0
3:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -3, -3, -3, 8, -8, 8)
4:6/0 = 0
4:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
5:6/0 = 0
5:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
6:6/0 = 0
6:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 3, 3, 3, -8, 8, -8, 8, 8, -8, 8)
7:6/0 = 0
7:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:6/0 = 0
8:6/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
8:7/0 = 0
8:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
7:7/0 = 0
7:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
6:7/0 = 0
6:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, -8, -8, -8, 8, -3, 8, -3, -3, 8, -3)
5:7/0 = 0
5:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
4:7/0 = 0
4:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, 3, -8, 3, -8, 8, 8, 8, 8, -8)
3:7/0 = 0
3:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, -8, 3, -3, 8, -3, 8, -8)
3:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(-8, 3, -3, 3, -3, 8, -8, 8)
2:7/0 = 0
2:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, -3, -8, -3, -8, -8)
2:7/0/physics_layer_0/polygon_1/points = PackedVector2Array(3, 3, 8, 3, 8, 8, 3, 8)
1:7/0 = 0
1:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 3, 8, 3, 8, 8, -8, 8)
0:7/0 = 0
0:7/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, -3, -8, -3)
0:8/0 = 0
0:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 8, -8, -8, 8, -8, 8, -3, -3, -3, -3, 8)
1:8/0 = 0
1:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, 3, 8, 3, -3, -8, -3)
2:8/0 = 0
2:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
3:8/0 = 0
3:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-3, -8, -3, 3, 8, 3, 8, 8, -8, 8, -8, -8)
4:8/0 = 0
4:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(8, -8, 8, 8, -8, 8, -8, 3, 3, 3, 3, -8)
5:8/0 = 0
5:8/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
[sub_resource type="TileSet" id="TileSet_jsd6f"]
physics_layer_0/collision_layer = 32
physics_layer_0/collision_mask = 0
sources/0 = SubResource("TileSetAtlasSource_rvm7w")
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3fw0b"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_3fw0b"]
size = Vector2(32, 32) size = Vector2(38, 38)
[node name="AbstractLevel" type="Node2D" unique_id=1364620575] [node name="AbstractLevel" type="Node2D" unique_id=1364620575]
script = ExtResource("1_o2mui") script = ExtResource("1_o2mui")
@@ -521,16 +48,13 @@ script = ExtResource("1_o2mui")
[node name="Tiles" type="Node2D" parent="." unique_id=1626037498] [node name="Tiles" type="Node2D" parent="." unique_id=1626037498]
[node name="GrayWalls" parent="Tiles" unique_id=557672309 instance=ExtResource("3_3fw0b")] [node name="GrayWalls" parent="Tiles" unique_id=557672309 instance=ExtResource("3_3fw0b")]
material = ExtResource("3_pi5fd") material = SubResource("ShaderMaterial_8xgvj")
tile_set = SubResource("TileSet_8xgvj")
[node name="BlackWalls" parent="Tiles" unique_id=1250602228 instance=ExtResource("3_3fw0b")] [node name="BlackWalls" parent="Tiles" unique_id=1250602228 instance=ExtResource("3_3fw0b")]
material = ExtResource("6_x8k35") material = ExtResource("6_x8k35")
tile_set = SubResource("TileSet_un604")
[node name="WhiteWalls" parent="Tiles" unique_id=940613078 instance=ExtResource("3_3fw0b")] [node name="WhiteWalls" parent="Tiles" unique_id=940613078 instance=ExtResource("3_3fw0b")]
material = ExtResource("5_6b8cu") material = ExtResource("5_6b8cu")
tile_set = SubResource("TileSet_jsd6f")
[node name="Traps" parent="Tiles" unique_id=635748436 instance=ExtResource("5_b7vts")] [node name="Traps" parent="Tiles" unique_id=635748436 instance=ExtResource("5_b7vts")]
+127 -113
View File
File diff suppressed because one or more lines are too long
+236 -110
View File
File diff suppressed because one or more lines are too long
+168
View File
@@ -0,0 +1,168 @@
[gd_scene format=4 uid="uid://cc06c06hlv7ix"]
[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_t037v"]
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/locked_door.tscn" id="2_iakit"]
[ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="3_ylsm2"]
[ext_resource type="PackedScene" uid="uid://b0pxe00dlyx7t" path="res://game/objects/informative/switch_action_tip.tscn" id="4_xx77b"]
[ext_resource type="PackedScene" uid="uid://xny1x7me75gc" path="res://game/objects/decorative/mirror_l.tscn" id="5_bxukv"]
[ext_resource type="PackedScene" uid="uid://dopjsft0y8mw5" path="res://game/objects/decorative/cabinet.tscn" id="5_uivyf"]
[ext_resource type="PackedScene" uid="uid://b8pvlnpdnfmd0" path="res://game/objects/decorative/chair_f.tscn" id="6_go8g1"]
[ext_resource type="PackedScene" uid="uid://bdwbdnbenueu1" path="res://game/objects/decorative/table_m.tscn" id="7_2a8w4"]
[ext_resource type="PackedScene" uid="uid://b6wgujelmka5p" path="res://game/objects/decorative/chair_r.tscn" id="8_2a8w4"]
[ext_resource type="PackedScene" uid="uid://c6qy8uybkn4x" path="res://game/objects/decorative/plate.tscn" id="10_7s8yo"]
[ext_resource type="PackedScene" uid="uid://btpkbyyteewsh" path="res://game/objects/decorative/chair_b.tscn" id="10_ylsm2"]
[ext_resource type="PackedScene" uid="uid://x82wjrsqdfd" path="res://game/objects/decorative/chair_l.tscn" id="11_7c6gx"]
[ext_resource type="PackedScene" uid="uid://cvhovmnl050os" path="res://game/objects/decorative/wardrobe.tscn" id="13_7c6gx"]
[ext_resource type="PackedScene" uid="uid://crccdk7wmuqig" path="res://game/objects/decorative/painting_h_l.tscn" id="14_u51cf"]
[ext_resource type="PackedScene" uid="uid://baqawh1drerhk" path="res://game/objects/decorative/table_s.tscn" id="15_cys5i"]
[ext_resource type="PackedScene" uid="uid://d330w1ygg6uxy" path="res://game/objects/decorative/painting_v_l.tscn" id="16_ddwrs"]
[ext_resource type="PackedScene" uid="uid://bt4smb361amjj" path="res://game/objects/decorative/flask_s.tscn" id="16_v8xjl"]
[ext_resource type="PackedScene" uid="uid://bmx60xftq8f2v" path="res://game/objects/decorative/mirror_s.tscn" id="17_ddwrs"]
[ext_resource type="PackedScene" uid="uid://dike8xgbqdut2" path="res://game/killing_area.tscn" id="19_7s8yo"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_v8xjl"]
size = Vector2(224, 8)
[node name="Level2" unique_id=840940252 instance=ExtResource("1_t037v")]
[node name="LockedDoor" parent="Doors" parent_id_path=PackedInt32Array(1468144392) index="0" unique_id=260812823 instance=ExtResource("2_iakit")]
position = Vector2(-48, 296)
[node name="TunnelEntranceDoor" parent="Doors" parent_id_path=PackedInt32Array(1468144392) index="1" unique_id=1638160812 instance=ExtResource("3_ylsm2")]
position = Vector2(670, 440)
[node name="TunnelExitDoor" parent="Doors" parent_id_path=PackedInt32Array(1468144392) index="2" unique_id=330998146 instance=ExtResource("3_ylsm2")]
position = Vector2(963, 440)
[node name="Room1" type="Node2D" parent="Objects" parent_id_path=PackedInt32Array(1320033435) index="0" unique_id=1940245808]
position = Vector2(45, 272)
[node name="SwitchActionTip" parent="Objects/Room1" index="0" unique_id=1162424532 instance=ExtResource("4_xx77b")]
position = Vector2(57, -11)
[node name="MirrorL" parent="Objects/Room1" index="1" unique_id=1018611812 instance=ExtResource("5_bxukv")]
position = Vector2(0, 20)
[node name="Cabinet" parent="Objects/Room1" index="2" unique_id=1667173563 instance=ExtResource("5_uivyf")]
position = Vector2(0, 37)
[node name="Room2" type="Node2D" parent="Objects" parent_id_path=PackedInt32Array(1320033435) index="1" unique_id=965760986]
position = Vector2(244, 268)
[node name="ChairF1" parent="Objects/Room2" index="0" unique_id=1244225115 instance=ExtResource("6_go8g1")]
position = Vector2(-7, 38)
[node name="ChairF2" parent="Objects/Room2" index="1" unique_id=1055347084 instance=ExtResource("6_go8g1")]
position = Vector2(10, 38)
[node name="ChairR" parent="Objects/Room2" index="2" unique_id=303868742 instance=ExtResource("8_2a8w4")]
position = Vector2(-19, 38)
[node name="Plate" parent="Objects/Room2" index="3" unique_id=1006179530 instance=ExtResource("10_7s8yo")]
position = Vector2(6, 33)
[node name="TableM" parent="Objects/Room2" index="4" unique_id=2013142431 instance=ExtResource("7_2a8w4")]
position = Vector2(1, 43)
[node name="ChairB" parent="Objects/Room2" index="5" unique_id=783197386 instance=ExtResource("10_ylsm2")]
position = Vector2(1, 38)
[node name="ChairL" parent="Objects/Room2" index="6" unique_id=1185316526 instance=ExtResource("11_7c6gx")]
position = Vector2(83, 38)
[node name="Room3" type="Node2D" parent="Objects" parent_id_path=PackedInt32Array(1320033435) index="2" unique_id=2108329661]
position = Vector2(309, 408)
[node name="MirrorL" parent="Objects/Room3" index="0" unique_id=1626082225 instance=ExtResource("5_bxukv")]
position = Vector2(42, 28)
[node name="Cabinet1" parent="Objects/Room3" index="1" unique_id=490256385 instance=ExtResource("5_uivyf")]
position = Vector2(42, 45)
[node name="Cabinet2" parent="Objects/Room3" index="2" unique_id=2079902971 instance=ExtResource("5_uivyf")]
position = Vector2(145, 45)
[node name="Wardrobe1" parent="Objects/Room3" index="3" unique_id=564708342 instance=ExtResource("13_7c6gx")]
position = Vector2(-64, 34)
[node name="Wardrobe2" parent="Objects/Room3" index="4" unique_id=1492059704 instance=ExtResource("13_7c6gx")]
position = Vector2(-97, 34)
[node name="Wardrobe3" parent="Objects/Room3" index="5" unique_id=1911986622 instance=ExtResource("13_7c6gx")]
position = Vector2(-31, 34)
[node name="ChairB" parent="Objects/Room3" index="6" unique_id=1469500400 instance=ExtResource("10_ylsm2")]
position = Vector2(43, 42)
[node name="Room4" type="Node2D" parent="Objects" parent_id_path=PackedInt32Array(1320033435) index="3" unique_id=550870217]
position = Vector2(589, 430)
[node name="PaintingHL" parent="Objects/Room4" index="0" unique_id=1371296774 instance=ExtResource("14_u51cf")]
position = Vector2(0, -15)
[node name="ChairL" parent="Objects/Room4" index="1" unique_id=1485330081 instance=ExtResource("11_7c6gx")]
position = Vector2(-70, 20)
[node name="FlaskS1" parent="Objects/Room4" index="2" unique_id=916310165 instance=ExtResource("16_v8xjl")]
position = Vector2(-87, 10)
[node name="FlaskS2" parent="Objects/Room4" index="3" unique_id=337670743 instance=ExtResource("16_v8xjl")]
position = Vector2(-78, 10)
[node name="FlaskS3" parent="Objects/Room4" index="4" unique_id=1299986928 instance=ExtResource("16_v8xjl")]
position = Vector2(-83, 10)
[node name="TableS" parent="Objects/Room4" index="5" unique_id=1423743230 instance=ExtResource("15_cys5i")]
position = Vector2(-80, 25)
[node name="Room5" type="Node2D" parent="Objects" parent_id_path=PackedInt32Array(1320033435) index="4" unique_id=1126502668]
position = Vector2(1073, 410)
[node name="PaintingVL1" parent="Objects/Room5" index="0" unique_id=122380257 instance=ExtResource("16_ddwrs")]
position = Vector2(-63, -12)
[node name="PaintingVL2" parent="Objects/Room5" index="1" unique_id=613659926 instance=ExtResource("16_ddwrs")]
position = Vector2(61, -3)
[node name="PaintingVL3" parent="Objects/Room5" index="2" unique_id=2001285537 instance=ExtResource("16_ddwrs")]
position = Vector2(-5, 4)
[node name="Room6" type="Node2D" parent="Objects" parent_id_path=PackedInt32Array(1320033435) index="5" unique_id=660805563]
position = Vector2(1320, 406)
[node name="Wardrobe" parent="Objects/Room6" index="0" unique_id=668051858 instance=ExtResource("13_7c6gx")]
position = Vector2(-77, 36)
[node name="MirrorS" parent="Objects/Room6" index="1" unique_id=2080883588 instance=ExtResource("17_ddwrs")]
position = Vector2(-4, 37)
[node name="Chair" parent="Objects/Room6" index="2" unique_id=2117760164 instance=ExtResource("6_go8g1")]
position = Vector2(-42, 44)
[node name="TableS" parent="Objects/Room6" index="3" unique_id=311193464 instance=ExtResource("15_cys5i")]
position = Vector2(-43, 49)
[node name="Cabinet" parent="Objects/Room6" index="4" unique_id=1302842880 instance=ExtResource("5_uivyf")]
position = Vector2(32, 47)
[node name="GrayWalls" parent="Tiles" parent_id_path=PackedInt32Array(1626037498) index="0" unique_id=557672309]
tile_map_data = PackedByteArray("AAD+//T/AAACAAEAAAD+//X/AAACAAEAAAD+//b/AAACAAEAAAD+//f/AAACAAEAAAD+//j/AAACAAEAAAD+//n/AAACAAEAAAD+//r/AAACAAEAAAD+//v/AAACAAEAAAD+//z/AAACAAEAAAD+//3/AAACAAEAAAD+//7/AAACAAEAAAD+////AAACAAEAAAD+/wAAAAACAAEAAAD+/wEAAAACAAEAAAD+/wIAAAACAAEAAAD+/wMAAAACAAEAAAD+/wQAAAACAAEAAAD+/wUAAAACAAEAAAD+/wYAAAACAAEAAAD+/wcAAAACAAEAAAD+/wgAAAACAAEAAAD+/wkAAAACAAEAAAD+/woAAAACAAEAAAD+/wsAAAACAAEAAAABAPT/AAAAAAEAAAABAPX/AAAAAAEAAAABAPb/AAAAAAEAAAABAPf/AAAAAAEAAAABAPj/AAAAAAEAAAABAPn/AAAAAAEAAAABAPr/AAAAAAEAAAABAPv/AAAAAAEAAAABAPz/AAAAAAEAAAABAP3/AAAAAAEAAAABAP7/AAAAAAEAAAABAP//AAAAAAEAAAABAAAAAAAAAAEAAAABAAEAAAAAAAEAAAABAAIAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAABAAUAAAAAAAEAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAABAAgAAAAAAAEAAAABAAkAAAAAAAEAAAABAAoAAAAAAAEAAAABAAsAAAAAAAEAAAD8/xAAAAACAAIAAAD8/xQAAAABAAAAAAD9/xQAAAABAAAAAAD+/xQAAAABAAAAAAD//xQAAAABAAAAAAAAABQAAAABAAAAAAABABQAAAABAAAAAAACABQAAAABAAAAAAADABQAAAABAAAAAAAEABQAAAABAAAAAAAFABQAAAABAAAAAAAGABQAAAABAAAAAAAHABQAAAABAAAAAAAIABQAAAABAAAAAAAJABQAAAABAAAAAAAKABQAAAABAAAAAAD8/w8AAAACAAEAAAAVAA8AAAAAAAEAAAAVABAAAAAAAAEAAAAVABEAAAAAAAEAAAAVABIAAAAAAAEAAAAVABMAAAAAAAEAAAALABQAAAABAAAAAAAMABQAAAACAAAAAAASABQAAAAAAAAAAAATABQAAAABAAAAAAAUABQAAAABAAAAAAALABYAAAACAAEAAAALABcAAAACAAEAAAALABgAAAACAAEAAAALABkAAAACAAEAAAALABoAAAACAAEAAAALABsAAAACAAEAAAALABwAAAACAAEAAAAVABQAAAAEAAEAAAAMABUAAAACAAUAAAASABUAAAADAAUAAAALABUAAAADAAAAAAAMAB0AAAABAAAAAAANAB0AAAABAAAAAAAOAB0AAAABAAAAAAAPAB0AAAABAAAAAAAQAB0AAAABAAAAAAARAB0AAAABAAAAAAASAB0AAAABAAAAAAATAB0AAAABAAAAAAAUAB0AAAABAAAAAAAVAB0AAAABAAAAAAAWAB0AAAABAAAAAAAXAB0AAAABAAAAAAAYAB0AAAABAAAAAAAZAB0AAAABAAAAAAAaAB0AAAABAAAAAAAbAB0AAAABAAAAAAAcAB0AAAABAAAAAAAdAB0AAAABAAAAAAALAB0AAAADAAEAAAAeAB0AAAAAAAcAAAAeABwAAAAFAAEAAAAeABsAAAAFAAEAAAAeABoAAAACAAAAAAAaABgAAAAFAAEAAAAaABcAAAACAAEAAAAaABYAAAACAAEAAAAaABUAAAADAAAAAAAbABUAAAABAAIAAAAcABUAAAABAAIAAAAdABUAAAABAAIAAAAeABUAAAABAAIAAAAfABUAAAABAAIAAAAfAB0AAAABAAAAAAAgAB0AAAABAAAAAAAhAB0AAAABAAAAAAAiAB0AAAABAAAAAAAjAB0AAAABAAAAAAAkAB0AAAABAAAAAAAlAB0AAAABAAAAAAAmAB0AAAABAAAAAAAnAB0AAAABAAAAAAAoAB0AAAABAAAAAAAgABUAAAABAAIAAAAhABUAAAABAAIAAAAaABoAAAAAAAIAAAAaABkAAAAGAAEAAAApABgAAAAAAAEAAAApABkAAAAAAAIAAAApAB0AAAABAAAAAAAqAB0AAAABAAAAAAArAB0AAAABAAAAAAAsAB0AAAABAAAAAAAtAB0AAAABAAAAAAAuAB0AAAABAAAAAAAvAB0AAAABAAAAAAAwAB0AAAABAAAAAAAxAB0AAAABAAAAAAAyAB0AAAABAAAAAAAzAB0AAAABAAAAAAA0AB0AAAABAAAAAAA1AB0AAAABAAAAAAA2AB0AAAABAAAAAAA3AB0AAAABAAAAAAA4AB0AAAABAAAAAAA5AB0AAAABAAAAAAA6AB0AAAABAAAAAAA7AB0AAAACAAQAAAAqABkAAAABAAIAAAArABkAAAABAAIAAAAsABkAAAABAAIAAAAtABkAAAABAAIAAAAuABkAAAABAAIAAAAvABkAAAABAAIAAAAwABkAAAABAAIAAAAxABkAAAABAAIAAAAyABkAAAABAAIAAAAzABkAAAABAAIAAAA0ABkAAAABAAIAAAA1ABkAAAABAAIAAAA2ABkAAAABAAIAAAA3ABkAAAABAAIAAAA4ABkAAAABAAIAAAA5ABkAAAABAAIAAAA6ABkAAAABAAIAAAA7ABkAAAACAAIAAAA7ABgAAAACAAEAAABLAB0AAAABAAAAAABMAB0AAAABAAAAAABNAB0AAAABAAAAAABOAB0AAAABAAAAAABPAB0AAAABAAAAAABQAB0AAAABAAAAAABRAB0AAAABAAAAAABSAB0AAAABAAAAAABTAB0AAAABAAAAAABUAB0AAAABAAAAAABKAB0AAAADAAQAAABKAB4AAAAAAAEAAABKAB8AAAAAAAEAAABKACAAAAAAAAEAAABKACEAAAAAAAEAAAA7AB4AAAACAAEAAAA7AB8AAAACAAEAAAA7ACAAAAACAAEAAAA7ACEAAAACAAEAAAA8ACEAAAABAAIAAAA9ACEAAAABAAIAAAA+ACEAAAABAAIAAAA/ACEAAAABAAIAAABAACEAAAABAAIAAABBACEAAAABAAIAAABCACEAAAABAAIAAABDACEAAAABAAIAAABEACEAAAABAAIAAABFACEAAAABAAIAAABGACEAAAABAAIAAABHACEAAAABAAIAAABIACEAAAABAAIAAABJACEAAAABAAIAAABVAB0AAAABAAAAAABWAB0AAAABAAAAAABXAB0AAAACAAQAAABaAB0AAAAAAAEAAABaABwAAAAAAAEAAABaABsAAAAAAAEAAABaABoAAAAAAAEAAABaABkAAAAAAAEAAABaABgAAAAAAAEAAABaAB4AAAAAAAEAAABaAB8AAAAAAAEAAABaACAAAAAAAAEAAABaACEAAAAAAAEAAABaACIAAAAAAAEAAABaACMAAAAAAAEAAABaACQAAAAAAAEAAABaACUAAAAAAAEAAABaACYAAAAAAAEAAABaACcAAAAAAAEAAABaACgAAAAAAAEAAABaACkAAAAAAAEAAABaACoAAAAAAAEAAABXAB4AAAACAAEAAABXAB8AAAACAAEAAABXACAAAAACAAEAAABXACEAAAACAAEAAABXACIAAAACAAEAAABXACMAAAACAAEAAABXACQAAAACAAEAAABXACUAAAACAAEAAABXACYAAAACAAEAAABXACcAAAACAAEAAABXACgAAAACAAEAAABXACkAAAACAAEAAABXACoAAAACAAEAAABXACsAAAACAAEAAABXACwAAAACAAEAAABXAC0AAAACAAEAAABXAC4AAAACAAEAAABXAC8AAAACAAEAAABXADAAAAACAAEAAABXADEAAAACAAEAAABXADIAAAACAAEAAABXADMAAAACAAEAAABXADQAAAACAAEAAABaACsAAAAAAAEAAABaACwAAAAAAAEAAABaAC0AAAAAAAEAAABaAC4AAAAAAAEAAABaAC8AAAAAAAEAAABaADAAAAAAAAEAAABaADEAAAAAAAEAAABaADIAAAAAAAEAAABaADMAAAAAAAEAAABaADQAAAAAAAEAAAA=")
[node name="BlackWalls" parent="Tiles" parent_id_path=PackedInt32Array(1626037498) index="1" unique_id=1250602228]
tile_map_data = PackedByteArray("AAANABQAAAABAAAAAAAOABQAAAABAAAAAAAPABQAAAABAAAAAAAQABQAAAABAAAAAAARABQAAAABAAAAAAANABUAAAABAAIAAAAOABUAAAABAAIAAAAPABUAAAABAAIAAAAQABUAAAABAAIAAAARABUAAAABAAIAAABYAB0AAAABAAAAAABZAB0AAAABAAAAAAA=")
[node name="WhiteWalls" parent="Tiles" parent_id_path=PackedInt32Array(1626037498) index="2" unique_id=940613078]
tile_map_data = PackedByteArray("AAD8/wwAAAADAAAAAAD9/wwAAAABAAIAAAD8/w0AAAACAAEAAAD8/w4AAAACAAEAAAACAAwAAAABAAIAAAADAAwAAAABAAIAAAAEAAwAAAABAAIAAAAFAAwAAAABAAIAAAAGAAwAAAABAAIAAAAHAAwAAAABAAIAAAAIAAwAAAABAAIAAAAJAAwAAAABAAcAAAAJAA0AAAAGAAEAAAAJAA4AAAAGAAEAAAAJAA8AAAAGAAEAAAAJABAAAAAGAAEAAAAJABEAAAAGAAEAAAAJABIAAAAGAAEAAAAKAAwAAAABAAIAAAALAAwAAAABAAIAAAAMAAwAAAABAAIAAAANAAwAAAABAAIAAAAOAAwAAAABAAIAAAAPAAwAAAABAAIAAAAQAAwAAAABAAIAAAARAAwAAAABAAIAAAASAAwAAAABAAIAAAATAAwAAAABAAIAAAAUAAwAAAABAAIAAAAVAAwAAAAEAAAAAAAVAA0AAAAAAAEAAAAVAA4AAAAAAAEAAAAJABMAAAAGAAEAAAATABUAAAABAAIAAAAUABUAAAABAAIAAAAVABUAAAABAAIAAAAWABUAAAABAAIAAAAXABUAAAABAAIAAAAYABUAAAABAAIAAAAZABUAAAABAAIAAAAaABUAAAAEAAAAAAAaABcAAAAAAAEAAAAaABYAAAAAAAEAAAAiABUAAAABAAIAAAAjABUAAAABAAIAAAAkABUAAAABAAIAAAAlABUAAAABAAIAAAAmABUAAAABAAIAAAAnABUAAAABAAIAAAAoABUAAAABAAIAAAAaABoAAAADAAEAAAAbABoAAAAEAAIAAAAcABoAAAAEAAIAAAAdABoAAAAEAAIAAAAeABoAAAAEAAAAAAApABUAAAAEAAAAAAApABYAAAAAAAEAAAApABcAAAAAAAEAAAA7ABcAAAACAAEAAAA7ABYAAAACAAEAAAA7ABUAAAADAAAAAAA8ABUAAAABAAIAAAA9ABUAAAABAAIAAAA+ABUAAAABAAIAAAA/ABUAAAABAAIAAABAABUAAAABAAIAAABBABUAAAABAAIAAABCABUAAAABAAIAAABDABUAAAABAAIAAABEABUAAAABAAIAAABFABUAAAABAAIAAABGABUAAAABAAIAAABHABUAAAABAAIAAABIABUAAAABAAIAAABJABUAAAABAAIAAABLABUAAAABAAIAAABMABUAAAABAAIAAABNABUAAAABAAIAAABOABUAAAABAAIAAABPABUAAAABAAIAAABQABUAAAABAAIAAABRABUAAAABAAIAAABSABUAAAABAAIAAABTABUAAAABAAIAAABUABUAAAABAAIAAABVABUAAAABAAIAAABWABUAAAABAAIAAABXABUAAAABAAIAAABYABUAAAABAAIAAABZABUAAAABAAIAAAA8AB0AAAABAAAAAAA9AB0AAAABAAAAAAA+AB0AAAABAAAAAAA/AB0AAAABAAAAAABAAB0AAAABAAAAAABBAB0AAAABAAAAAABCAB0AAAABAAAAAABDAB0AAAABAAAAAABEAB0AAAABAAAAAABFAB0AAAABAAAAAABGAB0AAAABAAAAAABHAB0AAAABAAAAAABIAB0AAAABAAAAAABJAB0AAAABAAAAAABKABYAAAAGAAEAAABKABcAAAAGAAEAAABKABgAAAAGAAEAAABKABkAAAAGAAEAAABKABoAAAAGAAEAAABKABsAAAAGAAEAAABKABwAAAAGAAEAAABaABcAAAAAAAEAAABaABYAAAAAAAEAAABaABUAAAAEAAAAAABKABUAAAABAAcAAAABAAwAAAAAAAIAAAD+/wwAAAACAAIAAAA=")
[node name="Traps" parent="Tiles" parent_id_path=PackedInt32Array(1626037498) index="3" unique_id=635748436]
tile_map_data = PackedByteArray("AAA8AB8AAAAAAAAAAAA9AB8AAAAAAAAAAAA+AB8AAAAAAAAAAAA/AB8AAAAAAAAAAABAAB8AAAAAAAAAAABBAB8AAAAAAAAAAABCAB8AAAAAAAAAAABDAB8AAAAAAAAAAABEAB8AAAAAAAAAAABFAB8AAAAAAAAAAABGAB8AAAAAAAAAAABHAB8AAAAAAAAAAABIAB8AAAAAAAAAAABJAB8AAAAAAAAAAAA8ACAAAAAAAAEAAAA9ACAAAAAAAAEAAAA+ACAAAAAAAAEAAAA/ACAAAAAAAAEAAABAACAAAAAAAAEAAABBACAAAAAAAAEAAABCACAAAAAAAAEAAABDACAAAAAAAAEAAABEACAAAAAAAAEAAABFACAAAAAAAAEAAABGACAAAAAAAAEAAABHACAAAAAAAAEAAABIACAAAAAAAAEAAABJACAAAAAAAAEAAABJACEAAAAAAAEAAABIACEAAAAAAAEAAABHACEAAAAAAAEAAABGACEAAAAAAAEAAABFACEAAAAAAAEAAABEACEAAAAAAAEAAABDACEAAAAAAAEAAABCACEAAAAAAAEAAABBACEAAAAAAAEAAABAACEAAAAAAAEAAAA/ACEAAAAAAAEAAAA+ACEAAAAAAAEAAAA9ACEAAAAAAAEAAAA8ACEAAAAAAAEAAAA=")
[node name="KillingArea" parent="KillingAreas" parent_id_path=PackedInt32Array(1935554921) index="0" unique_id=1891922549 instance=ExtResource("19_7s8yo")]
position = Vector2(1072, 540)
type = 1
[node name="CollisionShape2D" type="CollisionShape2D" parent="KillingAreas/KillingArea" index="0" unique_id=1478981105]
shape = SubResource("RectangleShape2D_v8xjl")
[node name="LevelEnd" parent="." index="10" unique_id=1018767708]
position = Vector2(1424, 602)
@@ -3,7 +3,7 @@
[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_bhhdo"] [ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_bhhdo"]
[ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/decorative/bookstand.tscn" id="2_1t02d"] [ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/decorative/bookstand.tscn" id="2_1t02d"]
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/locked_door.tscn" id="2_b6xh1"] [ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/locked_door.tscn" id="2_b6xh1"]
[ext_resource type="Script" uid="uid://lxye5wqo5suq" path="res://game/levels/level_7.gd" id="2_sh0fj"] [ext_resource type="Script" uid="uid://lxye5wqo5suq" path="res://game/levels/level_final.gd" id="2_sh0fj"]
[ext_resource type="PackedScene" uid="uid://cudbspmpx6sik" path="res://game/pickups/book_pickup.tscn" id="3_2esp0"] [ext_resource type="PackedScene" uid="uid://cudbspmpx6sik" path="res://game/pickups/book_pickup.tscn" id="3_2esp0"]
[ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="3_7erpt"] [ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="3_7erpt"]
[ext_resource type="PackedScene" uid="uid://dioc4r03dfleq" path="res://game/doors/book_door.tscn" id="4_qqn64"] [ext_resource type="PackedScene" uid="uid://dioc4r03dfleq" path="res://game/doors/book_door.tscn" id="4_qqn64"]
+2
View File
@@ -10,3 +10,5 @@ func _ready() -> void:
$Objects/LeverPlatform.switching.connect($ConnectionCables/ConnectionCablePlatform.toggle) $Objects/LeverPlatform.switching.connect($ConnectionCables/ConnectionCablePlatform.toggle)
$Objects/LeverMoving.switching.connect($Platforms/SelfMovingPlatform.toggle) $Objects/LeverMoving.switching.connect($Platforms/SelfMovingPlatform.toggle)
$Platforms/HiddenColorPlatform.set_player(player)
+15 -6
View File
@@ -12,9 +12,11 @@
[ext_resource type="PackedScene" uid="uid://bwmd8w677p7k3" path="res://game/platform/trigger_color_platform.tscn" id="5_a50fq"] [ext_resource type="PackedScene" uid="uid://bwmd8w677p7k3" path="res://game/platform/trigger_color_platform.tscn" id="5_a50fq"]
[ext_resource type="PackedScene" uid="uid://dwvv5dj8lqif2" path="res://game/doors/triangle_door.tscn" id="6_75eok"] [ext_resource type="PackedScene" uid="uid://dwvv5dj8lqif2" path="res://game/doors/triangle_door.tscn" id="6_75eok"]
[ext_resource type="PackedScene" uid="uid://b7imlh4sl036i" path="res://game/doors/square_door.tscn" id="7_1skah"] [ext_resource type="PackedScene" uid="uid://b7imlh4sl036i" path="res://game/doors/square_door.tscn" id="7_1skah"]
[ext_resource type="PackedScene" uid="uid://cpntbx0bpni2t" path="res://game/platform/touch_color_platform.tscn" id="7_a50fq"]
[ext_resource type="PackedScene" uid="uid://cudbspmpx6sik" path="res://game/pickups/book_pickup.tscn" id="7_fq0h3"] [ext_resource type="PackedScene" uid="uid://cudbspmpx6sik" path="res://game/pickups/book_pickup.tscn" id="7_fq0h3"]
[ext_resource type="PackedScene" uid="uid://dioc4r03dfleq" path="res://game/doors/book_door.tscn" id="8_75eok"] [ext_resource type="PackedScene" uid="uid://dioc4r03dfleq" path="res://game/doors/book_door.tscn" id="8_75eok"]
[ext_resource type="PackedScene" uid="uid://c4gqqhlew67ay" path="res://game/pickups/circle_key_pickup.tscn" id="8_g1txn"] [ext_resource type="PackedScene" uid="uid://c4gqqhlew67ay" path="res://game/pickups/circle_key_pickup.tscn" id="8_g1txn"]
[ext_resource type="PackedScene" uid="uid://bqb2qncny11a" path="res://game/platform/hidden_color_platform.tscn" id="8_lxcjr"]
[ext_resource type="PackedScene" uid="uid://ciubf1ttwc133" path="res://game/pickups/square_key_pickup.tscn" id="9_yrqjd"] [ext_resource type="PackedScene" uid="uid://ciubf1ttwc133" path="res://game/pickups/square_key_pickup.tscn" id="9_yrqjd"]
[ext_resource type="PackedScene" uid="uid://dqgmfpv2mhdpn" path="res://game/pickups/triangle_key_pickup.tscn" id="10_dea75"] [ext_resource type="PackedScene" uid="uid://dqgmfpv2mhdpn" path="res://game/pickups/triangle_key_pickup.tscn" id="10_dea75"]
[ext_resource type="PackedScene" uid="uid://be3mqeb784shj" path="res://game/objects/informative/movement_action_tip.tscn" id="10_ffor3"] [ext_resource type="PackedScene" uid="uid://be3mqeb784shj" path="res://game/objects/informative/movement_action_tip.tscn" id="10_ffor3"]
@@ -25,14 +27,14 @@
[ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/decorative/bookstand.tscn" id="13_g3b4m"] [ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/decorative/bookstand.tscn" id="13_g3b4m"]
[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/cultist.tscn" id="27_te8eb"] [ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/cultist.tscn" id="27_te8eb"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h1708"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_lxcjr"]
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource("4_lxcjr") shader = ExtResource("4_lxcjr")
shader_parameter/glow_interval = 1.0 shader_parameter/glow_interval = 1.0
shader_parameter/glow_radius = 1.0 shader_parameter/glow_radius = 1.0
shader_parameter/travel_time = 5.0 shader_parameter/travel_time = 5.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_a50fq"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_te8eb"]
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource("4_lxcjr") shader = ExtResource("4_lxcjr")
shader_parameter/glow_interval = 1.0 shader_parameter/glow_interval = 1.0
@@ -49,12 +51,12 @@ point_count = 2
script = ExtResource("2_a2sw7") script = ExtResource("2_a2sw7")
[node name="ConnectionCableDoor" parent="ConnectionCables" parent_id_path=PackedInt32Array(279521385) index="0" unique_id=1234500644 instance=ExtResource("3_a50fq")] [node name="ConnectionCableDoor" parent="ConnectionCables" parent_id_path=PackedInt32Array(279521385) index="0" unique_id=1234500644 instance=ExtResource("3_a50fq")]
material = SubResource("ShaderMaterial_h1708") material = SubResource("ShaderMaterial_lxcjr")
position = Vector2(208, 13) position = Vector2(208, 13)
points = PackedVector2Array(0, 0, 92, 0, 92, -49, 199, -49) points = PackedVector2Array(0, 0, 92, 0, 92, -49, 199, -49)
[node name="ConnectionCablePlatform" parent="ConnectionCables" parent_id_path=PackedInt32Array(279521385) index="1" unique_id=561577961 instance=ExtResource("3_a50fq")] [node name="ConnectionCablePlatform" parent="ConnectionCables" parent_id_path=PackedInt32Array(279521385) index="1" unique_id=561577961 instance=ExtResource("3_a50fq")]
material = SubResource("ShaderMaterial_a50fq") material = SubResource("ShaderMaterial_te8eb")
position = Vector2(520, -35) position = Vector2(520, -35)
points = PackedVector2Array(0, 0, 0, -76, -454, -76, -454, 3) points = PackedVector2Array(0, 0, 0, -76, -454, -76, -454, 3)
@@ -80,6 +82,15 @@ collision_layer = 2
initial_color = 1 initial_color = 1
platform_width = 104 platform_width = 104
[node name="TouchColorPlatform" parent="Platforms" parent_id_path=PackedInt32Array(1140671629) index="3" unique_id=1702050833 instance=ExtResource("7_a50fq")]
position = Vector2(200, -25)
platform_width = 80
[node name="HiddenColorPlatform" parent="Platforms" parent_id_path=PackedInt32Array(1140671629) index="4" unique_id=1861027364 instance=ExtResource("8_lxcjr")]
position = Vector2(13, -104)
collision_layer = 2
platform_width = 80
[node name="LeverDoor" parent="Doors" parent_id_path=PackedInt32Array(1468144392) index="0" unique_id=1575363350 instance=ExtResource("2_r01v2")] [node name="LeverDoor" parent="Doors" parent_id_path=PackedInt32Array(1468144392) index="0" unique_id=1575363350 instance=ExtResource("2_r01v2")]
position = Vector2(416, -56) position = Vector2(416, -56)
@@ -142,8 +153,6 @@ position = Vector2(803, -56)
[node name="Cultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=1676614852 instance=ExtResource("27_te8eb")] [node name="Cultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=1676614852 instance=ExtResource("27_te8eb")]
position = Vector2(743, -48) position = Vector2(743, -48)
collision_layer = 64
collision_mask = 33
[node name="Cultist2" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=1025404981 instance=ExtResource("27_te8eb")] [node name="Cultist2" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=1025404981 instance=ExtResource("27_te8eb")]
position = Vector2(936, -48) position = Vector2(936, -48)
+8 -7
View File
@@ -2,14 +2,15 @@
[ext_resource type="Script" uid="uid://w4ofprtn7lu8" path="res://game/managers/level_manager.gd" id="1_te7jw"] [ext_resource type="Script" uid="uid://w4ofprtn7lu8" path="res://game/managers/level_manager.gd" id="1_te7jw"]
[ext_resource type="PackedScene" uid="uid://dlpi1ptis3wna" path="res://game/levels/level_1.tscn" id="2_r84xe"] [ext_resource type="PackedScene" uid="uid://dlpi1ptis3wna" path="res://game/levels/level_1.tscn" id="2_r84xe"]
[ext_resource type="PackedScene" uid="uid://cc06c06hlv7ix" path="res://game/levels/level_2.tscn" id="3_yl05u"] [ext_resource type="PackedScene" uid="uid://cifrkw15tbunt" path="res://game/levels/level_2.tscn" id="3_yl05u"]
[ext_resource type="PackedScene" uid="uid://ungdvjmfc6v7" path="res://game/levels/level_3.tscn" id="4_eo2u3"] [ext_resource type="PackedScene" uid="uid://ungdvjmfc6v7" path="res://game/levels/level_3_old.tscn" id="4_eo2u3"]
[ext_resource type="PackedScene" uid="uid://cmp1cog2cbfh5" path="res://game/levels/level_4.tscn" id="5_yl05u"] [ext_resource type="PackedScene" uid="uid://cc06c06hlv7ix" path="res://game/levels/level_2_old.tscn" id="4_sidtq"]
[ext_resource type="PackedScene" uid="uid://brysu1p6fw88n" path="res://game/levels/level_5.tscn" id="6_eo2u3"] [ext_resource type="PackedScene" uid="uid://cmp1cog2cbfh5" path="res://game/levels/level_4_old.tscn" id="5_yl05u"]
[ext_resource type="PackedScene" uid="uid://uanhjjloryf4" path="res://game/levels/level_6.tscn" id="7_da5al"] [ext_resource type="PackedScene" uid="uid://brysu1p6fw88n" path="res://game/levels/level_5_old.tscn" id="6_eo2u3"]
[ext_resource type="PackedScene" uid="uid://cddh8nh54mrog" path="res://game/levels/level_7.tscn" id="8_rvthr"] [ext_resource type="PackedScene" uid="uid://uanhjjloryf4" path="res://game/levels/level_6_old.tscn" id="7_da5al"]
[ext_resource type="PackedScene" uid="uid://cddh8nh54mrog" path="res://game/levels/level_final.tscn" id="8_rvthr"]
[ext_resource type="PackedScene" uid="uid://bmn74wc2vophn" path="res://game/levels/test_level.tscn" id="9_7ahfy"] [ext_resource type="PackedScene" uid="uid://bmn74wc2vophn" path="res://game/levels/test_level.tscn" id="9_7ahfy"]
[node name="LevelManager" type="Node" unique_id=629915878] [node name="LevelManager" type="Node" unique_id=629915878]
script = ExtResource("1_te7jw") script = ExtResource("1_te7jw")
levels = Array[PackedScene]([ExtResource("2_r84xe"), ExtResource("3_yl05u"), ExtResource("4_eo2u3"), ExtResource("5_yl05u"), ExtResource("6_eo2u3"), ExtResource("7_da5al"), ExtResource("8_rvthr"), ExtResource("9_7ahfy")]) levels = Array[PackedScene]([ExtResource("2_r84xe"), ExtResource("3_yl05u"), ExtResource("4_sidtq"), ExtResource("4_eo2u3"), ExtResource("5_yl05u"), ExtResource("6_eo2u3"), ExtResource("7_da5al"), ExtResource("8_rvthr"), ExtResource("9_7ahfy")])
+6 -6
View File
@@ -9,10 +9,10 @@ const MUSIC_BUS = "Music"
@export_group("Pitch settings", "pitch") @export_group("Pitch settings", "pitch")
@export_range(0.9, 1.1, 0.01) var putch_ui_min := 1.0 @export_range(0.9, 1.1, 0.01) var pitch_ui_min := 1.0
@export_range(0.9, 1.1, 0.01) var putch_ui_max := 1.0 @export_range(0.9, 1.1, 0.01) var pitch_ui_max := 1.0
@export_range(0.9, 1.1, 0.01) var putch_sfx_min := 1.0 @export_range(0.9, 1.1, 0.01) var pitch_sfx_min := 1.0
@export_range(0.9, 1.1, 0.01) var putch_sfx_max := 1.0 @export_range(0.9, 1.1, 0.01) var pitch_sfx_max := 1.0
@export_group("Number of players", "player_count") @export_group("Number of players", "player_count")
@export_range(1, 10) var player_count_ui := 1 @export_range(1, 10) var player_count_ui := 1
@@ -60,7 +60,7 @@ func _ready() -> void:
func play_ui_stream(stream: AudioStream) -> AudioStreamPlayer: func play_ui_stream(stream: AudioStream) -> AudioStreamPlayer:
var player := _get_free_player(_ui_players) var player := _get_free_player(_ui_players)
player.stream = stream player.stream = stream
player.pitch_scale = randf_range(putch_ui_min, putch_ui_max) player.pitch_scale = randf_range(pitch_ui_min, pitch_ui_max)
player.play() player.play()
return player return player
@@ -68,7 +68,7 @@ func play_ui_stream(stream: AudioStream) -> AudioStreamPlayer:
func play_sfx_stream(stream: AudioStream, position: Vector2) -> AudioStreamPlayer2D: func play_sfx_stream(stream: AudioStream, position: Vector2) -> AudioStreamPlayer2D:
var player := _get_free_2d_player(_sfx_players) var player := _get_free_2d_player(_sfx_players)
player.stream = stream player.stream = stream
player.pitch_scale = randf_range(putch_ui_min, putch_ui_max) player.pitch_scale = randf_range(pitch_ui_min, pitch_ui_max)
player.position = position player.position = position
player.play() player.play()
return player return player
+4 -4
View File
@@ -26,10 +26,10 @@
[node name="SoundManager" type="Node" unique_id=1917953940] [node name="SoundManager" type="Node" unique_id=1917953940]
process_mode = 3 process_mode = 3
script = ExtResource("1_cg0sy") script = ExtResource("1_cg0sy")
putch_ui_min = 0.95 pitch_ui_min = 0.95
putch_ui_max = 1.05 pitch_ui_max = 1.05
putch_sfx_min = 0.95 pitch_sfx_min = 0.95
putch_sfx_max = 1.05 pitch_sfx_max = 1.05
player_count_ui = 4 player_count_ui = 4
player_count_sfx = 25 player_count_sfx = 25
ui_stream_accept = ExtResource("2_ge1il") ui_stream_accept = ExtResource("2_ge1il")
+4 -1
View File
@@ -3,12 +3,15 @@
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_p23e2"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_p23e2"]
[resource] [resource]
resource_local_to_scene = true
shader = ExtResource("1_p23e2") shader = ExtResource("1_p23e2")
shader_parameter/black_color = Color(0, 0, 0, 1) shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = true shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0 shader_parameter/speed = 1.0
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 5.0 shader_parameter/scale = 5.0
shader_parameter/seed = 0.0
shader_parameter/direction = Vector2(1, 1)
shader_parameter/use_world_pos = false shader_parameter/use_world_pos = false
+3
View File
@@ -3,6 +3,7 @@
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_rnyyp"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_rnyyp"]
[resource] [resource]
resource_local_to_scene = true
shader = ExtResource("1_rnyyp") shader = ExtResource("1_rnyyp")
shader_parameter/black_color = Color(0, 0, 0, 1) shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
@@ -11,4 +12,6 @@ shader_parameter/threshold = 0.5
shader_parameter/speed = 0.5 shader_parameter/speed = 0.5
shader_parameter/intensity = 0.5 shader_parameter/intensity = 0.5
shader_parameter/scale = 0.1 shader_parameter/scale = 0.1
shader_parameter/seed = 0.0
shader_parameter/direction = Vector2(1, 1)
shader_parameter/use_world_pos = true shader_parameter/use_world_pos = true
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(144, 64, 16, 32)
[node name="Bookstand" type="Node2D" unique_id=764203715] [node name="Bookstand" type="Node2D" unique_id=764203715]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1927584709] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1927584709]
position = Vector2(0, -10)
texture = SubResource("AtlasTexture_opqiy") texture = SubResource("AtlasTexture_opqiy")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(128, 96, 32, 32)
[node name="Cabinet" type="Node2D" unique_id=776063180] [node name="Cabinet" type="Node2D" unique_id=776063180]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=633984423] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=633984423]
position = Vector2(0, -11)
texture = SubResource("AtlasTexture_sqimt") texture = SubResource("AtlasTexture_sqimt")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(32, 96, 16, 32)
[node name="ChairB" type="Node2D" unique_id=593320838] [node name="ChairB" type="Node2D" unique_id=593320838]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1141861091] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1141861091]
position = Vector2(0, -14)
texture = SubResource("AtlasTexture_ea7rc") texture = SubResource("AtlasTexture_ea7rc")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(0, 96, 16, 32)
[node name="ChairF" type="Node2D" unique_id=1967501122] [node name="ChairF" type="Node2D" unique_id=1967501122]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1824855132] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1824855132]
position = Vector2(0, -14)
texture = SubResource("AtlasTexture_1kw05") texture = SubResource("AtlasTexture_1kw05")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(16, 96, 16, 32)
[node name="ChairL" type="Node2D" unique_id=813233619] [node name="ChairL" type="Node2D" unique_id=813233619]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2136740309] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=2136740309]
position = Vector2(0, -14)
texture = SubResource("AtlasTexture_cktuf") texture = SubResource("AtlasTexture_cktuf")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(48, 96, 16, 32)
[node name="ChairR" type="Node2D" unique_id=567783693] [node name="ChairR" type="Node2D" unique_id=567783693]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1599831744] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1599831744]
position = Vector2(0, -14)
texture = SubResource("AtlasTexture_e7ewy") texture = SubResource("AtlasTexture_e7ewy")
+4 -1
View File
@@ -24,6 +24,8 @@ shader_parameter/threshold = 0.5
shader_parameter/speed = 2.50000011875 shader_parameter/speed = 2.50000011875
shader_parameter/intensity = 0.6000000285 shader_parameter/intensity = 0.6000000285
shader_parameter/scale = 75.0000035625 shader_parameter/scale = 75.0000035625
shader_parameter/seed = 0.0
shader_parameter/direction = Vector2(1, 1)
shader_parameter/use_world_pos = false shader_parameter/use_world_pos = false
[sub_resource type="AtlasTexture" id="AtlasTexture_tl0fg"] [sub_resource type="AtlasTexture" id="AtlasTexture_tl0fg"]
@@ -52,9 +54,10 @@ animations = [{
script = SubResource("GDScript_4nvxe") script = SubResource("GDScript_4nvxe")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1590498638] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1590498638]
position = Vector2(0, -16)
texture = SubResource("AtlasTexture_2ho61") texture = SubResource("AtlasTexture_2ho61")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=628370504] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=628370504]
material = SubResource("ShaderMaterial_2ho61") material = SubResource("ShaderMaterial_2ho61")
position = Vector2(0, 8) position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_f0x6e") sprite_frames = SubResource("SpriteFrames_f0x6e")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(128, 80, 16, 16)
[node name="FlaskL" type="Node2D" unique_id=1215208712] [node name="FlaskL" type="Node2D" unique_id=1215208712]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1287451147] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1287451147]
position = Vector2(0, -7)
texture = SubResource("AtlasTexture_i1pbn") texture = SubResource("AtlasTexture_i1pbn")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(128, 64, 16, 16)
[node name="FlaskS" type="Node2D" unique_id=565628633] [node name="FlaskS" type="Node2D" unique_id=565628633]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1428095427] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1428095427]
position = Vector2(0, -6)
texture = SubResource("AtlasTexture_wg65s") texture = SubResource("AtlasTexture_wg65s")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(112, 64, 16, 16)
[node name="Plate" type="Node2D" unique_id=611682922] [node name="Plate" type="Node2D" unique_id=611682922]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1274674649] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1274674649]
position = Vector2(0, -1)
texture = SubResource("AtlasTexture_q70ul") texture = SubResource("AtlasTexture_q70ul")
@@ -9,4 +9,5 @@ region = Rect2(144, 32, 16, 16)
[node name="RedortEndL" type="Node2D" unique_id=186703054] [node name="RedortEndL" type="Node2D" unique_id=186703054]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=2083648757] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=2083648757]
position = Vector2(-1, -8)
texture = SubResource("AtlasTexture_hbatg") texture = SubResource("AtlasTexture_hbatg")
@@ -9,4 +9,5 @@ region = Rect2(112, 48, 16, 16)
[node name="RetortEndR" type="Node2D" unique_id=361163783] [node name="RetortEndR" type="Node2D" unique_id=361163783]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=851249465] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=851249465]
position = Vector2(1, -8)
texture = SubResource("AtlasTexture_2d2yp") texture = SubResource("AtlasTexture_2d2yp")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(128, 48, 32, 16)
[node name="RetortL" type="Node2D" unique_id=928599671] [node name="RetortL" type="Node2D" unique_id=928599671]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=777287822] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=777287822]
position = Vector2(-3, -8)
texture = SubResource("AtlasTexture_8epgq") texture = SubResource("AtlasTexture_8epgq")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(112, 32, 32, 16)
[node name="RetortR" type="Node2D" unique_id=2131329697] [node name="RetortR" type="Node2D" unique_id=2131329697]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=889741540] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=889741540]
position = Vector2(3, -8)
texture = SubResource("AtlasTexture_f54r7") texture = SubResource("AtlasTexture_f54r7")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(80, 0, 80, 32)
[node name="TableL" type="Node2D" unique_id=1210198021] [node name="TableL" type="Node2D" unique_id=1210198021]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1155132216] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1155132216]
position = Vector2(-1, -9)
texture = SubResource("AtlasTexture_l7gad") texture = SubResource("AtlasTexture_l7gad")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(32, 0, 48, 32)
[node name="TableM" type="Node2D" unique_id=639741163] [node name="TableM" type="Node2D" unique_id=639741163]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=881942302] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=881942302]
position = Vector2(0, -9)
texture = SubResource("AtlasTexture_runce") texture = SubResource("AtlasTexture_runce")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(0, 0, 32, 32)
[node name="TableS" type="Node2D" unique_id=1273697628] [node name="TableS" type="Node2D" unique_id=1273697628]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1017827625] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1017827625]
position = Vector2(0, -9)
texture = SubResource("AtlasTexture_n2itf") texture = SubResource("AtlasTexture_n2itf")
+1
View File
@@ -9,4 +9,5 @@ region = Rect2(96, 80, 32, 48)
[node name="Wardrobe" type="Node2D" unique_id=1607339750] [node name="Wardrobe" type="Node2D" unique_id=1607339750]
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=422307570] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=422307570]
position = Vector2(0, -22)
texture = SubResource("AtlasTexture_wbqlk") texture = SubResource("AtlasTexture_wbqlk")
@@ -14,7 +14,9 @@ region = Rect2(0, 32, 32, 32)
[node name="MovementActionTip" unique_id=1113266380 instance=ExtResource("1_6vlve")] [node name="MovementActionTip" unique_id=1113266380 instance=ExtResource("1_6vlve")]
[node name="SpriteKbd" parent="." index="0" unique_id=948959005] [node name="SpriteKbd" parent="." index="0" unique_id=948959005]
position = Vector2(-1, -15)
texture = SubResource("AtlasTexture_qoa1y") texture = SubResource("AtlasTexture_qoa1y")
[node name="SpritePad" parent="." index="1" unique_id=1703375720] [node name="SpritePad" parent="." index="1" unique_id=1703375720]
visible = false
texture = SubResource("AtlasTexture_aui55") texture = SubResource("AtlasTexture_aui55")
+4 -2
View File
@@ -109,17 +109,19 @@ script = ExtResource("2_5hu3b")
initial_state = 0 initial_state = 0
[node name="CollisionShape2D" parent="." index="0" unique_id=2065213362] [node name="CollisionShape2D" parent="." index="0" unique_id=2065213362]
position = Vector2(0, -4) position = Vector2(0, -12)
shape = SubResource("RectangleShape2D_tnscr") shape = SubResource("RectangleShape2D_tnscr")
[node name="HoverTip" parent="." index="1" unique_id=1961962362] [node name="HoverTip" parent="." index="1" unique_id=1961962362]
position = Vector2(0, -11) position = Vector2(0, -19)
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." index="2" unique_id=2086579452] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." index="2" unique_id=2086579452]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_kky3u") sprite_frames = SubResource("SpriteFrames_kky3u")
animation = &"turning_left" animation = &"turning_left"
[node name="BaseSprite" type="Sprite2D" parent="." index="3" unique_id=256419860] [node name="BaseSprite" type="Sprite2D" parent="." index="3" unique_id=256419860]
position = Vector2(0, -8)
texture = SubResource("AtlasTexture_5upgc") texture = SubResource("AtlasTexture_5upgc")
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"] [connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"]
+13
View File
@@ -2,6 +2,19 @@ class_name AbstractPickup
extends Area2D extends Area2D
const BOUNCE_SPEED = 250.0
@export_range(0.0, 100.0) var max_bounce_offset := 0.0
@onready var sprite : Sprite2D = $Sprite2D
func _process(_delta: float) -> void:
sprite.position.y = round(sin(Time.get_ticks_msec() / BOUNCE_SPEED) * max_bounce_offset)
func _play_pickup_sound() -> void: func _play_pickup_sound() -> void:
SoundManager.play_sfx_stream(SoundManager.sfx_stream_key_picked_up, global_position) SoundManager.play_sfx_stream(SoundManager.sfx_stream_key_picked_up, global_position)
+7 -4
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://cmnfpr2h2hbeu"] [gd_scene format=3 uid="uid://cmnfpr2h2hbeu"]
[ext_resource type="Script" uid="uid://c54xcaigi43rn" path="res://game/pickups/abstract_pickup.gd" id="1_ek4cl"] [ext_resource type="Script" uid="uid://c54xcaigi43rn" path="res://game/pickups/abstract_pickup.gd" id="1_ek4cl"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_33jno"] [ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_33jno"]
@@ -12,19 +12,22 @@ shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0000002375 shader_parameter/speed = 5.0000002375
shader_parameter/intensity = 0.800000038 shader_parameter/intensity = 0.800000038
shader_parameter/scale = 25.0000011875 shader_parameter/scale = 25.0000011875
shader_parameter/seed = 0.0
shader_parameter/direction = Vector2(1, 1)
shader_parameter/use_world_pos = false
[sub_resource type="CircleShape2D" id="CircleShape2D_ek4cl"] [sub_resource type="CircleShape2D" id="CircleShape2D_ek4cl"]
radius = 7.0 radius = 7.0
[node name="AbstractPickup" type="Area2D"] [node name="AbstractPickup" type="Area2D" unique_id=1918087631]
collision_layer = 0 collision_layer = 0
collision_mask = 136 collision_mask = 136
script = ExtResource("1_ek4cl") script = ExtResource("1_ek4cl")
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="." unique_id=787072909]
material = SubResource("ShaderMaterial_4r7i4") material = SubResource("ShaderMaterial_4r7i4")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1835897926]
shape = SubResource("CircleShape2D_ek4cl") shape = SubResource("CircleShape2D_ek4cl")
[connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="body_entered" from="." to="." method="_on_body_entered"]
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://cudbspmpx6sik"] [gd_scene format=3 uid="uid://cudbspmpx6sik"]
[ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_e7pu1"] [ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_e7pu1"]
[ext_resource type="Script" uid="uid://sheh3mtq6k8o" path="res://game/pickups/book_pickup.gd" id="2_jsqc0"] [ext_resource type="Script" uid="uid://sheh3mtq6k8o" path="res://game/pickups/book_pickup.gd" id="2_jsqc0"]
@@ -8,8 +8,9 @@
atlas = ExtResource("3_yg5bj") atlas = ExtResource("3_yg5bj")
region = Rect2(16, 16, 16, 16) region = Rect2(16, 16, 16, 16)
[node name="BookPickup" instance=ExtResource("1_e7pu1")] [node name="BookPickup" unique_id=371783630 instance=ExtResource("1_e7pu1")]
script = ExtResource("2_jsqc0") script = ExtResource("2_jsqc0")
max_bounce_offset = 1.0
[node name="Sprite2D" parent="." index="0"] [node name="Sprite2D" parent="." index="0" unique_id=787072909]
texture = SubResource("AtlasTexture_cpnvb") texture = SubResource("AtlasTexture_cpnvb")
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://c4gqqhlew67ay"] [gd_scene format=3 uid="uid://c4gqqhlew67ay"]
[ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_u687g"] [ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_u687g"]
[ext_resource type="Script" uid="uid://dbssfh6ecgstl" path="res://game/pickups/circle_key_pickup.gd" id="2_sjfny"] [ext_resource type="Script" uid="uid://dbssfh6ecgstl" path="res://game/pickups/circle_key_pickup.gd" id="2_sjfny"]
@@ -8,8 +8,9 @@
atlas = ExtResource("3_pwkbp") atlas = ExtResource("3_pwkbp")
region = Rect2(0, 0, 16, 16) region = Rect2(0, 0, 16, 16)
[node name="CircleKeyPickup" instance=ExtResource("1_u687g")] [node name="CircleKeyPickup" unique_id=479576639 instance=ExtResource("1_u687g")]
script = ExtResource("2_sjfny") script = ExtResource("2_sjfny")
max_bounce_offset = 2.0
[node name="Sprite2D" parent="." index="0"] [node name="Sprite2D" parent="." index="0" unique_id=787072909]
texture = SubResource("AtlasTexture_mprb4") texture = SubResource("AtlasTexture_mprb4")
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://ciubf1ttwc133"] [gd_scene format=3 uid="uid://ciubf1ttwc133"]
[ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_20fsk"] [ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_20fsk"]
[ext_resource type="Script" uid="uid://ck5tvlprgwlet" path="res://game/pickups/square_key_pickup.gd" id="2_5ybdl"] [ext_resource type="Script" uid="uid://ck5tvlprgwlet" path="res://game/pickups/square_key_pickup.gd" id="2_5ybdl"]
@@ -8,8 +8,9 @@
atlas = ExtResource("3_5ybdl") atlas = ExtResource("3_5ybdl")
region = Rect2(0, 16, 16, 16) region = Rect2(0, 16, 16, 16)
[node name="SquareKeyPickup" instance=ExtResource("1_20fsk")] [node name="SquareKeyPickup" unique_id=439452023 instance=ExtResource("1_20fsk")]
script = ExtResource("2_5ybdl") script = ExtResource("2_5ybdl")
max_bounce_offset = 2.0
[node name="Sprite2D" parent="." index="0"] [node name="Sprite2D" parent="." index="0" unique_id=787072909]
texture = SubResource("AtlasTexture_fx152") texture = SubResource("AtlasTexture_fx152")
+4 -3
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://dqgmfpv2mhdpn"] [gd_scene format=3 uid="uid://dqgmfpv2mhdpn"]
[ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_qr3v1"] [ext_resource type="PackedScene" uid="uid://cmnfpr2h2hbeu" path="res://game/pickups/abstract_pickup.tscn" id="1_qr3v1"]
[ext_resource type="Script" uid="uid://c73gihkak2xns" path="res://game/pickups/triangle_key_pickup.gd" id="2_pn8rn"] [ext_resource type="Script" uid="uid://c73gihkak2xns" path="res://game/pickups/triangle_key_pickup.gd" id="2_pn8rn"]
@@ -8,8 +8,9 @@
atlas = ExtResource("3_5k6x8") atlas = ExtResource("3_5k6x8")
region = Rect2(16, 0, 16, 16) region = Rect2(16, 0, 16, 16)
[node name="TriangleKeyPickup" instance=ExtResource("1_qr3v1")] [node name="TriangleKeyPickup" unique_id=1774919784 instance=ExtResource("1_qr3v1")]
script = ExtResource("2_pn8rn") script = ExtResource("2_pn8rn")
max_bounce_offset = 2.0
[node name="Sprite2D" parent="." index="0"] [node name="Sprite2D" parent="." index="0" unique_id=787072909]
texture = SubResource("AtlasTexture_8ko2n") texture = SubResource("AtlasTexture_8ko2n")
+6 -8
View File
@@ -3,13 +3,11 @@ class_name AbstractColorPlatform
extends AbstractPlatform extends AbstractPlatform
enum PlatformColor { @export var initial_color := CollisionSwitcher.ObjectColor.White:
White, set(value):
Black, initial_color = value
} if Engine.is_editor_hint() and is_node_ready():
collision_switcher.switch_color()
@export var initial_color := PlatformColor.White
@onready var collision_switcher : CollisionSwitcher = $CollisionSwitcher @onready var collision_switcher : CollisionSwitcher = $CollisionSwitcher
@@ -18,5 +16,5 @@ enum PlatformColor {
func _ready() -> void: func _ready() -> void:
super._ready() super._ready()
collision_switcher.add_material(platform_sprite.material) collision_switcher.add_material(platform_sprite.material)
if initial_color == PlatformColor.Black: if initial_color == CollisionSwitcher.ObjectColor.Black:
collision_switcher.switch_color() collision_switcher.switch_color()
-1
View File
@@ -9,7 +9,6 @@ const SHADER_PLATFORM_WIDTH = "shader_parameter/platform_width"
const ANIMATION_COLOR_SWITCHING = "color_switching" const ANIMATION_COLOR_SWITCHING = "color_switching"
const ANIMATION_HIDING = "hiding" const ANIMATION_HIDING = "hiding"
const ANIMATION_TIMER = "timer"
const ANIMATION_SELF_MOVING = "self_moving" const ANIMATION_SELF_MOVING = "self_moving"
+23
View File
@@ -0,0 +1,23 @@
@tool
class_name HiddenColorPlatform
extends AbstractColorPlatform
func _ready() -> void:
super._ready()
icon_sprite.play(ANIMATION_HIDING)
if not Engine.is_editor_hint():
if initial_color == CollisionSwitcher.ObjectColor.White:
platform_sprite.hide()
func set_player(player: Player) -> void:
player.color_switched.connect(_on_player_color_switched)
func _on_player_color_switched(player_new_color: CollisionSwitcher.ObjectColor) -> void:
if player_new_color == initial_color:
platform_sprite.hide()
else:
platform_sprite.show()
@@ -0,0 +1 @@
uid://bmdc7dyijp211
+49
View File
@@ -0,0 +1,49 @@
[gd_scene format=3 uid="uid://bqb2qncny11a"]
[ext_resource type="PackedScene" uid="uid://wpkj48bqyuy2" path="res://game/platform/abstract_color_platform.tscn" id="1_s638m"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_4acet"]
[ext_resource type="Script" uid="uid://bmdc7dyijp211" path="res://game/platform/hidden_color_platform.gd" id="2_nlrds"]
[ext_resource type="Shader" uid="uid://d4hm3vjx1rhsf" path="res://game/shaders/platform.gdshader" id="3_nlrds"]
[ext_resource type="Texture2D" uid="uid://cpcuokqv8u2xa" path="res://images/level/platform.png" id="4_h5jhn"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ff5f1"]
resource_local_to_scene = true
shader = ExtResource("2_4acet")
shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 5.0
shader_parameter/seed = 0.0
shader_parameter/direction = Vector2(1, 1)
shader_parameter/use_world_pos = false
[sub_resource type="ViewportTexture" id="ViewportTexture_17dby"]
viewport_path = NodePath("SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_el5k2"]
resource_local_to_scene = true
shader = ExtResource("3_nlrds")
shader_parameter/tile_size = 8.0
shader_parameter/platform_width = 24.0
shader_parameter/atlas = ExtResource("4_h5jhn")
shader_parameter/seed = 0.12241629
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hm14r"]
resource_local_to_scene = true
size = Vector2(16, 7)
[node name="HiddenColorPlatform" unique_id=137546339 instance=ExtResource("1_s638m")]
script = ExtResource("2_nlrds")
[node name="Sprite2D" parent="." index="0" unique_id=264863796]
material = SubResource("ShaderMaterial_ff5f1")
texture = SubResource("ViewportTexture_17dby")
[node name="PlatformRect" parent="SubViewport" parent_id_path=PackedInt32Array(226200089) index="0" unique_id=794315918]
material = SubResource("ShaderMaterial_el5k2")
[node name="CollisionShape2D" parent="." index="2" unique_id=175449124]
shape = SubResource("RectangleShape2D_hm14r")
+51 -1
View File
@@ -3,10 +3,60 @@ class_name TouchColorPlatform
extends AbstractColorPlatform extends AbstractColorPlatform
const INTENSITY = 0.85
const INTENSITY_SET_TIME = 0.5
const SWITCH_TIME = 1.5
var _is_body_in := false
var _intensity_tween : Tween
@onready var touch_check_collision: CollisionShape2D = $Area2D/CollisionShape2D @onready var touch_check_collision: CollisionShape2D = $Area2D/CollisionShape2D
@onready var area_collision_switcher : CollisionSwitcher = $CollisionSwitcher @onready var switch_timer: Timer = $SwitchTimer
func _ready() -> void:
super._ready()
icon_sprite.hide()
_reset_intensity()
func rebuild_platform() -> void: func rebuild_platform() -> void:
super.rebuild_platform() super.rebuild_platform()
touch_check_collision.shape.size.x = platform_width - 4 touch_check_collision.shape.size.x = platform_width - 4
func _switch() -> void:
collision_switcher.switch_color(SWITCH_TIME)
func _reset_intensity() -> void:
if _intensity_tween != null and _intensity_tween.is_running():
_intensity_tween.kill()
_intensity_tween = create_tween()
_intensity_tween.tween_property(platform_sprite.material, CollisionSwitcher.SHADER_INTENSITY, \
INTENSITY, INTENSITY_SET_TIME)
func _on_body_entered(_body: Node2D) -> void:
_is_body_in = true
_switch()
func _on_body_exited(_body: Node2D) -> void:
_is_body_in = false
func _on_collision_switched(_color: CollisionSwitcher.ObjectColor) -> void:
_reset_intensity()
if _is_body_in:
switch_timer.start()
func _on_switch_timer_timeout() -> void:
if _is_body_in:
_switch()
+31 -6
View File
@@ -3,12 +3,27 @@
[ext_resource type="PackedScene" uid="uid://wpkj48bqyuy2" path="res://game/platform/abstract_color_platform.tscn" id="1_xxggt"] [ext_resource type="PackedScene" uid="uid://wpkj48bqyuy2" path="res://game/platform/abstract_color_platform.tscn" id="1_xxggt"]
[ext_resource type="Shader" uid="uid://d4hm3vjx1rhsf" path="res://game/shaders/platform.gdshader" id="2_4n4xw"] [ext_resource type="Shader" uid="uid://d4hm3vjx1rhsf" path="res://game/shaders/platform.gdshader" id="2_4n4xw"]
[ext_resource type="Script" uid="uid://d2xfxje428psp" path="res://game/platform/touch_color_platform.gd" id="2_wa58h"] [ext_resource type="Script" uid="uid://d2xfxje428psp" path="res://game/platform/touch_color_platform.gd" id="2_wa58h"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_vol56"]
[ext_resource type="Texture2D" uid="uid://cpcuokqv8u2xa" path="res://images/level/platform.png" id="3_wa58h"] [ext_resource type="Texture2D" uid="uid://cpcuokqv8u2xa" path="res://images/level/platform.png" id="3_wa58h"]
[sub_resource type="ViewportTexture" id="ViewportTexture_4n4xw"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_wa58h"]
resource_local_to_scene = true
shader = ExtResource("3_vol56")
shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 5.0
shader_parameter/seed = 0.0
shader_parameter/direction = Vector2(1, 1)
shader_parameter/use_world_pos = false
[sub_resource type="ViewportTexture" id="ViewportTexture_vol56"]
viewport_path = NodePath("SubViewport") viewport_path = NodePath("SubViewport")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_wa58h"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_4wo0k"]
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource("2_4n4xw") shader = ExtResource("2_4n4xw")
shader_parameter/tile_size = 8.0 shader_parameter/tile_size = 8.0
@@ -16,7 +31,7 @@ shader_parameter/platform_width = 24.0
shader_parameter/atlas = ExtResource("3_wa58h") shader_parameter/atlas = ExtResource("3_wa58h")
shader_parameter/seed = 0.12241629 shader_parameter/seed = 0.12241629
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vol56"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_3k57e"]
resource_local_to_scene = true resource_local_to_scene = true
size = Vector2(16, 7) size = Vector2(16, 7)
@@ -27,13 +42,14 @@ size = Vector2(12, 1)
script = ExtResource("2_wa58h") script = ExtResource("2_wa58h")
[node name="Sprite2D" parent="." index="0" unique_id=264863796] [node name="Sprite2D" parent="." index="0" unique_id=264863796]
texture = SubResource("ViewportTexture_4n4xw") material = SubResource("ShaderMaterial_wa58h")
texture = SubResource("ViewportTexture_vol56")
[node name="PlatformRect" parent="SubViewport" parent_id_path=PackedInt32Array(226200089) index="0" unique_id=794315918] [node name="PlatformRect" parent="SubViewport" parent_id_path=PackedInt32Array(226200089) index="0" unique_id=794315918]
material = SubResource("ShaderMaterial_wa58h") material = SubResource("ShaderMaterial_4wo0k")
[node name="CollisionShape2D" parent="." index="2" unique_id=175449124] [node name="CollisionShape2D" parent="." index="2" unique_id=175449124]
shape = SubResource("RectangleShape2D_vol56") shape = SubResource("RectangleShape2D_3k57e")
[node name="CollisionSwitcher" parent="." index="3" unique_id=542648449 node_paths=PackedStringArray("objects")] [node name="CollisionSwitcher" parent="." index="3" unique_id=542648449 node_paths=PackedStringArray("objects")]
objects = [NodePath(".."), NodePath("../Area2D")] objects = [NodePath(".."), NodePath("../Area2D")]
@@ -46,3 +62,12 @@ collision_mask = 192
position = Vector2(0, -4.5) position = Vector2(0, -4.5)
shape = SubResource("RectangleShape2D_bhunq") shape = SubResource("RectangleShape2D_bhunq")
debug_color = Color(0.9020316, 0.24375501, 0.4918024, 0.41960785) debug_color = Color(0.9020316, 0.24375501, 0.4918024, 0.41960785)
[node name="SwitchTimer" type="Timer" parent="." index="5" unique_id=1137076745]
wait_time = 0.5
one_shot = true
[connection signal="switched" from="CollisionSwitcher" to="." method="_on_collision_switched"]
[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"]
[connection signal="body_exited" from="Area2D" to="." method="_on_body_exited"]
[connection signal="timeout" from="SwitchTimer" to="." method="_on_switch_timer_timeout"]
+9
View File
@@ -0,0 +1,9 @@
shader_type canvas_item;
uniform sampler2D screen_texture : hint_screen_texture, filter_nearest;
void fragment() {
vec4 screen_color = texture(screen_texture, SCREEN_UV);
vec3 inverted_color = 1.0 - screen_color.rgb;
COLOR.rgb = vec3(inverted_color);
}
+1
View File
@@ -0,0 +1 @@
uid://cdakbomof1cc6
+87 -4
View File
@@ -12,7 +12,11 @@ texture = ExtResource("1_wrl76")
0:0/animation_frame_2/duration = 1.0 0:0/animation_frame_2/duration = 1.0
0:0/animation_frame_3/duration = 1.0 0:0/animation_frame_3/duration = 1.0
0:0/0 = 0 0:0/0 = 0
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 7, 8, 7, 8, 8, -8, 8) 0:0/0/terrain_set = 0
0:0/0/terrain = 0
0:0/0/terrains_peering_bit/right_side = 0
0:0/0/terrains_peering_bit/bottom_side = 0
0:0/0/terrains_peering_bit/left_side = 0
0:1/animation_columns = 4 0:1/animation_columns = 4
0:1/animation_speed = 5.0 0:1/animation_speed = 5.0
0:1/animation_mode = 1 0:1/animation_mode = 1
@@ -21,11 +25,90 @@ texture = ExtResource("1_wrl76")
0:1/animation_frame_2/duration = 1.0 0:1/animation_frame_2/duration = 1.0
0:1/animation_frame_3/duration = 1.0 0:1/animation_frame_3/duration = 1.0
0:1/0 = 0 0:1/0 = 0
0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8) 0:1/0/terrain_set = 0
0:1/0/terrain = 0
0:1/0/terrains_peering_bit/right_side = 0
0:1/0/terrains_peering_bit/bottom_side = 0
0:1/0/terrains_peering_bit/left_side = 0
0:1/0/terrains_peering_bit/top_side = 0
0:2/animation_speed = 5.0
0:2/animation_frame_0/duration = 1.0
0:2/animation_frame_1/duration = 1.0
0:2/animation_frame_2/duration = 1.0
0:2/animation_frame_3/duration = 1.0
0:2/0 = 0
0:2/0/terrain_set = 0
0:2/0/terrain = 0
0:2/0/terrains_peering_bit/bottom_side = 0
0:2/0/terrains_peering_bit/left_side = 0
0:3/animation_speed = 5.0
0:3/animation_frame_0/duration = 1.0
0:3/animation_frame_1/duration = 1.0
0:3/animation_frame_2/duration = 1.0
0:3/animation_frame_3/duration = 1.0
0:3/0 = 0
0:3/0/terrain_set = 0
0:3/0/terrain = 0
0:3/0/terrains_peering_bit/bottom_side = 0
0:3/0/terrains_peering_bit/left_side = 0
0:3/0/terrains_peering_bit/top_side = 0
0:4/animation_speed = 5.0
0:4/animation_frame_0/duration = 1.0
0:4/animation_frame_1/duration = 1.0
0:4/animation_frame_2/duration = 1.0
0:4/animation_frame_3/duration = 1.0
0:4/0 = 0
0:4/0/terrain_set = 0
0:4/0/terrain = 0
0:4/0/terrains_peering_bit/right_side = 0
0:4/0/terrains_peering_bit/bottom_side = 0
0:5/animation_speed = 5.0
0:5/animation_frame_0/duration = 1.0
0:5/animation_frame_1/duration = 1.0
0:5/animation_frame_2/duration = 1.0
0:5/animation_frame_3/duration = 1.0
0:5/0 = 0
0:5/0/terrain_set = 0
0:5/0/terrain = 0
0:5/0/terrains_peering_bit/right_side = 0
0:5/0/terrains_peering_bit/bottom_side = 0
0:5/0/terrains_peering_bit/top_side = 0
0:6/animation_speed = 5.0
0:6/animation_frame_0/duration = 1.0
0:6/animation_frame_1/duration = 1.0
0:6/animation_frame_2/duration = 1.0
0:6/animation_frame_3/duration = 1.0
0:6/0 = 0
0:6/0/terrain_set = 0
0:6/0/terrain = 0
0:6/0/terrains_peering_bit/right_side = 0
0:6/0/terrains_peering_bit/left_side = 0
0:6/0/terrains_peering_bit/top_side = 0
0:7/animation_speed = 5.0
0:7/animation_frame_0/duration = 1.0
0:7/animation_frame_1/duration = 1.0
0:7/animation_frame_2/duration = 1.0
0:7/animation_frame_3/duration = 1.0
0:7/0 = 0
0:7/0/terrain_set = 0
0:7/0/terrain = 0
0:7/0/terrains_peering_bit/left_side = 0
0:7/0/terrains_peering_bit/top_side = 0
0:8/animation_speed = 5.0
0:8/animation_frame_0/duration = 1.0
0:8/animation_frame_1/duration = 1.0
0:8/animation_frame_2/duration = 1.0
0:8/animation_frame_3/duration = 1.0
0:8/0 = 0
0:8/0/terrain_set = 0
0:8/0/terrain = 0
0:8/0/terrains_peering_bit/right_side = 0
0:8/0/terrains_peering_bit/top_side = 0
[sub_resource type="TileSet" id="TileSet_un604"] [sub_resource type="TileSet" id="TileSet_un604"]
physics_layer_0/collision_layer = 16 terrain_set_0/mode = 2
physics_layer_0/collision_mask = 16 terrain_set_0/terrain_0/name = "Water"
terrain_set_0/terrain_0/color = Color(0.17461759, 0.21010289, 0.99999994, 1)
sources/0 = SubResource("TileSetAtlasSource_3fw0b") sources/0 = SubResource("TileSetAtlasSource_3fw0b")
[node name="Traps" type="TileMapLayer" unique_id=397992951] [node name="Traps" type="TileMapLayer" unique_id=397992951]
+1374 -146
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -2,7 +2,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://due8mmt5ww1sf" uid="uid://pejb3q2yd6kr"
path="res://.godot/imported/walls.png-37a3ca517acd966878c86ac131ff4ba1.ctex" path="res://.godot/imported/walls.png-37a3ca517acd966878c86ac131ff4ba1.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false