Added enemies

This commit is contained in:
2026-01-07 22:00:05 +03:00
parent 33cbfeebb9
commit 85f808b733
28 changed files with 729 additions and 26 deletions
+9
View File
@@ -0,0 +1,9 @@
class_name AbstractColorEnemy
extends AbstractEnemy
@onready var collision_switcher : CollisionSwitcher = $CollisionSwitcher
func _ready() -> void:
collision_switcher.material = sprite.material
@@ -0,0 +1 @@
uid://das7ujanefsn0
+26
View File
@@ -0,0 +1,26 @@
[gd_scene load_steps=6 format=3 uid="uid://d37eyum03h83i"]
[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/abstract_enemy.tscn" id="1_12hr0"]
[ext_resource type="Script" uid="uid://das7ujanefsn0" path="res://game/characters/abstract_color_enemy.gd" id="2_rd56i"]
[ext_resource type="PackedScene" uid="uid://5qlocc0yu8ug" path="res://game/collision_switcher.tscn" id="3_e5cea"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_r5rx0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ybui5"]
resource_local_to_scene = true
shader = ExtResource("3_r5rx0")
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.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[node name="AbstractColorEnemy" instance=ExtResource("1_12hr0")]
script = ExtResource("2_rd56i")
[node name="AnimatedSprite2D" parent="." index="0"]
material = SubResource("ShaderMaterial_ybui5")
[node name="CollisionSwitcher" parent="." index="2" node_paths=PackedStringArray("object") instance=ExtResource("3_e5cea")]
object = NodePath("..")
+5
View File
@@ -0,0 +1,5 @@
class_name AbstractEnemy
extends CharacterBody2D
@onready var sprite : AnimatedSprite2D = $AnimatedSprite2D
+1
View File
@@ -0,0 +1 @@
uid://but5aeh7y1s0f
+371
View File
@@ -0,0 +1,371 @@
[gd_scene load_steps=45 format=3 uid="uid://bx0luh4vdob3q"]
[ext_resource type="Script" uid="uid://but5aeh7y1s0f" path="res://game/characters/abstract_enemy.gd" id="1_2wrno"]
[ext_resource type="Texture2D" uid="uid://drk8j57acajrq" path="res://images/characters/cultist.png" id="2_mocsw"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="2_tjvyk"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_vecdo"]
shader = ExtResource("2_tjvyk")
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.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[sub_resource type="AtlasTexture" id="AtlasTexture_tjvyk"]
atlas = ExtResource("2_mocsw")
region = Rect2(128, 96, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_vecdo"]
atlas = ExtResource("2_mocsw")
region = Rect2(64, 96, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_qly8p"]
atlas = ExtResource("2_mocsw")
region = Rect2(0, 96, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_klrad"]
atlas = ExtResource("2_mocsw")
region = Rect2(160, 96, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_rjy0i"]
atlas = ExtResource("2_mocsw")
region = Rect2(96, 96, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ps2ar"]
atlas = ExtResource("2_mocsw")
region = Rect2(32, 96, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ijx3p"]
atlas = ExtResource("2_mocsw")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_nm8xp"]
atlas = ExtResource("2_mocsw")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_mocsw"]
atlas = ExtResource("2_mocsw")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_y256a"]
atlas = ExtResource("2_mocsw")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_8wpvf"]
atlas = ExtResource("2_mocsw")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_vbirv"]
atlas = ExtResource("2_mocsw")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ntvg2"]
atlas = ExtResource("2_mocsw")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ssc8d"]
atlas = ExtResource("2_mocsw")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_hrljr"]
atlas = ExtResource("2_mocsw")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ng7ok"]
atlas = ExtResource("2_mocsw")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_8s45y"]
atlas = ExtResource("2_mocsw")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_qbqct"]
atlas = ExtResource("2_mocsw")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ga5mk"]
atlas = ExtResource("2_mocsw")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_yu2nn"]
atlas = ExtResource("2_mocsw")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_g4v8m"]
atlas = ExtResource("2_mocsw")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_20lqo"]
atlas = ExtResource("2_mocsw")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_l58xb"]
atlas = ExtResource("2_mocsw")
region = Rect2(0, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_jrclg"]
atlas = ExtResource("2_mocsw")
region = Rect2(32, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_wwwee"]
atlas = ExtResource("2_mocsw")
region = Rect2(64, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_law7y"]
atlas = ExtResource("2_mocsw")
region = Rect2(96, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_hme24"]
atlas = ExtResource("2_mocsw")
region = Rect2(128, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_qawtf"]
atlas = ExtResource("2_mocsw")
region = Rect2(160, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_srxh4"]
atlas = ExtResource("2_mocsw")
region = Rect2(192, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_x6npu"]
atlas = ExtResource("2_mocsw")
region = Rect2(224, 64, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_xavx3"]
atlas = ExtResource("2_mocsw")
region = Rect2(0, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_8t4m8"]
atlas = ExtResource("2_mocsw")
region = Rect2(32, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_3seah"]
atlas = ExtResource("2_mocsw")
region = Rect2(64, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_koyeg"]
atlas = ExtResource("2_mocsw")
region = Rect2(96, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_uw3v1"]
atlas = ExtResource("2_mocsw")
region = Rect2(128, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_265lf"]
atlas = ExtResource("2_mocsw")
region = Rect2(160, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_tav7c"]
atlas = ExtResource("2_mocsw")
region = Rect2(192, 32, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_0xs27"]
atlas = ExtResource("2_mocsw")
region = Rect2(224, 32, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_2wrno"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_tjvyk")
}],
"loop": true,
"name": &"fall_down",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vecdo")
}],
"loop": true,
"name": &"fall_down_left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_qly8p")
}],
"loop": true,
"name": &"fall_down_right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_klrad")
}],
"loop": true,
"name": &"fall_up",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_rjy0i")
}],
"loop": true,
"name": &"fall_up_left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ps2ar")
}],
"loop": true,
"name": &"fall_up_right",
"speed": 5.0
}, {
"frames": [{
"duration": 9.0,
"texture": SubResource("AtlasTexture_ijx3p")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nm8xp")
}],
"loop": true,
"name": &"idle_front",
"speed": 5.0
}, {
"frames": [{
"duration": 9.0,
"texture": SubResource("AtlasTexture_mocsw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_y256a")
}],
"loop": true,
"name": &"idle_rear",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8wpvf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vbirv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ntvg2")
}],
"loop": false,
"name": &"look_around_front_1",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ssc8d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hrljr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ng7ok")
}],
"loop": false,
"name": &"look_around_front_2",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_8s45y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qbqct")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ga5mk")
}],
"loop": false,
"name": &"look_around_rear_1",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_yu2nn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_g4v8m")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_20lqo")
}],
"loop": false,
"name": &"look_around_rear_2",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_l58xb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_jrclg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wwwee")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_law7y")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hme24")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qawtf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_srxh4")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_x6npu")
}],
"loop": true,
"name": &"walk_left",
"speed": 10.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_xavx3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8t4m8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3seah")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_koyeg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uw3v1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_265lf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_tav7c")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0xs27")
}],
"loop": true,
"name": &"walk_right",
"speed": 10.0
}]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_mocsw"]
radius = 4.0
height = 28.0
[node name="AbstractEnemy" type="CharacterBody2D"]
collision_layer = 0
script = ExtResource("1_2wrno")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = SubResource("ShaderMaterial_vecdo")
sprite_frames = SubResource("SpriteFrames_2wrno")
animation = &"walk_right"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 2)
shape = SubResource("CapsuleShape2D_mocsw")
+2
View File
@@ -0,0 +1,2 @@
class_name BlackEnemy
extends AbstractColorEnemy
+1
View File
@@ -0,0 +1 @@
uid://c2knsjcp6faf6
+26
View File
@@ -0,0 +1,26 @@
[gd_scene load_steps=5 format=3 uid="uid://cutjutvd8dqqc"]
[ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/abstract_color_enemy.tscn" id="1_gj2ks"]
[ext_resource type="Script" uid="uid://c2knsjcp6faf6" path="res://game/characters/black_enemy.gd" id="2_332ds"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_3jy5n"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3jy5n"]
resource_local_to_scene = true
shader = ExtResource("3_3jy5n")
shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = true
shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[node name="BlackEnemy" instance=ExtResource("1_gj2ks")]
collision_layer = 4
script = ExtResource("2_332ds")
[node name="AnimatedSprite2D" parent="." index="0"]
material = SubResource("ShaderMaterial_3jy5n")
[node name="CollisionSwitcher" parent="." index="2"]
initial_state = 0
+2
View File
@@ -0,0 +1,2 @@
class_name GrayEnemy
extends AbstractEnemy
+1
View File
@@ -0,0 +1 @@
uid://cern5veiqkrkc
+23
View File
@@ -0,0 +1,23 @@
[gd_scene load_steps=5 format=3 uid="uid://cb0w6mt8g4mer"]
[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/abstract_enemy.tscn" id="1_q3s46"]
[ext_resource type="Script" uid="uid://cern5veiqkrkc" path="res://game/characters/gray_enemy.gd" id="2_olede"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_ho47d"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hsdrn"]
shader = ExtResource("3_ho47d")
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.0
shader_parameter/intensity = 0.70000003325
shader_parameter/scale = 20.0
[node name="GrayEnemy" instance=ExtResource("1_q3s46")]
collision_layer = 16
collision_mask = 137
script = ExtResource("2_olede")
[node name="AnimatedSprite2D" parent="." index="0"]
material = SubResource("ShaderMaterial_hsdrn")
+11 -1
View File
@@ -2,6 +2,9 @@ class_name Player
extends CharacterBody2D
signal dead
const ANIMATION_IDLE = "idle"
const ANIMATION_LOOK_AROUND_1 = "look_around_1"
const ANIMATION_LOOK_AROUND_2 = "look_around_2"
@@ -47,7 +50,14 @@ func _physics_process(delta: float) -> void:
velocity.x = move_toward(velocity.x, 0, acceleration * delta)
_update_animation()
move_and_slide()
var was_collided := move_and_slide()
if was_collided:
for i in range(get_slide_collision_count()):
var collision := get_slide_collision(i)
if collision.get_collider() is AbstractEnemy:
queue_free()
dead.emit()
func _input(event: InputEvent) -> void:
+1 -1
View File
@@ -307,7 +307,7 @@ script = ExtResource("1_xln5q")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = SubResource("ShaderMaterial_i05k5")
sprite_frames = SubResource("SpriteFrames_v8w1g")
animation = &"fall_up"
animation = &"look_around_1"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0, 1)
+2
View File
@@ -0,0 +1,2 @@
class_name WhiteEnemy
extends AbstractColorEnemy
+1
View File
@@ -0,0 +1 @@
uid://dmcpkytgiuedi
+24
View File
@@ -0,0 +1,24 @@
[gd_scene load_steps=5 format=3 uid="uid://bv2gahb4wxgb1"]
[ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/abstract_color_enemy.tscn" id="1_3yi7g"]
[ext_resource type="Script" uid="uid://dmcpkytgiuedi" path="res://game/characters/white_enemy.gd" id="2_c7pdf"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_uj6yw"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_gfhm1"]
resource_local_to_scene = true
shader = ExtResource("3_uj6yw")
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.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[node name="WhiteEnemy" instance=ExtResource("1_3yi7g")]
collision_layer = 64
collision_mask = 129
script = ExtResource("2_c7pdf")
[node name="AnimatedSprite2D" parent="." index="0"]
material = SubResource("ShaderMaterial_gfhm1")
+7 -11
View File
@@ -37,12 +37,7 @@ const SHADER_INTENSITY = "shader_parameter/intensity"
@export var object : CollisionObject2D
@export var state := _state:
set(value):
if (_state != value):
_state = value
get():
return _state
@export var initial_state : State = State.White
var material : Material:
@@ -50,7 +45,7 @@ var material : Material:
material = value
_apply_color()
var _state : State = State.White:
var _state : State:
set(value):
_state = value
_apply_color()
@@ -70,6 +65,8 @@ func _ready() -> void:
_grey_mask = _get_grey_collision(object.collision_mask)
_color_mask = _get_color_collision(object.collision_mask)
_state = initial_state
func switch_color(time: float = 0.0) -> void:
@@ -102,9 +99,9 @@ func _set_shader_internsity(value: float) -> void:
func _update_state() -> void:
match _state:
State.TransitionToBlack:
state = State.Black
_state = State.Black
State.TransitionToWhite:
state = State.White
_state = State.White
func _apply_color() -> void:
@@ -124,8 +121,7 @@ func _apply_color() -> void:
object.collision_layer = layer
object.collision_mask = mask
if material != null:
var is_black := _state == State.Black or _state == State.TransitionToBlack
material.set(SHADER_SWITCH_COLORS, is_black)
+7
View File
@@ -3,13 +3,20 @@ extends Node2D
@onready var pause_menu : PauseMenu = $%PauseMenu
@onready var game_over_menu : GameOverMenu = $%GameOverMenu
func _ready() -> void:
pause_menu.hide()
game_over_menu.hide()
func _input(event: InputEvent) -> void:
if event.is_action_pressed("pause"):
get_tree().paused = true
pause_menu.show()
func _on_player_dead() -> void:
get_tree().paused = true
game_over_menu.show()
+10 -1
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://mpsu4g2b5h3a"]
[gd_scene load_steps=15 format=3 uid="uid://mpsu4g2b5h3a"]
[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.tscn" id="2_r0ht6"]
@@ -7,6 +7,7 @@
[ext_resource type="Material" uid="uid://d2o2o1w8kb51g" path="res://game/materials/white_walls.tres" id="5_6b8cu"]
[ext_resource type="Material" uid="uid://bhksbugqhxxa0" path="res://game/materials/black_walls.tres" id="6_x8k35"]
[ext_resource type="PackedScene" uid="uid://dsts4y32slhnc" path="res://game/menu/pause_menu.tscn" id="7_l0xih"]
[ext_resource type="PackedScene" uid="uid://84lhc3yn8vub" path="res://game/menu/game_over_menu.tscn" id="8_b7vts"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_pi5fd"]
texture = ExtResource("3_fnnmn")
@@ -371,6 +372,8 @@ script = ExtResource("1_o2mui")
[node name="Pickups" type="Node2D" parent="."]
[node name="Enemies" type="Node2D" parent="."]
[node name="Player" parent="." instance=ExtResource("2_r0ht6")]
[node name="Tiles" type="Node2D" parent="."]
@@ -392,3 +395,9 @@ tile_set = SubResource("TileSet_l0xih")
[node name="PauseMenu" parent="CanvasLayer" instance=ExtResource("7_l0xih")]
unique_name_in_owner = true
visible = false
[node name="GameOverMenu" parent="CanvasLayer" instance=ExtResource("8_b7vts")]
unique_name_in_owner = true
visible = false
[connection signal="dead" from="Player" to="." method="_on_player_dead"]
+30 -11
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=17 format=4 uid="uid://bmn74wc2vophn"]
[gd_scene load_steps=21 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"]
@@ -16,6 +16,10 @@
[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"]
[ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/bookstand.tscn" id="13_g3b4m"]
[ext_resource type="PackedScene" uid="uid://cb0w6mt8g4mer" path="res://game/characters/gray_enemy.tscn" id="18_blgb8"]
[ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/black_enemy.tscn" id="19_ohfy3"]
[ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/white_enemy.tscn" id="20_rt0xo"]
[node name="Level1" instance=ExtResource("1_15okj")]
script = ExtResource("2_hj65a")
@@ -27,16 +31,16 @@ position = Vector2(416, -56)
position = Vector2(1152, 88)
[node name="ClosedDoor" parent="Doors" index="2" instance=ExtResource("5_1skah")]
position = Vector2(1233, 88)
position = Vector2(1104, -56)
[node name="TriangleDoor" parent="Doors" index="3" instance=ExtResource("6_75eok")]
position = Vector2(900, -56)
position = Vector2(896, -56)
[node name="SquareDoor" parent="Doors" index="4" instance=ExtResource("7_1skah")]
position = Vector2(626, -56)
position = Vector2(624, -56)
[node name="BookDoor" parent="Doors" index="5" instance=ExtResource("8_75eok")]
position = Vector2(958, 88)
position = Vector2(1280, 88)
[node name="Fireplace" parent="Objects" index="0" instance=ExtResource("3_tuvkr")]
position = Vector2(452, -48)
@@ -50,23 +54,38 @@ position = Vector2(65, 1)
[node name="SwitchKbd" parent="Objects" index="3" instance=ExtResource("6_l6jt4")]
position = Vector2(692, -72)
[node name="Bookstand" parent="Objects" index="4" instance=ExtResource("13_g3b4m")]
position = Vector2(1216, 102)
[node name="BookPickup" parent="Pickups" index="0" instance=ExtResource("7_fq0h3")]
position = Vector2(145, 0)
position = Vector2(1216, 86)
[node name="CircleKeyPickup" parent="Pickups" index="1" instance=ExtResource("8_g1txn")]
position = Vector2(172, 0)
position = Vector2(949, 88)
[node name="SquareKeyPickup" parent="Pickups" index="2" instance=ExtResource("9_yrqjd")]
position = Vector2(196, 0)
position = Vector2(306, -56)
[node name="TriangleKeyPickup" parent="Pickups" index="3" instance=ExtResource("10_dea75")]
position = Vector2(218, 0)
position = Vector2(803, -56)
[node name="GrayEnemy" parent="Enemies" index="0" instance=ExtResource("18_blgb8")]
position = Vector2(1390, 96)
[node name="BlackEnemy" parent="Enemies" index="1" instance=ExtResource("19_ohfy3")]
position = Vector2(936, -48)
[node name="WhiteEnemy" parent="Enemies" index="2" instance=ExtResource("20_rt0xo")]
position = Vector2(743, -48)
[node name="Player" parent="." index="4"]
position = Vector2(-13, 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/AAABAAAAAAA5AAMAAAACAAEAAAA5AAQAAAACAAEAAAA5AAUAAAACAAEAAAA5AAYAAAACAAEAAAA5AAcAAAADAAEAAABHAAcAAAABAAAAAABGAAcAAAABAAAAAABFAAcAAAABAAAAAABEAAcAAAABAAAAAABDAAcAAAABAAAAAABCAAcAAAABAAAAAABBAAcAAAABAAAAAABAAAcAAAABAAAAAAA/AAcAAAABAAAAAAA+AAcAAAABAAAAAAA9AAcAAAABAAAAAAA8AAcAAAABAAAAAAA7AAcAAAABAAAAAAA6AAcAAAABAAAAAAA/AP7/AAAIAAAAAABBAP7/AAAHAAAAAABHAAMAAAAGAAIAAABIAAcAAAABAAAAAABJAAcAAAABAAAAAABKAAcAAAABAAAAAABLAAcAAAABAAAAAABMAAcAAAABAAAAAABNAAcAAAABAAAAAABOAAcAAAABAAAAAABPAAcAAAAEAAEAAABPAAYAAAAAAAEAAABPAAUAAAAAAAEAAABPAAQAAAAAAAEAAABPAAMAAAAAAAEAAABPAAIAAAAEAAAAAABHAAIAAAADAAAAAAAZAPr/AAAGAAIAAAA=")
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/AAABAAAAAABEAPr/AAAGAAIAAAA5AP7/AAABAAAAAAA6AP7/AAABAAAAAAA7AP7/AAABAAAAAAA8AP7/AAABAAAAAAA9AP7/AAABAAAAAAA+AP7/AAABAAAAAABCAP7/AAABAAAAAABDAP7/AAABAAAAAAA5AAMAAAACAAEAAAA5AAQAAAACAAEAAAA5AAUAAAACAAEAAAA5AAYAAAACAAEAAAA5AAcAAAADAAEAAABHAAcAAAABAAAAAABGAAcAAAABAAAAAABFAAcAAAABAAAAAABEAAcAAAABAAAAAABDAAcAAAABAAAAAABCAAcAAAABAAAAAABBAAcAAAABAAAAAABAAAcAAAABAAAAAAA/AAcAAAABAAAAAAA+AAcAAAABAAAAAAA9AAcAAAABAAAAAAA8AAcAAAABAAAAAAA7AAcAAAABAAAAAAA6AAcAAAABAAAAAAA/AP7/AAAIAAAAAABBAP7/AAAHAAAAAABHAAMAAAAGAAIAAABIAAcAAAABAAAAAABJAAcAAAABAAAAAABKAAcAAAABAAAAAABLAAcAAAABAAAAAABMAAcAAAABAAAAAABNAAcAAAABAAAAAABOAAcAAAABAAAAAABPAAcAAAABAAAAAABPAAIAAAAEAAAAAABHAAIAAAADAAAAAAAZAPr/AAAGAAIAAAAmAPr/AAAGAAIAAAA3APr/AAAGAAIAAABFAP7/AAABAAAAAABGAP7/AAABAAAAAABHAP7/AAABAAAAAABIAP7/AAABAAAAAABJAP7/AAABAAAAAABKAP7/AAABAAAAAABLAP7/AAABAAAAAABMAP7/AAABAAAAAABNAP7/AAABAAAAAABOAP7/AAABAAAAAABPAP7/AAABAAAAAABQAP7/AAABAAAAAABRAP7/AAABAAAAAABSAP7/AAABAAAAAABTAP7/AAABAAAAAABUAP7/AAABAAAAAABVAP7/AAABAAAAAABWAP7/AAABAAAAAABXAP7/AAABAAAAAABYAP7/AAABAAAAAABZAP7/AAABAAAAAABaAP7/AAABAAAAAABbAP7/AAABAAAAAABcAP7/AAABAAAAAABdAP7/AAABAAAAAABeAP7/AAABAAAAAABfAP7/AAABAAAAAABgAP7/AAABAAAAAABhAP7/AAABAAAAAABiAP7/AAABAAAAAABEAPn/AAADAAAAAABQAAcAAAABAAAAAABRAAcAAAABAAAAAABSAAcAAAABAAAAAABTAAcAAAABAAAAAABUAAcAAAABAAAAAABVAAcAAAABAAAAAABWAAcAAAABAAAAAABXAAcAAAABAAAAAABYAAcAAAABAAAAAABZAAcAAAABAAAAAABaAAcAAAABAAAAAABbAAcAAAABAAAAAABcAAcAAAAEAAEAAABcAAYAAAAAAAEAAABcAAUAAAAAAAEAAABcAAQAAAAAAAEAAABcAAMAAAAAAAEAAABPAAMAAAAGAAIAAAA=")
[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//AAAEAAAAAAA5AAAAAAACAAEAAAA5AAEAAAACAAEAAAA5AAIAAAACAAEAAABHAAAAAAAAAAEAAABHAAEAAAAAAAEAAABHAAIAAAAAAAEAAABOAAIAAAABAAIAAABNAAIAAAABAAIAAABMAAIAAAABAAIAAABLAAIAAAABAAIAAABKAAIAAAABAAIAAABJAAIAAAABAAIAAABIAAIAAAABAAIAAAAZAPf/AAAGAAEAAAAZAPj/AAAGAAEAAAAZAPn/AAAGAAEAAAA=")
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/AAAGAAEAAAAmAPn/AAAGAAEAAAAmAPj/AAAGAAEAAAAmAPf/AAAGAAEAAAA3APn/AAAGAAEAAAA3APj/AAAGAAEAAAA3APf/AAAGAAEAAABFAPn/AAABAAIAAABGAPn/AAABAAIAAABHAPn/AAABAAIAAABIAPn/AAABAAIAAABJAPn/AAABAAIAAABRAPn/AAABAAIAAABKAPn/AAABAAIAAABLAPn/AAABAAIAAABMAPn/AAABAAIAAABNAPn/AAABAAIAAABOAPn/AAABAAIAAABPAPn/AAABAAIAAABQAPn/AAABAAIAAABSAPn/AAABAAIAAABTAPn/AAABAAIAAABUAPn/AAABAAIAAABVAPn/AAABAAIAAABWAPn/AAABAAIAAABbAPn/AAABAAIAAABXAPn/AAABAAIAAABYAPn/AAABAAIAAABZAPn/AAABAAIAAABaAPn/AAABAAIAAABcAPn/AAABAAIAAABdAPn/AAABAAIAAABeAPn/AAABAAIAAABfAPn/AAABAAIAAABgAPn/AAABAAIAAABhAPn/AAABAAIAAABiAPn/AAABAAIAAABjAPn/AAABAAIAAABkAPn/AAABAAIAAABlAPn/AAABAAIAAABmAPn/AAABAAIAAABnAPn/AAABAAIAAABoAPn/AAABAAIAAABpAPn/AAABAAIAAABqAPn/AAABAAIAAABrAPn/AAABAAIAAABsAPn/AAABAAIAAABtAPn/AAABAAIAAABuAPn/AAABAAIAAABvAPn/AAABAAIAAABwAPn/AAABAAIAAABxAPn/AAABAAIAAAByAPn/AAABAAIAAABzAPn/AAABAAIAAAB0APn/AAABAAIAAAB1APn/AAABAAIAAABjAP7/AAABAAAAAABkAP7/AAABAAAAAABlAP7/AAABAAAAAABmAP7/AAABAAAAAABnAP7/AAABAAAAAABoAP7/AAABAAAAAABpAP7/AAABAAAAAABqAP7/AAABAAAAAABrAP7/AAABAAAAAABsAP7/AAABAAAAAABtAP7/AAABAAAAAABuAP7/AAABAAAAAABvAP7/AAABAAAAAABwAP7/AAABAAAAAABxAP7/AAABAAAAAAByAP7/AAABAAAAAABzAP7/AAABAAAAAAB0AP7/AAABAAAAAAB1AP7/AAABAAAAAABQAAIAAAABAAIAAABRAAIAAAABAAIAAABSAAIAAAABAAIAAABTAAIAAAABAAIAAABUAAIAAAABAAIAAABVAAIAAAABAAIAAABWAAIAAAABAAIAAABXAAIAAAABAAIAAABaAAIAAAABAAIAAABZAAIAAAABAAIAAABYAAIAAAABAAIAAABbAAIAAAABAAIAAABcAAIAAAAEAAAAAAA=")
+22
View File
@@ -0,0 +1,22 @@
class_name GameOverMenu
extends Control
@onready var main_menu_button : Button = $%MainMenuButton
@onready var focus_timer : Timer = $FocusTimer
func _on_main_menu_button_pressed() -> void:
get_tree().paused = false
get_tree().change_scene_to_file("res://game/menu/main_menu.tscn")
func _on_visibility_changed() -> void:
if visible:
if focus_timer != null:
focus_timer.start()
func _on_focus_timer_timeout() -> void:
if main_menu_button != null:
main_menu_button.grab_focus()
+1
View File
@@ -0,0 +1 @@
uid://bb257l7unttky
+55
View File
@@ -0,0 +1,55 @@
[gd_scene load_steps=3 format=3 uid="uid://84lhc3yn8vub"]
[ext_resource type="Theme" uid="uid://bh56my8b2htnr" path="res://themes/menu.tres" id="1_htxfh"]
[ext_resource type="Script" uid="uid://bb257l7unttky" path="res://game/menu/game_over_menu.gd" id="2_m1ad0"]
[node name="GameOverMenu" type="Control"]
process_mode = 2
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_htxfh")
script = ExtResource("2_m1ad0")
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_constants/separation = 64
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
text = "Game over"
horizontal_alignment = 1
[node name="MainMenuButton" type="Button" parent="MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Main menu"
[node name="FocusTimer" type="Timer" parent="."]
one_shot = true
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="timeout" from="FocusTimer" to="." method="_on_focus_timer_timeout"]
+1 -1
View File
@@ -33,7 +33,7 @@ float cellular(vec2 coord) {
}
void fragment() {
if (COLOR.a != 0.0) {
if (COLOR.a > 0.01) {
float l = dot(COLOR.rgb, vec3(0.2126, 0.7152, 0.0722));
bool is_black = l < threshold;