Added pickups and doors
This commit is contained in:
@@ -15,6 +15,7 @@ const ANIMATION_FALL_UP_LEFT = "fall_up_left"
|
||||
const ANIMATION_FALL_UP_RIGHT = "fall_up_right"
|
||||
|
||||
const LOOK_AROUND_CHANCE = 25
|
||||
const PICKUP_OFFSET = 16.0
|
||||
|
||||
|
||||
@export_range(0.0, 1000.0) var max_speed := 160
|
||||
@@ -25,6 +26,7 @@ const LOOK_AROUND_CHANCE = 25
|
||||
|
||||
@onready var sprite : AnimatedSprite2D = $AnimatedSprite2D
|
||||
@onready var collision_switcher : CollisionSwitcher = $CollisionSwitcher
|
||||
@onready var pickups : Node2D = $Pickups
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -53,6 +55,18 @@ func _input(event: InputEvent) -> void:
|
||||
collision_switcher.switch_color(switch_time)
|
||||
|
||||
|
||||
func add_pickup(pickup: AbstractPickup) -> void:
|
||||
pickup.reparent.call_deferred(pickups)
|
||||
_rearrange_pickups.call_deferred()
|
||||
|
||||
|
||||
func remove_pickup(pickup: AbstractPickup) -> void:
|
||||
if pickup in pickups.get_children():
|
||||
pickups.remove_child(pickup)
|
||||
pickup.queue_free()
|
||||
_rearrange_pickups()
|
||||
|
||||
|
||||
func _update_animation() -> void:
|
||||
var animation := _get_animation()
|
||||
if sprite.animation != animation:
|
||||
@@ -88,6 +102,17 @@ func _get_animation() -> String:
|
||||
return ANIMATION_IDLE
|
||||
|
||||
|
||||
func _rearrange_pickups() -> void:
|
||||
var children := pickups.get_children()
|
||||
var pickup_shift := (children.size() - 1) * PICKUP_OFFSET / 2.0
|
||||
|
||||
for i in range(children.size()):
|
||||
if not children[i] is Node2D: continue
|
||||
var node := children[i] as Node2D
|
||||
node.position.x = i * PICKUP_OFFSET - pickup_shift
|
||||
node.position.y = 0
|
||||
|
||||
|
||||
func _on_animation_finished() -> void:
|
||||
match sprite.animation:
|
||||
ANIMATION_LOOK_AROUND_1, ANIMATION_LOOK_AROUND_2:
|
||||
|
||||
@@ -319,5 +319,8 @@ object = NodePath("..")
|
||||
[node name="Camera2D" type="Camera2D" parent="."]
|
||||
position_smoothing_enabled = true
|
||||
|
||||
[node name="Pickups" type="Node2D" parent="."]
|
||||
position = Vector2(0, -24)
|
||||
|
||||
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"]
|
||||
[connection signal="animation_looped" from="AnimatedSprite2D" to="." method="_on_animation_looped"]
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
class_name BookDoor
|
||||
extends ClosedDoor
|
||||
|
||||
|
||||
func _is_key(node: Node) -> bool:
|
||||
return node is BookPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://befuova1g4tth
|
||||
@@ -0,0 +1,65 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://dioc4r03dfleq"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/closed_door.tscn" id="1_p87ci"]
|
||||
[ext_resource type="Script" uid="uid://befuova1g4tth" path="res://game/doors/book_door.gd" id="2_atb6l"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_gbgmk"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_e14gj"]
|
||||
atlas = ExtResource("3_gbgmk")
|
||||
region = Rect2(0, 240, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_g21nq"]
|
||||
atlas = ExtResource("3_gbgmk")
|
||||
region = Rect2(64, 240, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_op86a"]
|
||||
atlas = ExtResource("3_gbgmk")
|
||||
region = Rect2(0, 240, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fw6sy"]
|
||||
atlas = ExtResource("3_gbgmk")
|
||||
region = Rect2(32, 240, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_m0nqq"]
|
||||
atlas = ExtResource("3_gbgmk")
|
||||
region = Rect2(64, 240, 32, 48)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_3d7ts"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_e14gj")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"closed",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_g21nq")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"open",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_op86a")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_fw6sy")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_m0nqq")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"opening",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="BookDoor" instance=ExtResource("1_p87ci")]
|
||||
script = ExtResource("2_atb6l")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="2"]
|
||||
sprite_frames = SubResource("SpriteFrames_3d7ts")
|
||||
animation = &"opening"
|
||||
@@ -0,0 +1,6 @@
|
||||
class_name CircleDoor
|
||||
extends ClosedDoor
|
||||
|
||||
|
||||
func _is_key(node: Node) -> bool:
|
||||
return node is CircleKeyPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://50eqrh24tgx7
|
||||
@@ -0,0 +1,64 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://g0n5npbt3hb2"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/closed_door.tscn" id="1_amonf"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="2_5d3q0"]
|
||||
[ext_resource type="Script" uid="uid://50eqrh24tgx7" path="res://game/doors/circle_door.gd" id="2_t4nfh"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_t4nfh"]
|
||||
atlas = ExtResource("2_5d3q0")
|
||||
region = Rect2(0, 96, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_bcn3i"]
|
||||
atlas = ExtResource("2_5d3q0")
|
||||
region = Rect2(64, 96, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_wv48j"]
|
||||
atlas = ExtResource("2_5d3q0")
|
||||
region = Rect2(0, 96, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3ybwy"]
|
||||
atlas = ExtResource("2_5d3q0")
|
||||
region = Rect2(32, 96, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_7go8b"]
|
||||
atlas = ExtResource("2_5d3q0")
|
||||
region = Rect2(64, 96, 32, 48)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_18a0u"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_t4nfh")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"closed",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_bcn3i")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"open",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_wv48j")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_3ybwy")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_7go8b")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"opening",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="CircleDoor" instance=ExtResource("1_amonf")]
|
||||
script = ExtResource("2_t4nfh")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="2"]
|
||||
sprite_frames = SubResource("SpriteFrames_18a0u")
|
||||
@@ -0,0 +1,18 @@
|
||||
class_name ClosedDoor
|
||||
extends Door
|
||||
|
||||
|
||||
func _is_key(_node: Node) -> bool:
|
||||
return false
|
||||
|
||||
|
||||
func _can_open(body: Node2D) -> bool:
|
||||
if not body.has_node("Pickups"): return false
|
||||
if not body.has_method("remove_pickup"): return false
|
||||
|
||||
for pickup in body.get_node("Pickups").get_children():
|
||||
if _is_key(pickup):
|
||||
body.remove_pickup(pickup)
|
||||
return true
|
||||
|
||||
return false
|
||||
@@ -0,0 +1 @@
|
||||
uid://qd7aihqwgddj
|
||||
@@ -0,0 +1,65 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://cojxqx5al7kyv"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="1_rxn60"]
|
||||
[ext_resource type="Script" uid="uid://qd7aihqwgddj" path="res://game/doors/closed_door.gd" id="2_dntl7"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_dntl7"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_3gkgk"]
|
||||
atlas = ExtResource("3_dntl7")
|
||||
region = Rect2(0, 48, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_gu75k"]
|
||||
atlas = ExtResource("3_dntl7")
|
||||
region = Rect2(64, 48, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_l618y"]
|
||||
atlas = ExtResource("3_dntl7")
|
||||
region = Rect2(0, 48, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_s3oqg"]
|
||||
atlas = ExtResource("3_dntl7")
|
||||
region = Rect2(32, 48, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ir1gv"]
|
||||
atlas = ExtResource("3_dntl7")
|
||||
region = Rect2(64, 48, 32, 48)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_fgn1o"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_3gkgk")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"closed",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_gu75k")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"open",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_l618y")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_s3oqg")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ir1gv")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"opening",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="ClosedDoor" instance=ExtResource("1_rxn60")]
|
||||
script = ExtResource("2_dntl7")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="2"]
|
||||
sprite_frames = SubResource("SpriteFrames_fgn1o")
|
||||
animation = &"closed"
|
||||
@@ -0,0 +1,39 @@
|
||||
class_name Door
|
||||
extends Node2D
|
||||
|
||||
|
||||
const ANIMATION_CLOSED = "closed"
|
||||
const ANIMATION_OPEN = "open"
|
||||
const ANIMATION_OPENING = "opening"
|
||||
|
||||
|
||||
@onready var sprite : AnimatedSprite2D = $AnimatedSprite2D
|
||||
@onready var static_body : StaticBody2D = $StaticBody2D
|
||||
@onready var static_body_collision : CollisionShape2D = $%StaticBodyCollision
|
||||
@onready var area_collision : CollisionShape2D = $%AreaCollision
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
sprite.play(ANIMATION_CLOSED)
|
||||
|
||||
|
||||
func _is_closed() -> bool:
|
||||
return sprite.animation == ANIMATION_CLOSED
|
||||
|
||||
|
||||
func _can_open(_body: Node2D) -> bool:
|
||||
return true
|
||||
|
||||
|
||||
func _open() -> void:
|
||||
sprite.play(ANIMATION_OPENING)
|
||||
static_body.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
|
||||
|
||||
func _on_animation_finished() -> void:
|
||||
sprite.play(ANIMATION_OPEN)
|
||||
|
||||
|
||||
func _on_area_entered(body: Node2D) -> void:
|
||||
if _is_closed() and _can_open(body):
|
||||
_open()
|
||||
@@ -0,0 +1 @@
|
||||
uid://5uqub2a6701b
|
||||
@@ -0,0 +1,91 @@
|
||||
[gd_scene load_steps=12 format=3 uid="uid://b7mhdrj3b6loq"]
|
||||
|
||||
[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/gray_walls.tres" id="1_xelsh"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_ymlcn"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_cs8ri"]
|
||||
size = Vector2(9, 48)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_u7b5a"]
|
||||
size = Vector2(48, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_5nqrw"]
|
||||
atlas = ExtResource("3_ymlcn")
|
||||
region = Rect2(0, 0, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ymlcn"]
|
||||
atlas = ExtResource("3_ymlcn")
|
||||
region = Rect2(64, 0, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_r8rhb"]
|
||||
atlas = ExtResource("3_ymlcn")
|
||||
region = Rect2(0, 0, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_xb6pu"]
|
||||
atlas = ExtResource("3_ymlcn")
|
||||
region = Rect2(32, 0, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_j83fq"]
|
||||
atlas = ExtResource("3_ymlcn")
|
||||
region = Rect2(64, 0, 32, 48)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_r8rhb"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_5nqrw")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"closed",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_ymlcn")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"open",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_r8rhb")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_xb6pu")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_j83fq")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"opening",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="Door" type="Node2D"]
|
||||
script = ExtResource("1_vx1od")
|
||||
|
||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||
position = Vector2(-8.5, 0)
|
||||
|
||||
[node name="StaticBodyCollision" type="CollisionShape2D" parent="StaticBody2D"]
|
||||
unique_name_in_owner = true
|
||||
shape = SubResource("RectangleShape2D_cs8ri")
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
position = Vector2(-8.5, 0)
|
||||
collision_layer = 0
|
||||
collision_mask = 136
|
||||
|
||||
[node name="AreaCollision" type="CollisionShape2D" parent="Area2D"]
|
||||
unique_name_in_owner = true
|
||||
shape = SubResource("RectangleShape2D_u7b5a")
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||
material = ExtResource("1_xelsh")
|
||||
sprite_frames = SubResource("SpriteFrames_r8rhb")
|
||||
animation = &"opening"
|
||||
|
||||
[connection signal="body_entered" from="Area2D" to="." method="_on_area_entered"]
|
||||
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animation_finished"]
|
||||
@@ -0,0 +1,6 @@
|
||||
class_name SquareDoor
|
||||
extends ClosedDoor
|
||||
|
||||
|
||||
func _is_key(node: Node) -> bool:
|
||||
return node is SquareKeyPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://mp2dfsd1uk5p
|
||||
@@ -0,0 +1,64 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://b7imlh4sl036i"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/closed_door.tscn" id="1_jg0qv"]
|
||||
[ext_resource type="Script" uid="uid://mp2dfsd1uk5p" path="res://game/doors/square_door.gd" id="2_wyn1t"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_txk00"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qhb0j"]
|
||||
atlas = ExtResource("3_txk00")
|
||||
region = Rect2(0, 144, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_rwkr8"]
|
||||
atlas = ExtResource("3_txk00")
|
||||
region = Rect2(64, 144, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_pw0e3"]
|
||||
atlas = ExtResource("3_txk00")
|
||||
region = Rect2(0, 144, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_tlxsa"]
|
||||
atlas = ExtResource("3_txk00")
|
||||
region = Rect2(32, 144, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_05hqc"]
|
||||
atlas = ExtResource("3_txk00")
|
||||
region = Rect2(64, 144, 32, 48)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_wk632"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qhb0j")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"closed",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_rwkr8")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"open",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_pw0e3")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_tlxsa")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_05hqc")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"opening",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="SquareDoor" instance=ExtResource("1_jg0qv")]
|
||||
script = ExtResource("2_wyn1t")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="2"]
|
||||
sprite_frames = SubResource("SpriteFrames_wk632")
|
||||
@@ -0,0 +1,6 @@
|
||||
class_name TriagleDoor
|
||||
extends ClosedDoor
|
||||
|
||||
|
||||
func _is_key(node: Node) -> bool:
|
||||
return node is TriangleKeyPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://d4lrt6yw0knf7
|
||||
@@ -0,0 +1,64 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://dwvv5dj8lqif2"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/closed_door.tscn" id="1_l21ff"]
|
||||
[ext_resource type="Script" uid="uid://d4lrt6yw0knf7" path="res://game/doors/triangle_door.gd" id="2_ifpbb"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfjjweantpja" path="res://images/level/doors.png" id="3_eqipl"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_rb7ia"]
|
||||
atlas = ExtResource("3_eqipl")
|
||||
region = Rect2(0, 192, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_1a8ca"]
|
||||
atlas = ExtResource("3_eqipl")
|
||||
region = Rect2(64, 192, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_nkv11"]
|
||||
atlas = ExtResource("3_eqipl")
|
||||
region = Rect2(0, 192, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qx6bn"]
|
||||
atlas = ExtResource("3_eqipl")
|
||||
region = Rect2(32, 192, 32, 48)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_vlkqk"]
|
||||
atlas = ExtResource("3_eqipl")
|
||||
region = Rect2(64, 192, 32, 48)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_o203p"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_rb7ia")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"closed",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_1a8ca")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"open",
|
||||
"speed": 5.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_nkv11")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_qx6bn")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_vlkqk")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"opening",
|
||||
"speed": 10.0
|
||||
}]
|
||||
|
||||
[node name="TriangleDoor" instance=ExtResource("1_l21ff")]
|
||||
script = ExtResource("2_ifpbb")
|
||||
|
||||
[node name="AnimatedSprite2D" parent="." index="2"]
|
||||
sprite_frames = SubResource("SpriteFrames_o203p")
|
||||
@@ -365,8 +365,12 @@ sources/0 = SubResource("TileSetAtlasSource_x8k35")
|
||||
[node name="AbstractLevel" type="Node2D"]
|
||||
script = ExtResource("1_o2mui")
|
||||
|
||||
[node name="Doors" type="Node2D" parent="."]
|
||||
|
||||
[node name="Objects" type="Node2D" parent="."]
|
||||
|
||||
[node name="Pickups" type="Node2D" parent="."]
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("2_r0ht6")]
|
||||
|
||||
[node name="Tiles" type="Node2D" parent="."]
|
||||
@@ -387,3 +391,4 @@ tile_set = SubResource("TileSet_l0xih")
|
||||
|
||||
[node name="PauseMenu" parent="CanvasLayer" instance=ExtResource("7_l0xih")]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
||||
@@ -1,15 +1,43 @@
|
||||
[gd_scene load_steps=7 format=4 uid="uid://bmn74wc2vophn"]
|
||||
[gd_scene load_steps=17 format=4 uid="uid://bmn74wc2vophn"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_15okj"]
|
||||
[ext_resource type="Script" uid="uid://b04km0lbc108u" path="res://game/levels/level_1.gd" id="2_hj65a"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3kyqvuxmfn8f" path="res://game/objects/fireplace.tscn" id="3_tuvkr"]
|
||||
[ext_resource type="PackedScene" uid="uid://pw8xqtpauy57" path="res://game/objects/tutorial/jump_kbd.tscn" id="4_crrvt"]
|
||||
[ext_resource type="PackedScene" uid="uid://g0n5npbt3hb2" path="res://game/doors/circle_door.tscn" id="4_yrqjd"]
|
||||
[ext_resource type="PackedScene" uid="uid://cojxqx5al7kyv" path="res://game/doors/closed_door.tscn" id="5_1skah"]
|
||||
[ext_resource type="PackedScene" uid="uid://cemhsfdru4pv6" path="res://game/objects/tutorial/movement_kbd.tscn" id="5_rifvl"]
|
||||
[ext_resource type="PackedScene" uid="uid://dwvv5dj8lqif2" path="res://game/doors/triangle_door.tscn" id="6_75eok"]
|
||||
[ext_resource type="PackedScene" uid="uid://deo60sij43ibm" path="res://game/objects/tutorial/switch_kbd.tscn" id="6_l6jt4"]
|
||||
[ext_resource type="PackedScene" uid="uid://b7imlh4sl036i" path="res://game/doors/square_door.tscn" id="7_1skah"]
|
||||
[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://c4gqqhlew67ay" path="res://game/pickups/circle_key_pickup.tscn" id="8_g1txn"]
|
||||
[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://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="11_g1txn"]
|
||||
|
||||
[node name="Level1" instance=ExtResource("1_15okj")]
|
||||
script = ExtResource("2_hj65a")
|
||||
|
||||
[node name="Door" parent="Doors" index="0" instance=ExtResource("11_g1txn")]
|
||||
position = Vector2(416, -56)
|
||||
|
||||
[node name="CircleDoor" parent="Doors" index="1" instance=ExtResource("4_yrqjd")]
|
||||
position = Vector2(1152, 88)
|
||||
|
||||
[node name="ClosedDoor" parent="Doors" index="2" instance=ExtResource("5_1skah")]
|
||||
position = Vector2(1233, 88)
|
||||
|
||||
[node name="TriangleDoor" parent="Doors" index="3" instance=ExtResource("6_75eok")]
|
||||
position = Vector2(900, -56)
|
||||
|
||||
[node name="SquareDoor" parent="Doors" index="4" instance=ExtResource("7_1skah")]
|
||||
position = Vector2(626, -56)
|
||||
|
||||
[node name="BookDoor" parent="Doors" index="5" instance=ExtResource("8_75eok")]
|
||||
position = Vector2(958, 88)
|
||||
|
||||
[node name="Fireplace" parent="Objects" index="0" instance=ExtResource("3_tuvkr")]
|
||||
position = Vector2(452, -48)
|
||||
|
||||
@@ -22,11 +50,23 @@ position = Vector2(65, 1)
|
||||
[node name="SwitchKbd" parent="Objects" index="3" instance=ExtResource("6_l6jt4")]
|
||||
position = Vector2(692, -72)
|
||||
|
||||
[node name="BookPickup" parent="Pickups" index="0" instance=ExtResource("7_fq0h3")]
|
||||
position = Vector2(145, 0)
|
||||
|
||||
[node name="CircleKeyPickup" parent="Pickups" index="1" instance=ExtResource("8_g1txn")]
|
||||
position = Vector2(172, 0)
|
||||
|
||||
[node name="SquareKeyPickup" parent="Pickups" index="2" instance=ExtResource("9_yrqjd")]
|
||||
position = Vector2(196, 0)
|
||||
|
||||
[node name="TriangleKeyPickup" parent="Pickups" index="3" instance=ExtResource("10_dea75")]
|
||||
position = Vector2(218, 0)
|
||||
|
||||
[node name="GrayWalls" parent="Tiles" index="0"]
|
||||
tile_map_data = PackedByteArray("AAD9/wEAAAABAAAAAAD+/wEAAAABAAAAAAD//wEAAAABAAAAAAAAAAEAAAABAAAAAAABAAEAAAABAAAAAAACAAEAAAABAAAAAAD8/wEAAAADAAEAAAD8/wAAAAACAAEAAAD8////AAACAAEAAAD8//7/AAACAAEAAAD8//3/AAACAAEAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAAOAAEAAAABAAAAAAAPAAEAAAABAAAAAAAQAAEAAAABAAAAAAARAAEAAAABAAAAAAASAAEAAAABAAAAAAATAAEAAAAEAAEAAAATAAAAAAAAAAEAAAATAP//AAAAAAEAAAATAP7/AAAAAAAAAAAUAP7/AAABAAAAAAAVAP7/AAABAAAAAAAWAP7/AAABAAAAAAAXAP7/AAABAAAAAAAYAP7/AAABAAAAAAAZAP7/AAABAAAAAAAaAP7/AAABAAAAAAAbAP7/AAABAAAAAAAcAP7/AAABAAAAAAAdAP7/AAABAAAAAAAeAP7/AAABAAAAAAAfAP7/AAABAAAAAAAgAP7/AAABAAAAAAAhAP7/AAABAAAAAAAiAP7/AAABAAAAAAAjAP7/AAABAAAAAAAkAP7/AAABAAAAAAAlAP7/AAABAAAAAAAmAP7/AAABAAAAAAAnAP7/AAABAAAAAAAoAP7/AAABAAAAAAApAP7/AAABAAAAAAAqAP7/AAABAAAAAAArAP7/AAABAAAAAAAsAP7/AAABAAAAAAAtAP7/AAABAAAAAAAuAP7/AAABAAAAAAAvAP7/AAABAAAAAAAwAP7/AAABAAAAAAAxAP7/AAABAAAAAAAyAP7/AAABAAAAAAAzAP7/AAABAAAAAAA0AP7/AAABAAAAAAA1AP7/AAABAAAAAAA2AP7/AAABAAAAAAA3AP7/AAABAAAAAAA4AP7/AAABAAAAAABEAP7/AAAEAAEAAABEAP3/AAAAAAEAAABEAPz/AAAAAAEAAABEAPv/AAAAAAEAAABEAPr/AAAAAAEAAAA5AP7/AAABAAAAAAA6AP7/AAABAAAAAAA7AP7/AAABAAAAAAA8AP7/AAABAAAAAAA9AP7/AAABAAAAAAA+AP7/AAABAAAAAABCAP7/AAABAAAAAABDAP7/AAABAAAAAABHAAMAAAAAAAEAAABHAAQAAAAAAAEAAABHAAUAAAAAAAEAAABHAAYAAAAAAAEAAAA5AAMAAAACAAEAAAA5AAQAAAACAAEAAAA5AAUAAAACAAEAAAA5AAYAAAACAAEAAAA5AAcAAAADAAEAAABHAAcAAAAEAAEAAABGAAcAAAABAAAAAABFAAcAAAABAAAAAABEAAcAAAABAAAAAABDAAcAAAABAAAAAABCAAcAAAABAAAAAABBAAcAAAABAAAAAABAAAcAAAABAAAAAAA/AAcAAAABAAAAAAA+AAcAAAABAAAAAAA9AAcAAAABAAAAAAA8AAcAAAABAAAAAAA7AAcAAAABAAAAAAA6AAcAAAABAAAAAAA/AP7/AAAIAAAAAABBAP7/AAAHAAAAAAA=")
|
||||
tile_map_data = PackedByteArray("AAD9/wEAAAABAAAAAAD+/wEAAAABAAAAAAD//wEAAAABAAAAAAAAAAEAAAABAAAAAAABAAEAAAABAAAAAAACAAEAAAABAAAAAAD8/wEAAAADAAEAAAD8/wAAAAACAAEAAAD8////AAACAAEAAAD8//7/AAACAAEAAAD8//3/AAACAAEAAAADAAEAAAABAAAAAAAEAAEAAAABAAAAAAAFAAEAAAABAAAAAAAGAAEAAAABAAAAAAAHAAEAAAABAAAAAAAIAAEAAAABAAAAAAAJAAEAAAABAAAAAAAKAAEAAAABAAAAAAALAAEAAAABAAAAAAAMAAEAAAABAAAAAAANAAEAAAABAAAAAAAOAAEAAAABAAAAAAAPAAEAAAABAAAAAAAQAAEAAAABAAAAAAARAAEAAAABAAAAAAASAAEAAAABAAAAAAATAAEAAAAEAAEAAAATAAAAAAAAAAEAAAATAP//AAAAAAEAAAATAP7/AAAAAAAAAAAUAP7/AAABAAAAAAAVAP7/AAABAAAAAAAWAP7/AAABAAAAAAAXAP7/AAABAAAAAAAYAP7/AAABAAAAAAAZAP7/AAABAAAAAAAaAP7/AAABAAAAAAAbAP7/AAABAAAAAAAcAP7/AAABAAAAAAAdAP7/AAABAAAAAAAeAP7/AAABAAAAAAAfAP7/AAABAAAAAAAgAP7/AAABAAAAAAAhAP7/AAABAAAAAAAiAP7/AAABAAAAAAAjAP7/AAABAAAAAAAkAP7/AAABAAAAAAAlAP7/AAABAAAAAAAmAP7/AAABAAAAAAAnAP7/AAABAAAAAAAoAP7/AAABAAAAAAApAP7/AAABAAAAAAAqAP7/AAABAAAAAAArAP7/AAABAAAAAAAsAP7/AAABAAAAAAAtAP7/AAABAAAAAAAuAP7/AAABAAAAAAAvAP7/AAABAAAAAAAwAP7/AAABAAAAAAAxAP7/AAABAAAAAAAyAP7/AAABAAAAAAAzAP7/AAABAAAAAAA0AP7/AAABAAAAAAA1AP7/AAABAAAAAAA2AP7/AAABAAAAAAA3AP7/AAABAAAAAAA4AP7/AAABAAAAAABEAP7/AAAEAAEAAABEAP3/AAAAAAEAAABEAPz/AAAAAAEAAABEAPv/AAAAAAEAAABEAPr/AAAAAAEAAAA5AP7/AAABAAAAAAA6AP7/AAABAAAAAAA7AP7/AAABAAAAAAA8AP7/AAABAAAAAAA9AP7/AAABAAAAAAA+AP7/AAABAAAAAABCAP7/AAABAAAAAABDAP7/AAABAAAAAAA5AAMAAAACAAEAAAA5AAQAAAACAAEAAAA5AAUAAAACAAEAAAA5AAYAAAACAAEAAAA5AAcAAAADAAEAAABHAAcAAAABAAAAAABGAAcAAAABAAAAAABFAAcAAAABAAAAAABEAAcAAAABAAAAAABDAAcAAAABAAAAAABCAAcAAAABAAAAAABBAAcAAAABAAAAAABAAAcAAAABAAAAAAA/AAcAAAABAAAAAAA+AAcAAAABAAAAAAA9AAcAAAABAAAAAAA8AAcAAAABAAAAAAA7AAcAAAABAAAAAAA6AAcAAAABAAAAAAA/AP7/AAAIAAAAAABBAP7/AAAHAAAAAABHAAMAAAAGAAIAAABIAAcAAAABAAAAAABJAAcAAAABAAAAAABKAAcAAAABAAAAAABLAAcAAAABAAAAAABMAAcAAAABAAAAAABNAAcAAAABAAAAAABOAAcAAAABAAAAAABPAAcAAAAEAAEAAABPAAYAAAAAAAEAAABPAAUAAAAAAAEAAABPAAQAAAAAAAEAAABPAAMAAAAAAAEAAABPAAIAAAAEAAAAAABHAAIAAAADAAAAAAAZAPr/AAAGAAIAAAA=")
|
||||
|
||||
[node name="BlackWalls" parent="Tiles" index="1"]
|
||||
tile_map_data = PackedByteArray("AABAAP7/AAAEAAIAAAA=")
|
||||
|
||||
[node name="WhiteWalls" parent="Tiles" index="2"]
|
||||
tile_map_data = PackedByteArray("AAAwAP3/AAAAAAEAAAAwAPz/AAAAAAEAAAAwAPv/AAAAAAEAAAAwAPr/AAAAAAEAAAAwAPn/AAAAAAEAAAAwAPj/AAAAAAEAAAAwAPf/AAAAAAEAAAD8//z/AAACAAEAAAD8//v/AAACAAEAAAD8//r/AAACAAEAAAD8//n/AAACAAEAAAD8//j/AAACAAEAAAD8//f/AAACAAEAAAD8//b/AAADAAAAAAD9//b/AAABAAIAAAD+//b/AAABAAIAAAD///b/AAABAAIAAAAAAPb/AAABAAIAAAABAPb/AAABAAIAAAACAPb/AAABAAIAAAADAPb/AAABAAIAAAAEAPb/AAABAAIAAAAFAPb/AAABAAIAAAAGAPb/AAABAAIAAAAHAPb/AAABAAIAAAAIAPb/AAABAAIAAAAJAPb/AAABAAIAAAAKAPb/AAABAAIAAAALAPb/AAABAAIAAAAMAPb/AAABAAIAAAANAPb/AAABAAIAAAAOAPb/AAABAAIAAAAPAPb/AAABAAIAAAAQAPb/AAABAAIAAAARAPb/AAABAAIAAAASAPb/AAABAAIAAAATAPb/AAABAAIAAAAUAPb/AAABAAIAAAAVAPb/AAABAAIAAAAWAPb/AAABAAIAAAAXAPb/AAABAAIAAAAYAPb/AAABAAIAAAAZAPb/AAABAAIAAAAaAPb/AAABAAIAAAAbAPb/AAABAAIAAAAcAPb/AAABAAIAAAAdAPb/AAABAAIAAAAeAPb/AAABAAIAAAAfAPb/AAABAAIAAAAgAPb/AAABAAIAAAAhAPb/AAABAAIAAAAiAPb/AAABAAIAAAAjAPb/AAABAAIAAAAkAPb/AAABAAIAAAAlAPb/AAABAAIAAAAmAPb/AAABAAIAAAAnAPb/AAABAAIAAAAoAPb/AAABAAIAAAApAPb/AAABAAIAAAAqAPb/AAABAAIAAAArAPb/AAABAAIAAAAsAPb/AAABAAIAAAAtAPb/AAABAAIAAAAuAPb/AAABAAIAAAAvAPb/AAABAAIAAAAwAPb/AAABAAYAAAAxAPb/AAABAAIAAAAyAPb/AAABAAIAAAAzAPb/AAABAAIAAAA0APb/AAABAAIAAAA1APb/AAABAAIAAAA2APb/AAABAAIAAAA3APb/AAABAAIAAAA4APb/AAABAAIAAAA5APb/AAABAAIAAAA6APb/AAABAAIAAAA7APb/AAABAAIAAAA8APb/AAABAAIAAAA9APb/AAABAAIAAAA+APb/AAABAAIAAAA/APb/AAABAAIAAABAAPb/AAABAAIAAABEAPn/AAAAAAEAAABEAPj/AAAAAAEAAABEAPf/AAAAAAEAAABEAPb/AAAEAAAAAABBAPb/AAABAAIAAABCAPb/AAABAAIAAABDAPb/AAABAAIAAAA+AP7/AAADAAAAAABCAP7/AAAEAAAAAAA+AP//AAACAAIAAABCAP//AAAAAAIAAAA9AP//AAABAAIAAAA8AP//AAABAAIAAAA7AP//AAABAAIAAAA6AP//AAABAAIAAABDAP//AAABAAIAAABEAP//AAABAAIAAABFAP//AAABAAIAAABGAP//AAABAAIAAAA5AP//AAADAAAAAABHAP//AAAEAAAAAAA5AAAAAAACAAEAAAA5AAEAAAACAAEAAAA5AAIAAAACAAEAAABHAAAAAAAAAAEAAABHAAEAAAAAAAEAAABHAAIAAAAAAAEAAAA=")
|
||||
tile_map_data = PackedByteArray("AAAwAP3/AAAAAAEAAAAwAPz/AAAAAAEAAAAwAPv/AAAAAAEAAAAwAPr/AAAAAAEAAAAwAPn/AAAAAAEAAAAwAPj/AAAAAAEAAAAwAPf/AAAAAAEAAAD8//z/AAACAAEAAAD8//v/AAACAAEAAAD8//r/AAACAAEAAAD8//n/AAACAAEAAAD8//j/AAACAAEAAAD8//f/AAACAAEAAAD8//b/AAADAAAAAAD9//b/AAABAAIAAAD+//b/AAABAAIAAAD///b/AAABAAIAAAAAAPb/AAABAAIAAAABAPb/AAABAAIAAAACAPb/AAABAAIAAAADAPb/AAABAAIAAAAEAPb/AAABAAIAAAAFAPb/AAABAAIAAAAGAPb/AAABAAIAAAAHAPb/AAABAAIAAAAIAPb/AAABAAIAAAAJAPb/AAABAAIAAAAKAPb/AAABAAIAAAALAPb/AAABAAIAAAAMAPb/AAABAAIAAAANAPb/AAABAAIAAAAOAPb/AAABAAIAAAAPAPb/AAABAAIAAAAQAPb/AAABAAIAAAARAPb/AAABAAIAAAASAPb/AAABAAIAAAATAPb/AAABAAIAAAAUAPb/AAABAAIAAAAVAPb/AAABAAIAAAAWAPb/AAABAAIAAAAXAPb/AAABAAIAAAAYAPb/AAABAAIAAAAZAPb/AAABAAIAAAAaAPb/AAABAAIAAAAbAPb/AAABAAIAAAAcAPb/AAABAAIAAAAdAPb/AAABAAIAAAAeAPb/AAABAAIAAAAfAPb/AAABAAIAAAAgAPb/AAABAAIAAAAhAPb/AAABAAIAAAAiAPb/AAABAAIAAAAjAPb/AAABAAIAAAAkAPb/AAABAAIAAAAlAPb/AAABAAIAAAAmAPb/AAABAAIAAAAnAPb/AAABAAIAAAAoAPb/AAABAAIAAAApAPb/AAABAAIAAAAqAPb/AAABAAIAAAArAPb/AAABAAIAAAAsAPb/AAABAAIAAAAtAPb/AAABAAIAAAAuAPb/AAABAAIAAAAvAPb/AAABAAIAAAAwAPb/AAABAAYAAAAxAPb/AAABAAIAAAAyAPb/AAABAAIAAAAzAPb/AAABAAIAAAA0APb/AAABAAIAAAA1APb/AAABAAIAAAA2APb/AAABAAIAAAA3APb/AAABAAIAAAA4APb/AAABAAIAAAA5APb/AAABAAIAAAA6APb/AAABAAIAAAA7APb/AAABAAIAAAA8APb/AAABAAIAAAA9APb/AAABAAIAAAA+APb/AAABAAIAAAA/APb/AAABAAIAAABAAPb/AAABAAIAAABEAPn/AAAAAAEAAABEAPj/AAAAAAEAAABEAPf/AAAAAAEAAABEAPb/AAAEAAAAAABBAPb/AAABAAIAAABCAPb/AAABAAIAAABDAPb/AAABAAIAAAA+AP7/AAADAAAAAABCAP7/AAAEAAAAAAA+AP//AAACAAIAAABCAP//AAAAAAIAAAA9AP//AAABAAIAAAA8AP//AAABAAIAAAA7AP//AAABAAIAAAA6AP//AAABAAIAAABDAP//AAABAAIAAABEAP//AAABAAIAAABFAP//AAABAAIAAABGAP//AAABAAIAAAA5AP//AAADAAAAAABHAP//AAAEAAAAAAA5AAAAAAACAAEAAAA5AAEAAAACAAEAAAA5AAIAAAACAAEAAABHAAAAAAAAAAEAAABHAAEAAAAAAAEAAABHAAIAAAAAAAEAAABOAAIAAAABAAIAAABNAAIAAAABAAIAAABMAAIAAAABAAIAAABLAAIAAAABAAIAAABKAAIAAAABAAIAAABJAAIAAAABAAIAAABIAAIAAAABAAIAAAAZAPf/AAAGAAEAAAAZAPj/AAAGAAEAAAAZAPn/AAAGAAEAAAA=")
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
class_name AbstractPickup
|
||||
extends Area2D
|
||||
|
||||
|
||||
func _on_body_entered(body: Node2D) -> void:
|
||||
if body.has_method("add_pickup"):
|
||||
collision_mask = 0
|
||||
body.add_pickup(self)
|
||||
@@ -0,0 +1 @@
|
||||
uid://c54xcaigi43rn
|
||||
@@ -0,0 +1,30 @@
|
||||
[gd_scene load_steps=5 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="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_33jno"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4r7i4"]
|
||||
shader = ExtResource("2_33jno")
|
||||
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 = 5.0000002375
|
||||
shader_parameter/intensity = 0.800000038
|
||||
shader_parameter/scale = 25.0000011875
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_ek4cl"]
|
||||
radius = 7.0
|
||||
|
||||
[node name="AbstractPickup" type="Area2D"]
|
||||
collision_layer = 0
|
||||
collision_mask = 136
|
||||
script = ExtResource("1_ek4cl")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_4r7i4")
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_ek4cl")
|
||||
|
||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name BookPickup
|
||||
extends AbstractPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://sheh3mtq6k8o
|
||||
@@ -0,0 +1,15 @@
|
||||
[gd_scene load_steps=5 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="Script" uid="uid://sheh3mtq6k8o" path="res://game/pickups/book_pickup.gd" id="2_jsqc0"]
|
||||
[ext_resource type="Texture2D" uid="uid://ybf6pbve48lv" path="res://images/level/pickups.png" id="3_yg5bj"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_cpnvb"]
|
||||
atlas = ExtResource("3_yg5bj")
|
||||
region = Rect2(16, 16, 16, 16)
|
||||
|
||||
[node name="BookPickup" instance=ExtResource("1_e7pu1")]
|
||||
script = ExtResource("2_jsqc0")
|
||||
|
||||
[node name="Sprite2D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_cpnvb")
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name CircleKeyPickup
|
||||
extends AbstractPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://dbssfh6ecgstl
|
||||
@@ -0,0 +1,15 @@
|
||||
[gd_scene load_steps=5 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="Script" uid="uid://dbssfh6ecgstl" path="res://game/pickups/circle_key_pickup.gd" id="2_sjfny"]
|
||||
[ext_resource type="Texture2D" uid="uid://ybf6pbve48lv" path="res://images/level/pickups.png" id="3_pwkbp"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_mprb4"]
|
||||
atlas = ExtResource("3_pwkbp")
|
||||
region = Rect2(0, 0, 16, 16)
|
||||
|
||||
[node name="CircleKeyPickup" instance=ExtResource("1_u687g")]
|
||||
script = ExtResource("2_sjfny")
|
||||
|
||||
[node name="Sprite2D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_mprb4")
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name SquareKeyPickup
|
||||
extends AbstractPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://ck5tvlprgwlet
|
||||
@@ -0,0 +1,15 @@
|
||||
[gd_scene load_steps=5 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="Script" uid="uid://ck5tvlprgwlet" path="res://game/pickups/square_key_pickup.gd" id="2_5ybdl"]
|
||||
[ext_resource type="Texture2D" uid="uid://ybf6pbve48lv" path="res://images/level/pickups.png" id="3_5ybdl"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_fx152"]
|
||||
atlas = ExtResource("3_5ybdl")
|
||||
region = Rect2(0, 16, 16, 16)
|
||||
|
||||
[node name="SquareKeyPickup" instance=ExtResource("1_20fsk")]
|
||||
script = ExtResource("2_5ybdl")
|
||||
|
||||
[node name="Sprite2D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_fx152")
|
||||
@@ -0,0 +1,2 @@
|
||||
class_name TriangleKeyPickup
|
||||
extends AbstractPickup
|
||||
@@ -0,0 +1 @@
|
||||
uid://c73gihkak2xns
|
||||
@@ -0,0 +1,15 @@
|
||||
[gd_scene load_steps=5 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="Script" uid="uid://c73gihkak2xns" path="res://game/pickups/triangle_key_pickup.gd" id="2_pn8rn"]
|
||||
[ext_resource type="Texture2D" uid="uid://ybf6pbve48lv" path="res://images/level/pickups.png" id="3_5k6x8"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_8ko2n"]
|
||||
atlas = ExtResource("3_5k6x8")
|
||||
region = Rect2(16, 0, 16, 16)
|
||||
|
||||
[node name="TriangleKeyPickup" instance=ExtResource("1_qr3v1")]
|
||||
script = ExtResource("2_pn8rn")
|
||||
|
||||
[node name="Sprite2D" parent="." index="0"]
|
||||
texture = SubResource("AtlasTexture_8ko2n")
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://sfjjweantpja"
|
||||
path="res://.godot/imported/doors.png-8e73775091cbd26b741396078949d5a2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://images/level/doors.png"
|
||||
dest_files=["res://.godot/imported/doors.png-8e73775091cbd26b741396078949d5a2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user