From e2c5cd35ec516c729d069e8f3a0d0b41fadd812b Mon Sep 17 00:00:00 2001 From: Ruslan Ignatov Date: Sat, 20 Jun 2026 21:58:27 +0300 Subject: [PATCH] Reworked Cultist --- .../enemies/abstract_color_cultist.gd | 10 - .../enemies/abstract_color_cultist.gd.uid | 1 - .../enemies/abstract_color_cultist.tscn | 17 - game/characters/enemies/abstract_cultist.gd | 71 -- game/characters/enemies/black_cultist.gd | 2 - game/characters/enemies/black_cultist.gd.uid | 1 - game/characters/enemies/black_cultist.tscn | 43 -- game/characters/enemies/cultist.gd | 144 ++++ ...abstract_cultist.gd.uid => cultist.gd.uid} | 0 .../{abstract_cultist.tscn => cultist.tscn} | 133 ++-- game/characters/enemies/cultist_sprite.gd | 64 +- game/characters/enemies/cultist_sprite.gd.uid | 2 +- game/characters/enemies/cultist_sprite.tscn | 57 +- game/characters/enemies/gray_cultist.gd | 2 - game/characters/enemies/gray_cultist.gd.uid | 1 - game/characters/enemies/gray_cultist.tscn | 38 - .../enemies/state_machine/cultist_state.gd | 2 +- .../state_machine/cultist_state_machine.gd | 2 +- game/characters/enemies/white_cultist.gd | 2 - game/characters/enemies/white_cultist.gd.uid | 1 - game/characters/enemies/white_cultist.tscn | 40 -- game/killing_area.gd | 1 + game/levels/level_4.tscn | 20 +- game/levels/level_6.tscn | 29 +- game/levels/level_7.gd | 11 + game/levels/level_7.tscn | 661 +++++++++++++++--- game/levels/test_level.tscn | 34 +- .../{enemy_white.tres => cultist.tres} | 10 +- game/materials/enemy_black.tres | 15 - game/materials/enemy_gray.tres | 14 - game/materials/platform_color.tres | 2 +- game/shaders/black_n_white.gdshader | 6 +- 32 files changed, 948 insertions(+), 488 deletions(-) delete mode 100644 game/characters/enemies/abstract_color_cultist.gd delete mode 100644 game/characters/enemies/abstract_color_cultist.gd.uid delete mode 100644 game/characters/enemies/abstract_color_cultist.tscn delete mode 100644 game/characters/enemies/abstract_cultist.gd delete mode 100644 game/characters/enemies/black_cultist.gd delete mode 100644 game/characters/enemies/black_cultist.gd.uid delete mode 100644 game/characters/enemies/black_cultist.tscn create mode 100644 game/characters/enemies/cultist.gd rename game/characters/enemies/{abstract_cultist.gd.uid => cultist.gd.uid} (100%) rename game/characters/enemies/{abstract_cultist.tscn => cultist.tscn} (73%) delete mode 100644 game/characters/enemies/gray_cultist.gd delete mode 100644 game/characters/enemies/gray_cultist.gd.uid delete mode 100644 game/characters/enemies/gray_cultist.tscn delete mode 100644 game/characters/enemies/white_cultist.gd delete mode 100644 game/characters/enemies/white_cultist.gd.uid delete mode 100644 game/characters/enemies/white_cultist.tscn rename game/materials/{enemy_white.tres => cultist.tres} (58%) delete mode 100644 game/materials/enemy_black.tres delete mode 100644 game/materials/enemy_gray.tres diff --git a/game/characters/enemies/abstract_color_cultist.gd b/game/characters/enemies/abstract_color_cultist.gd deleted file mode 100644 index 9c99a06..0000000 --- a/game/characters/enemies/abstract_color_cultist.gd +++ /dev/null @@ -1,10 +0,0 @@ -class_name AbstractColorCultist -extends AbstractCultist - - -@onready var collision_switcher : CollisionSwitcher = $CollisionSwitcher - - -func _ready() -> void: - super._ready() - collision_switcher.add_material(sprite.material) diff --git a/game/characters/enemies/abstract_color_cultist.gd.uid b/game/characters/enemies/abstract_color_cultist.gd.uid deleted file mode 100644 index 9c8f9a4..0000000 --- a/game/characters/enemies/abstract_color_cultist.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://das7ujanefsn0 diff --git a/game/characters/enemies/abstract_color_cultist.tscn b/game/characters/enemies/abstract_color_cultist.tscn deleted file mode 100644 index acbb5ff..0000000 --- a/game/characters/enemies/abstract_color_cultist.tscn +++ /dev/null @@ -1,17 +0,0 @@ -[gd_scene format=3 uid="uid://d37eyum03h83i"] - -[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/abstract_cultist.tscn" id="1_12hr0"] -[ext_resource type="Script" uid="uid://das7ujanefsn0" path="res://game/characters/enemies/abstract_color_cultist.gd" id="2_rd56i"] -[ext_resource type="PackedScene" uid="uid://5qlocc0yu8ug" path="res://game/collision_switcher.tscn" id="3_e5cea"] - -[sub_resource type="ViewportTexture" id="ViewportTexture_f5md8"] -viewport_path = NodePath("SubViewport") - -[node name="AbstractColorCultist" unique_id=644641841 instance=ExtResource("1_12hr0")] -script = ExtResource("2_rd56i") - -[node name="CultistSprite" parent="." index="1" unique_id=797412888] -texture = SubResource("ViewportTexture_f5md8") - -[node name="CollisionSwitcher" parent="." index="2" unique_id=991274552 node_paths=PackedStringArray("objects") instance=ExtResource("3_e5cea")] -objects = [NodePath("..")] diff --git a/game/characters/enemies/abstract_cultist.gd b/game/characters/enemies/abstract_cultist.gd deleted file mode 100644 index ade1f9d..0000000 --- a/game/characters/enemies/abstract_cultist.gd +++ /dev/null @@ -1,71 +0,0 @@ -class_name AbstractCultist -extends CharacterBody2D - - -const MAX_WALK_SPEED = 85 -const MAX_CHASE_SPEED = 170 -const ACCELERATION = 600.0 -const JUMP_VELOCITY = 222.0 -const JUMP_GRAVITY_FACTOR = 1.0 -const FALL_GRAVITY_FACTOR = 1.5 - - -var target_x := 0.0 - - -@onready var sprite : Sprite2D = $CultistSprite -@onready var water_splash : GPUParticles2D = $WaterSplash -@onready var animated_sprite : AnimatedSprite2D = $SubViewport/CultistSprite - -@onready var left_wall_high_ray : RayCast2D = $WallCheckHigh/LeftWallRay -@onready var right_wall_high_ray : RayCast2D = $WallCheckHigh/RightWallRay - -@onready var left_wall_low_ray : RayCast2D = $WallCheckLow/LeftWallRay -@onready var right_wall_low_ray : RayCast2D = $WallCheckLow/RightWallRay - -@onready var left_player_close_ray : RayCast2D = $%LeftPlayerCloseRay -@onready var right_player_close_ray : RayCast2D = $%RightPlayerCloseRay - -@onready var left_player_distant_ray : RayCast2D = $%LeftPlayerDistantRay -@onready var right_player_distant_ray : RayCast2D = $%RightPlayerDistantRay - -@onready var state_machine : CultistStateMachine = $CultistStateMachine -@onready var chase_left_state : CultistState = $CultistStateMachine/ChaseLeftState -@onready var chase_right_state : CultistState = $CultistStateMachine/ChaseRightState -@onready var look_around_state : CultistState = $CultistStateMachine/LookAroundState - - -func _ready() -> void: - _set_ray_cast_enable(left_player_close_ray, false) - _set_ray_cast_enable(right_player_close_ray, false) - _set_ray_cast_enable(left_player_distant_ray, false) - _set_ray_cast_enable(right_player_distant_ray, false) - - state_machine.init() - - -func _physics_process(delta: float) -> void: - state_machine.physics_process(delta) - move_and_slide() - - -func kill(type := KillingArea.Type.None) -> void: - match type: - KillingArea.Type.Water: - SoundManager.play_sfx_stream(SoundManager.sfx_stream_splash, global_position) - water_splash.finished.connect(queue_free) - water_splash.restart() - _: - queue_free() - - -func update_x_velocity(direction: int, max_speed: float, delta: float) -> void: - velocity.x = move_toward(velocity.x, direction * max_speed, ACCELERATION * delta) - - -func get_gravity_factor() -> float: - return JUMP_GRAVITY_FACTOR if velocity.y < 0.0 else FALL_GRAVITY_FACTOR - - -func _set_ray_cast_enable(ray_cast: RayCast2D, enabled: bool) -> void: - ray_cast.process_mode = Node.PROCESS_MODE_INHERIT if enabled else Node.PROCESS_MODE_DISABLED diff --git a/game/characters/enemies/black_cultist.gd b/game/characters/enemies/black_cultist.gd deleted file mode 100644 index 915caf2..0000000 --- a/game/characters/enemies/black_cultist.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name BlackCultist -extends AbstractColorCultist diff --git a/game/characters/enemies/black_cultist.gd.uid b/game/characters/enemies/black_cultist.gd.uid deleted file mode 100644 index 064624d..0000000 --- a/game/characters/enemies/black_cultist.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://c2knsjcp6faf6 diff --git a/game/characters/enemies/black_cultist.tscn b/game/characters/enemies/black_cultist.tscn deleted file mode 100644 index a1e997a..0000000 --- a/game/characters/enemies/black_cultist.tscn +++ /dev/null @@ -1,43 +0,0 @@ -[gd_scene format=3 uid="uid://cutjutvd8dqqc"] - -[ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/enemies/abstract_color_cultist.tscn" id="1_gj2ks"] -[ext_resource type="Script" uid="uid://c2knsjcp6faf6" path="res://game/characters/enemies/black_cultist.gd" id="2_332ds"] -[ext_resource type="Material" uid="uid://dggr8t4b30e3n" path="res://game/materials/enemy_black.tres" id="3_v1if5"] - -[sub_resource type="ViewportTexture" id="ViewportTexture_q6bby"] -viewport_path = NodePath("SubViewport") - -[node name="BlackCultist" unique_id=1910124567 instance=ExtResource("1_gj2ks")] -collision_layer = 4 -collision_mask = 3 -script = ExtResource("2_332ds") - -[node name="CultistSprite" parent="." index="0" unique_id=797412888] -material = ExtResource("3_v1if5") -texture = SubResource("ViewportTexture_q6bby") - -[node name="CollisionSwitcher" parent="." index="2" unique_id=991274552] -initial_state = 0 - -[node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854] -collision_mask = 3 - -[node name="RightWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135] -collision_mask = 3 - -[node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027] -target_position = Vector2(-32, 0) -collision_mask = 11 - -[node name="RightPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="1" unique_id=1559118218] -target_position = Vector2(32, 0) -collision_mask = 11 - -[node name="LeftPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="0" unique_id=1491085518] -collision_mask = 11 - -[node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831] -collision_mask = 11 - -[node name="KillingArea" parent="." index="8" unique_id=1891922549] -collision_mask = 8 diff --git a/game/characters/enemies/cultist.gd b/game/characters/enemies/cultist.gd new file mode 100644 index 0000000..d562da3 --- /dev/null +++ b/game/characters/enemies/cultist.gd @@ -0,0 +1,144 @@ +@tool +class_name Cultist +extends CharacterBody2D + + +enum Type { + White, + Black, + Gray, +} + + +const MAX_WALK_SPEED = 85 +const MAX_CHASE_SPEED = 170 +const ACCELERATION = 600.0 +const JUMP_VELOCITY = 222.0 +const JUMP_GRAVITY_FACTOR = 1.0 +const FALL_GRAVITY_FACTOR = 1.5 + + +@export var type := Type.White: + set(value): + type = value + if is_node_ready(): + _updated_sprite() + _updated_collision() + + +var target_x := 0.0 + + +@onready var sprite : Sprite2D = $CultistSprite +@onready var animated_sprite : AnimatedSprite2D = $CultistSprite.animated_sprite +@onready var water_splash : GPUParticles2D = $WaterSplash +@onready var killing_area : KillingArea = $KillingArea + +@onready var left_wall_high_ray : RayCast2D = $WallCheckHigh/LeftWallRay +@onready var right_wall_high_ray : RayCast2D = $WallCheckHigh/RightWallRay + +@onready var left_wall_low_ray : RayCast2D = $WallCheckLow/LeftWallRay +@onready var right_wall_low_ray : RayCast2D = $WallCheckLow/RightWallRay + +@onready var left_player_close_ray : RayCast2D = $%LeftPlayerCloseRay +@onready var right_player_close_ray : RayCast2D = $%RightPlayerCloseRay + +@onready var left_player_distant_ray : RayCast2D = $%LeftPlayerDistantRay +@onready var right_player_distant_ray : RayCast2D = $%RightPlayerDistantRay + +@onready var wall_rays : Array[RayCast2D] = [ + left_wall_high_ray, right_wall_high_ray, + left_wall_low_ray, right_wall_low_ray, +] +@onready var player_rays : Array[RayCast2D] = [ + left_player_close_ray, right_player_close_ray, + left_player_distant_ray, right_player_distant_ray, +] + +@onready var state_machine : CultistStateMachine = $CultistStateMachine +@onready var chase_left_state : CultistState = $CultistStateMachine/ChaseLeftState +@onready var chase_right_state : CultistState = $CultistStateMachine/ChaseRightState +@onready var look_around_state : CultistState = $CultistStateMachine/LookAroundState + + +func _ready() -> void: + _updated_sprite() + _updated_collision() + if not Engine.is_editor_hint(): + _set_ray_cast_enable(left_player_close_ray, false) + _set_ray_cast_enable(right_player_close_ray, false) + _set_ray_cast_enable(left_player_distant_ray, false) + _set_ray_cast_enable(right_player_distant_ray, false) + state_machine.init() + + +func _physics_process(delta: float) -> void: + if not Engine.is_editor_hint(): + state_machine.physics_process(delta) + move_and_slide() + + +func kill(killing_type := KillingArea.Type.None) -> void: + match killing_type: + KillingArea.Type.Water: + SoundManager.play_sfx_stream(SoundManager.sfx_stream_splash, global_position) + water_splash.finished.connect(queue_free) + water_splash.restart() + _: + queue_free() + + +func update_x_velocity(direction: int, max_speed: float, delta: float) -> void: + velocity.x = move_toward(velocity.x, direction * max_speed, ACCELERATION * delta) + + +func get_gravity_factor() -> float: + return JUMP_GRAVITY_FACTOR if velocity.y < 0.0 else FALL_GRAVITY_FACTOR + + +func _updated_sprite() -> void: + sprite.type = type + + +func _updated_collision() -> void: + const C = CollisionSwitcher.Collisions + + var layer: int + var world_mask: int + var player_mask: int + + match type: + Type.White: + layer = C.WHITE_ENEMY + world_mask = C.WHITE_WORLD + player_mask = C.WHITE_PLAYER + Type.Black: + layer = C.BLACK_ENEMY + world_mask = C.BLACK_WORLD + player_mask = C.BLACK_PLAYER + Type.Gray: + layer = C.GREY_ENEMY + world_mask = C.WHITE_WORLD | C.BLACK_WORLD + player_mask = C.WHITE_PLAYER | C.BLACK_PLAYER + _: + return + world_mask |= C.GREY_WORLD + + collision_layer = layer + _set_mask(world_mask, player_mask) + + +func _set_mask(world_mask: int, player_mask: int) -> void: + collision_mask = world_mask + for ray in wall_rays: + ray.collision_mask = world_mask + for ray in player_rays: + ray.collision_mask = world_mask | player_mask + killing_area.collision_mask = player_mask + + +func _set_ray_cast_enable(ray_cast: RayCast2D, enabled: bool) -> void: + ray_cast.process_mode = Node.PROCESS_MODE_INHERIT if enabled else Node.PROCESS_MODE_DISABLED + if Engine.is_editor_hint(): + if enabled: ray_cast.show() + else: ray_cast.hide() diff --git a/game/characters/enemies/abstract_cultist.gd.uid b/game/characters/enemies/cultist.gd.uid similarity index 100% rename from game/characters/enemies/abstract_cultist.gd.uid rename to game/characters/enemies/cultist.gd.uid diff --git a/game/characters/enemies/abstract_cultist.tscn b/game/characters/enemies/cultist.tscn similarity index 73% rename from game/characters/enemies/abstract_cultist.tscn rename to game/characters/enemies/cultist.tscn index cef1a46..125c432 100644 --- a/game/characters/enemies/abstract_cultist.tscn +++ b/game/characters/enemies/cultist.tscn @@ -1,23 +1,38 @@ [gd_scene format=3 uid="uid://bx0luh4vdob3q"] -[ext_resource type="Script" uid="uid://but5aeh7y1s0f" path="res://game/characters/enemies/abstract_cultist.gd" id="1_2wrno"] -[ext_resource type="PackedScene" uid="uid://dtxiercm8dsfm" path="res://game/characters/enemies/cultist_sprite.tscn" id="2_tjvyk"] -[ext_resource type="PackedScene" uid="uid://8yd8f5x1hujv" path="res://game/characters/water_splash.tscn" id="2_w1t0g"] -[ext_resource type="PackedScene" uid="uid://dike8xgbqdut2" path="res://game/killing_area.tscn" id="3_tjvyk"] -[ext_resource type="PackedScene" uid="uid://bg7k6ovbk1xgm" path="res://game/characters/enemies/state_machine/cultist_state_machine.tscn" id="4_yu28k"] -[ext_resource type="PackedScene" uid="uid://bq1v55jv4c6qe" path="res://game/characters/enemies/state_machine/cultist_state.tscn" id="5_tu2pi"] -[ext_resource type="Script" uid="uid://bqnq6m0s4etqh" path="res://game/characters/enemies/state_machine/fall_state.gd" id="7_7tkj8"] -[ext_resource type="Script" uid="uid://b8o0lvuy6a5q1" path="res://game/characters/enemies/state_machine/fall_left_state.gd" id="8_2opx4"] -[ext_resource type="Script" uid="uid://cxg54u14yb6go" path="res://game/characters/enemies/state_machine/fall_right_state.gd" id="9_lu83c"] -[ext_resource type="Script" uid="uid://bfp8gywqqkju7" path="res://game/characters/enemies/state_machine/look_around_state.gd" id="10_lu83c"] -[ext_resource type="Script" uid="uid://hgn4yll571hp" path="res://game/characters/enemies/state_machine/walk_left_state.gd" id="11_lh753"] -[ext_resource type="Script" uid="uid://bwwhmjxhg2adp" path="res://game/characters/enemies/state_machine/walk_right_state.gd" id="12_lh753"] -[ext_resource type="Script" uid="uid://cn2lfl4kuxvjk" path="res://game/characters/enemies/state_machine/chase_left_state.gd" id="13_42ivi"] -[ext_resource type="Script" uid="uid://cqlym4lqahsd3" path="res://game/characters/enemies/state_machine/cultist_jump_left_state.gd" id="14_42ivi"] -[ext_resource type="Script" uid="uid://3kl84tu1vwiv" path="res://game/characters/enemies/state_machine/chase_right_state.gd" id="14_cqp7f"] -[ext_resource type="Script" uid="uid://cf52bjcpasft1" path="res://game/characters/enemies/state_machine/cultist_jump_right_state.gd" id="15_cqp7f"] +[ext_resource type="Script" uid="uid://but5aeh7y1s0f" path="res://game/characters/enemies/cultist.gd" id="1_ah13v"] +[ext_resource type="PackedScene" uid="uid://8yd8f5x1hujv" path="res://game/characters/water_splash.tscn" id="2_go1hq"] +[ext_resource type="PackedScene" uid="uid://dtxiercm8dsfm" path="res://game/characters/enemies/cultist_sprite.tscn" id="3_mbt3t"] +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="4_ul6ar"] +[ext_resource type="PackedScene" uid="uid://dike8xgbqdut2" path="res://game/killing_area.tscn" id="5_500rx"] +[ext_resource type="PackedScene" uid="uid://bg7k6ovbk1xgm" path="res://game/characters/enemies/state_machine/cultist_state_machine.tscn" id="6_oqd45"] +[ext_resource type="PackedScene" uid="uid://bq1v55jv4c6qe" path="res://game/characters/enemies/state_machine/cultist_state.tscn" id="7_nsxyj"] +[ext_resource type="Script" uid="uid://bqnq6m0s4etqh" path="res://game/characters/enemies/state_machine/fall_state.gd" id="8_h77eg"] +[ext_resource type="Script" uid="uid://b8o0lvuy6a5q1" path="res://game/characters/enemies/state_machine/fall_left_state.gd" id="9_uasba"] +[ext_resource type="Script" uid="uid://cxg54u14yb6go" path="res://game/characters/enemies/state_machine/fall_right_state.gd" id="10_mye2w"] +[ext_resource type="Script" uid="uid://bfp8gywqqkju7" path="res://game/characters/enemies/state_machine/look_around_state.gd" id="11_rqqg0"] +[ext_resource type="Script" uid="uid://hgn4yll571hp" path="res://game/characters/enemies/state_machine/walk_left_state.gd" id="12_vm7uu"] +[ext_resource type="Script" uid="uid://bwwhmjxhg2adp" path="res://game/characters/enemies/state_machine/walk_right_state.gd" id="13_x8b3k"] +[ext_resource type="Script" uid="uid://cn2lfl4kuxvjk" path="res://game/characters/enemies/state_machine/chase_left_state.gd" id="14_d5aal"] +[ext_resource type="Script" uid="uid://3kl84tu1vwiv" path="res://game/characters/enemies/state_machine/chase_right_state.gd" id="15_1yxn0"] +[ext_resource type="Script" uid="uid://cqlym4lqahsd3" path="res://game/characters/enemies/state_machine/cultist_jump_left_state.gd" id="16_11eub"] +[ext_resource type="Script" uid="uid://cf52bjcpasft1" path="res://game/characters/enemies/state_machine/cultist_jump_right_state.gd" id="17_6hjcx"] -[sub_resource type="ViewportTexture" id="ViewportTexture_cqp7f"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ah13v"] +resource_local_to_scene = true +shader = ExtResource("4_ul6ar") +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 = 3.0 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_go1hq"] viewport_path = NodePath("SubViewport") [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_mocsw"] @@ -28,24 +43,18 @@ height = 28.0 radius = 4.0 height = 28.0 -[node name="AbstractCultist" type="CharacterBody2D" unique_id=1676614852] -collision_layer = 0 -script = ExtResource("1_2wrno") +[node name="Cultist" type="CharacterBody2D" unique_id=1676614852] +collision_layer = 64 +collision_mask = 33 +script = ExtResource("1_ah13v") -[node name="WaterSplash" parent="." unique_id=658940825 instance=ExtResource("2_w1t0g")] +[node name="WaterSplash" parent="." unique_id=658940825 instance=ExtResource("2_go1hq")] position = Vector2(0, -14) -[node name="CultistSprite" type="Sprite2D" parent="." unique_id=797412888] -texture = SubResource("ViewportTexture_cqp7f") - -[node name="SubViewport" type="SubViewport" parent="." unique_id=903152885] -transparent_bg = true -canvas_item_default_texture_filter = 0 -size = Vector2i(32, 32) - -[node name="CultistSprite" parent="SubViewport" unique_id=1997264413 instance=ExtResource("2_tjvyk")] -material = null -position = Vector2(16, 16) +[node name="CultistSprite" parent="." unique_id=1997264413 instance=ExtResource("3_mbt3t")] +material = SubResource("ShaderMaterial_ah13v") +position = Vector2(0, 1) +texture = SubResource("ViewportTexture_go1hq") [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=185651284] position = Vector2(0, 2) @@ -56,18 +65,22 @@ position = Vector2(0, -8) [node name="LeftWallRay" type="RayCast2D" parent="WallCheckHigh" unique_id=1026693538] target_position = Vector2(-16, 0) +collision_mask = 33 [node name="RightWallRay" type="RayCast2D" parent="WallCheckHigh" unique_id=1129233918] target_position = Vector2(16, 0) +collision_mask = 33 [node name="WallCheckLow" type="Node2D" parent="." unique_id=782156094] position = Vector2(0, 9) [node name="LeftWallRay" type="RayCast2D" parent="WallCheckLow" unique_id=521416854] target_position = Vector2(-16, 0) +collision_mask = 33 [node name="RightWallRay" type="RayCast2D" parent="WallCheckLow" unique_id=1457669135] target_position = Vector2(16, 0) +collision_mask = 33 [node name="PlayerCloseCheck" type="Node2D" parent="." unique_id=1593775088] position = Vector2(0, -8) @@ -75,12 +88,12 @@ position = Vector2(0, -8) [node name="LeftPlayerCloseRay" type="RayCast2D" parent="PlayerCloseCheck" unique_id=947570027] unique_name_in_owner = true target_position = Vector2(-48, 0) -collision_mask = 0 +collision_mask = 161 [node name="RightPlayerCloseRay" type="RayCast2D" parent="PlayerCloseCheck" unique_id=1559118218] unique_name_in_owner = true target_position = Vector2(48, 0) -collision_mask = 0 +collision_mask = 161 [node name="PlayerDistantCheck" type="Node2D" parent="." unique_id=1597489123] position = Vector2(0, -8) @@ -88,43 +101,43 @@ position = Vector2(0, -8) [node name="LeftPlayerDistantRay" type="RayCast2D" parent="PlayerDistantCheck" unique_id=1491085518] unique_name_in_owner = true target_position = Vector2(-320, 0) -collision_mask = 0 +collision_mask = 161 [node name="RightPlayerDistantRay" type="RayCast2D" parent="PlayerDistantCheck" unique_id=1377654831] unique_name_in_owner = true target_position = Vector2(320, 0) -collision_mask = 0 +collision_mask = 161 -[node name="KillingArea" parent="." unique_id=1891922549 instance=ExtResource("3_tjvyk")] -collision_mask = 0 +[node name="KillingArea" parent="." unique_id=1891922549 instance=ExtResource("5_500rx")] +collision_mask = 128 [node name="CollisionShape2D" type="CollisionShape2D" parent="KillingArea" unique_id=1710758452] position = Vector2(0, 2) shape = SubResource("CapsuleShape2D_tjvyk") -[node name="CultistStateMachine" parent="." unique_id=633169960 node_paths=PackedStringArray("cultist", "initial_state") instance=ExtResource("4_yu28k")] +[node name="CultistStateMachine" parent="." unique_id=633169960 node_paths=PackedStringArray("cultist", "initial_state") instance=ExtResource("6_oqd45")] cultist = NodePath("..") -initial_state = NodePath("WalkLeftState") +initial_state = NodePath("LookAroundState") -[node name="FallState" parent="CultistStateMachine" unique_id=1764777802 node_paths=PackedStringArray("look_around_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("7_7tkj8") +[node name="FallState" parent="CultistStateMachine" unique_id=1764777802 node_paths=PackedStringArray("look_around_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("8_h77eg") look_around_state = NodePath("../LookAroundState") cultist = NodePath("../..") -[node name="FallLeftState" parent="CultistStateMachine" unique_id=1011952297 node_paths=PackedStringArray("fall_state", "look_around_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("8_2opx4") +[node name="FallLeftState" parent="CultistStateMachine" unique_id=1011952297 node_paths=PackedStringArray("fall_state", "look_around_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("9_uasba") fall_state = NodePath("../FallState") look_around_state = NodePath("../LookAroundState") cultist = NodePath("../..") -[node name="FallRightState" parent="CultistStateMachine" unique_id=1932915544 node_paths=PackedStringArray("fall_state", "look_around_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("9_lu83c") +[node name="FallRightState" parent="CultistStateMachine" unique_id=1932915544 node_paths=PackedStringArray("fall_state", "look_around_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("10_mye2w") fall_state = NodePath("../FallState") look_around_state = NodePath("../LookAroundState") cultist = NodePath("../..") -[node name="LookAroundState" parent="CultistStateMachine" unique_id=2025927882 node_paths=PackedStringArray("fall_state", "walk_left_state", "walk_right_state", "chase_left_state", "chase_right_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("10_lu83c") +[node name="LookAroundState" parent="CultistStateMachine" unique_id=2025927882 node_paths=PackedStringArray("fall_state", "walk_left_state", "walk_right_state", "chase_left_state", "chase_right_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("11_rqqg0") fall_state = NodePath("../FallState") walk_left_state = NodePath("../WalkLeftState") walk_right_state = NodePath("../WalkRightState") @@ -132,40 +145,40 @@ chase_left_state = NodePath("../ChaseLeftState") chase_right_state = NodePath("../ChaseRightState") cultist = NodePath("../..") -[node name="WalkLeftState" parent="CultistStateMachine" unique_id=276543931 node_paths=PackedStringArray("chase_state", "another_direction_walk_state", "fall_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("11_lh753") +[node name="WalkLeftState" parent="CultistStateMachine" unique_id=276543931 node_paths=PackedStringArray("chase_state", "another_direction_walk_state", "fall_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("12_vm7uu") chase_state = NodePath("../ChaseLeftState") another_direction_walk_state = NodePath("../WalkRightState") fall_state = NodePath("../FallLeftState") cultist = NodePath("../..") -[node name="WalkRightState" parent="CultistStateMachine" unique_id=1671686910 node_paths=PackedStringArray("chase_state", "another_direction_walk_state", "fall_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("12_lh753") +[node name="WalkRightState" parent="CultistStateMachine" unique_id=1671686910 node_paths=PackedStringArray("chase_state", "another_direction_walk_state", "fall_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("13_x8b3k") chase_state = NodePath("../ChaseRightState") another_direction_walk_state = NodePath("../WalkLeftState") fall_state = NodePath("../FallRightState") cultist = NodePath("../..") -[node name="ChaseLeftState" parent="CultistStateMachine" unique_id=209480830 node_paths=PackedStringArray("look_around_state", "jump_state", "fall_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("13_42ivi") +[node name="ChaseLeftState" parent="CultistStateMachine" unique_id=209480830 node_paths=PackedStringArray("look_around_state", "jump_state", "fall_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("14_d5aal") look_around_state = NodePath("../LookAroundState") jump_state = NodePath("../JumpLeftState") fall_state = NodePath("../FallState") cultist = NodePath("../..") -[node name="ChaseRightState" parent="CultistStateMachine" unique_id=383038915 node_paths=PackedStringArray("look_around_state", "jump_state", "fall_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("14_cqp7f") +[node name="ChaseRightState" parent="CultistStateMachine" unique_id=383038915 node_paths=PackedStringArray("look_around_state", "jump_state", "fall_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("15_1yxn0") look_around_state = NodePath("../LookAroundState") jump_state = NodePath("../JumpRightState") fall_state = NodePath("../FallState") cultist = NodePath("../..") -[node name="JumpLeftState" parent="CultistStateMachine" unique_id=739226464 node_paths=PackedStringArray("chase_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("14_42ivi") +[node name="JumpLeftState" parent="CultistStateMachine" unique_id=739226464 node_paths=PackedStringArray("chase_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("16_11eub") chase_state = NodePath("../ChaseLeftState") cultist = NodePath("../..") -[node name="JumpRightState" parent="CultistStateMachine" unique_id=756126836 node_paths=PackedStringArray("chase_state", "cultist") instance=ExtResource("5_tu2pi")] -script = ExtResource("15_cqp7f") +[node name="JumpRightState" parent="CultistStateMachine" unique_id=756126836 node_paths=PackedStringArray("chase_state", "cultist") instance=ExtResource("7_nsxyj")] +script = ExtResource("17_6hjcx") chase_state = NodePath("../ChaseRightState") cultist = NodePath("../..") diff --git a/game/characters/enemies/cultist_sprite.gd b/game/characters/enemies/cultist_sprite.gd index 669d744..7fb1720 100644 --- a/game/characters/enemies/cultist_sprite.gd +++ b/game/characters/enemies/cultist_sprite.gd @@ -1,7 +1,31 @@ +@tool class_name CultistSprite -extends AnimatedSprite2D +extends Sprite2D +enum View { + Front, + Right, + Left, +} + + +const SHADER_SWITCH_COLORS = "shader_parameter/switch_colors" +const SHADER_INTENSITY = "shader_parameter/intensity" +const SHADER_SEED = "shader_parameter/seed" + + +const is_color_switched : Dictionary[Cultist.Type, bool] = { + Cultist.Type.White: false, + Cultist.Type.Black: true, + Cultist.Type.Gray: false, +} +const intensity : Dictionary[Cultist.Type, float] = { + Cultist.Type.White: 1.0, + Cultist.Type.Black: 1.0, + Cultist.Type.Gray: 0.5, +} + const ANIMATION_FALL = "fall" const ANIMATION_FALL_LEFT = "fall_left" const ANIMATION_FALL_RIGHT = "fall_right" @@ -21,3 +45,41 @@ const LOOK_AROUND_ANIMATIONS : Array[String] = [ ANIMATION_LOOK_AROUND_1, ANIMATION_LOOK_AROUND_2, ] + + +@export var type := Cultist.Type.White: + set(value): + type = value + if is_node_ready(): + _update_type() + +@export var view := View.Front: + set(value): + view = value + if is_node_ready(): + _update_view() + + +@onready var animated_sprite : AnimatedSprite2D = $SubViewport/AnimatedSprite2D + + +func _ready() -> void: + _update_type() + _update_view() + if not Engine.is_editor_hint(): + material.set(SHADER_SEED, randf()) + + +func _update_type() -> void: + material.set(SHADER_INTENSITY, intensity[type]) + material.set(SHADER_SWITCH_COLORS, is_color_switched[type]) + + +func _update_view() -> void: + match view: + View.Front: + animated_sprite.animation = ANIMATION_IDLE + View.Left: + animated_sprite.animation = ANIMATION_WALK_LEFT + View.Right: + animated_sprite.animation = ANIMATION_WALK_RIGHT diff --git a/game/characters/enemies/cultist_sprite.gd.uid b/game/characters/enemies/cultist_sprite.gd.uid index 9107b1e..b46a920 100644 --- a/game/characters/enemies/cultist_sprite.gd.uid +++ b/game/characters/enemies/cultist_sprite.gd.uid @@ -1 +1 @@ -uid://dkxmwkjttbf2d +uid://bmk0r5ovfi60u diff --git a/game/characters/enemies/cultist_sprite.tscn b/game/characters/enemies/cultist_sprite.tscn index e3532c7..f397e39 100644 --- a/game/characters/enemies/cultist_sprite.tscn +++ b/game/characters/enemies/cultist_sprite.tscn @@ -1,18 +1,11 @@ [gd_scene format=3 uid="uid://dtxiercm8dsfm"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_ew6gn"] +[ext_resource type="Material" uid="uid://dwgqr50guokxg" path="res://game/materials/cultist.tres" id="1_1pedr"] +[ext_resource type="Script" uid="uid://bmk0r5ovfi60u" path="res://game/characters/enemies/cultist_sprite.gd" id="2_ew6gn"] [ext_resource type="Texture2D" uid="uid://drk8j57acajrq" path="res://images/characters/cultist.png" id="2_g4n4l"] -[ext_resource type="Script" uid="uid://dkxmwkjttbf2d" path="res://game/characters/enemies/cultist_sprite.gd" id="3_ef0vi"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_vecdo"] -shader = ExtResource("1_ew6gn") -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="ViewportTexture" id="ViewportTexture_bhunq"] +viewport_path = NodePath("SubViewport") [sub_resource type="AtlasTexture" id="AtlasTexture_l58xb"] atlas = ExtResource("2_g4n4l") @@ -177,7 +170,7 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_x6npu") }], -"loop": true, +"loop": 1, "name": &"chase_left", "speed": 20.0 }, { @@ -206,7 +199,7 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_0xs27") }], -"loop": true, +"loop": 1, "name": &"chase_right", "speed": 20.0 }, { @@ -214,7 +207,7 @@ animations = [{ "duration": 10.0, "texture": SubResource("AtlasTexture_tjvyk") }], -"loop": true, +"loop": 1, "name": &"fall", "speed": 5.0 }, { @@ -222,7 +215,7 @@ animations = [{ "duration": 5.0, "texture": SubResource("AtlasTexture_vecdo") }], -"loop": true, +"loop": 1, "name": &"fall_left", "speed": 5.0 }, { @@ -230,7 +223,7 @@ animations = [{ "duration": 5.0, "texture": SubResource("AtlasTexture_qly8p") }], -"loop": true, +"loop": 1, "name": &"fall_right", "speed": 5.0 }, { @@ -244,7 +237,7 @@ animations = [{ "duration": 5.0, "texture": SubResource("AtlasTexture_ijx3p") }], -"loop": true, +"loop": 1, "name": &"idle", "speed": 5.0 }, { @@ -252,7 +245,7 @@ animations = [{ "duration": 5.0, "texture": SubResource("AtlasTexture_klrad") }], -"loop": true, +"loop": 1, "name": &"jump", "speed": 5.0 }, { @@ -260,7 +253,7 @@ animations = [{ "duration": 5.0, "texture": SubResource("AtlasTexture_rjy0i") }], -"loop": true, +"loop": 1, "name": &"jump_left", "speed": 5.0 }, { @@ -268,7 +261,7 @@ animations = [{ "duration": 5.0, "texture": SubResource("AtlasTexture_ps2ar") }], -"loop": true, +"loop": 1, "name": &"jump_right", "speed": 5.0 }, { @@ -285,7 +278,7 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_soo8x") }], -"loop": true, +"loop": 1, "name": &"look_around", "speed": 5.0 }, { @@ -305,7 +298,7 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_vbirv") }], -"loop": false, +"loop": 0, "name": &"look_around_1", "speed": 5.0 }, { @@ -325,7 +318,7 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_hrljr") }], -"loop": false, +"loop": 0, "name": &"look_around_2", "speed": 5.0 }, { @@ -354,7 +347,7 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_x6npu") }], -"loop": true, +"loop": 1, "name": &"walk_left", "speed": 10.0 }, { @@ -383,13 +376,21 @@ animations = [{ "duration": 1.0, "texture": SubResource("AtlasTexture_0xs27") }], -"loop": true, +"loop": 1, "name": &"walk_right", "speed": 10.0 }] -[node name="CultistSprite" type="AnimatedSprite2D" unique_id=351120861] -material = SubResource("ShaderMaterial_vecdo") +[node name="CultistSprite" type="Sprite2D" unique_id=1870874123] +material = ExtResource("1_1pedr") +texture = SubResource("ViewportTexture_bhunq") +script = ExtResource("2_ew6gn") + +[node name="SubViewport" type="SubViewport" parent="." unique_id=1722886587] +transparent_bg = true +size = Vector2i(32, 32) + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="SubViewport" unique_id=1233349440] +position = Vector2(16, 16) sprite_frames = SubResource("SpriteFrames_2wrno") animation = &"idle" -script = ExtResource("3_ef0vi") diff --git a/game/characters/enemies/gray_cultist.gd b/game/characters/enemies/gray_cultist.gd deleted file mode 100644 index e6227b9..0000000 --- a/game/characters/enemies/gray_cultist.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name GrayCultist -extends AbstractCultist diff --git a/game/characters/enemies/gray_cultist.gd.uid b/game/characters/enemies/gray_cultist.gd.uid deleted file mode 100644 index fd0e901..0000000 --- a/game/characters/enemies/gray_cultist.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://cern5veiqkrkc diff --git a/game/characters/enemies/gray_cultist.tscn b/game/characters/enemies/gray_cultist.tscn deleted file mode 100644 index b17e6ae..0000000 --- a/game/characters/enemies/gray_cultist.tscn +++ /dev/null @@ -1,38 +0,0 @@ -[gd_scene format=3 uid="uid://cb0w6mt8g4mer"] - -[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/abstract_cultist.tscn" id="1_q3s46"] -[ext_resource type="Script" uid="uid://cern5veiqkrkc" path="res://game/characters/enemies/gray_cultist.gd" id="2_olede"] -[ext_resource type="Material" uid="uid://dbkn3k0batj5w" path="res://game/materials/enemy_gray.tres" id="3_ho47d"] - -[sub_resource type="ViewportTexture" id="ViewportTexture_b3gyl"] -viewport_path = NodePath("SubViewport") - -[node name="GrayCultist" unique_id=139812221 instance=ExtResource("1_q3s46")] -collision_layer = 16 -collision_mask = 35 -script = ExtResource("2_olede") - -[node name="CultistSprite" parent="." index="0" unique_id=797412888] -material = ExtResource("3_ho47d") -texture = SubResource("ViewportTexture_b3gyl") - -[node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854] -collision_mask = 35 - -[node name="RightWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135] -collision_mask = 35 - -[node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027] -collision_mask = 171 - -[node name="RightPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="1" unique_id=1559118218] -collision_mask = 171 - -[node name="LeftPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="0" unique_id=1491085518] -collision_mask = 171 - -[node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831] -collision_mask = 171 - -[node name="KillingArea" parent="." index="7" unique_id=1891922549] -collision_mask = 136 diff --git a/game/characters/enemies/state_machine/cultist_state.gd b/game/characters/enemies/state_machine/cultist_state.gd index ebfa4b6..9881e5b 100644 --- a/game/characters/enemies/state_machine/cultist_state.gd +++ b/game/characters/enemies/state_machine/cultist_state.gd @@ -6,7 +6,7 @@ const DIRECTION_LEFT = -1 const DIRECTION_RIGHT = 1 -@export var cultist: AbstractCultist +@export var cultist: Cultist func _get_colliding_player(ray_cast: RayCast2D) -> Player: diff --git a/game/characters/enemies/state_machine/cultist_state_machine.gd b/game/characters/enemies/state_machine/cultist_state_machine.gd index 741e729..ec9f433 100644 --- a/game/characters/enemies/state_machine/cultist_state_machine.gd +++ b/game/characters/enemies/state_machine/cultist_state_machine.gd @@ -2,4 +2,4 @@ class_name CultistStateMachine extends StateMachine -@export var cultist: AbstractCultist +@export var cultist: Cultist diff --git a/game/characters/enemies/white_cultist.gd b/game/characters/enemies/white_cultist.gd deleted file mode 100644 index d954912..0000000 --- a/game/characters/enemies/white_cultist.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name WhiteCultist -extends AbstractColorCultist diff --git a/game/characters/enemies/white_cultist.gd.uid b/game/characters/enemies/white_cultist.gd.uid deleted file mode 100644 index 16adfb2..0000000 --- a/game/characters/enemies/white_cultist.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dmcpkytgiuedi diff --git a/game/characters/enemies/white_cultist.tscn b/game/characters/enemies/white_cultist.tscn deleted file mode 100644 index f9fe87e..0000000 --- a/game/characters/enemies/white_cultist.tscn +++ /dev/null @@ -1,40 +0,0 @@ -[gd_scene format=3 uid="uid://bv2gahb4wxgb1"] - -[ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/enemies/abstract_color_cultist.tscn" id="1_3yi7g"] -[ext_resource type="Script" uid="uid://dmcpkytgiuedi" path="res://game/characters/enemies/white_cultist.gd" id="2_c7pdf"] -[ext_resource type="Material" uid="uid://ci7xuso12af5" path="res://game/materials/enemy_white.tres" id="3_36f86"] - -[sub_resource type="ViewportTexture" id="ViewportTexture_fb5t4"] -viewport_path = NodePath("SubViewport") - -[node name="WhiteEnemy" unique_id=486389199 instance=ExtResource("1_3yi7g")] -collision_layer = 64 -collision_mask = 33 -script = ExtResource("2_c7pdf") - -[node name="CultistSprite" parent="." index="0" unique_id=797412888] -material = ExtResource("3_36f86") -texture = SubResource("ViewportTexture_fb5t4") - -[node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854] -collision_mask = 33 - -[node name="RightWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135] -collision_mask = 33 - -[node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027] -target_position = Vector2(-32, 0) -collision_mask = 161 - -[node name="RightPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="1" unique_id=1559118218] -target_position = Vector2(32, 0) -collision_mask = 161 - -[node name="LeftPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="0" unique_id=1491085518] -collision_mask = 161 - -[node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831] -collision_mask = 161 - -[node name="KillingArea" parent="." index="8" unique_id=1891922549] -collision_mask = 128 diff --git a/game/killing_area.gd b/game/killing_area.gd index 590410a..8ee974e 100644 --- a/game/killing_area.gd +++ b/game/killing_area.gd @@ -5,6 +5,7 @@ extends Area2D enum Type { None, Water, + Cultist, } diff --git a/game/levels/level_4.tscn b/game/levels/level_4.tscn index 0917f4f..b3948d2 100644 --- a/game/levels/level_4.tscn +++ b/game/levels/level_4.tscn @@ -2,14 +2,11 @@ [ext_resource type="PackedScene" uid="uid://mpsu4g2b5h3a" path="res://game/levels/abstract_level.tscn" id="1_v1h2f"] [ext_resource type="PackedScene" uid="uid://b7mhdrj3b6loq" path="res://game/doors/door.tscn" id="2_h35x0"] -[ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/enemies/white_cultist.tscn" id="3_2vfi4"] [ext_resource type="PackedScene" uid="uid://b7imlh4sl036i" path="res://game/doors/square_door.tscn" id="3_qpxtm"] [ext_resource type="PackedScene" uid="uid://cvhovmnl050os" path="res://game/objects/decorative/wardrobe.tscn" id="4_mpb5r"] [ext_resource type="PackedScene" uid="uid://ciubf1ttwc133" path="res://game/pickups/square_key_pickup.tscn" id="4_p0pgv"] [ext_resource type="PackedScene" uid="uid://b8pvlnpdnfmd0" path="res://game/objects/decorative/chair_f.tscn" id="5_i374g"] -[ext_resource type="PackedScene" uid="uid://cb0w6mt8g4mer" path="res://game/characters/enemies/gray_cultist.tscn" id="5_p0pgv"] [ext_resource type="PackedScene" uid="uid://c6qy8uybkn4x" path="res://game/objects/decorative/plate.tscn" id="6_gwfl1"] -[ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/enemies/black_cultist.tscn" id="7_12tya"] [ext_resource type="PackedScene" uid="uid://bdwbdnbenueu1" path="res://game/objects/decorative/table_m.tscn" id="7_fxyr3"] [ext_resource type="PackedScene" uid="uid://d3m8kf7lqmyb8" path="res://game/objects/decorative/flask_l.tscn" id="8_pp088"] [ext_resource type="PackedScene" uid="uid://bt4smb361amjj" path="res://game/objects/decorative/flask_s.tscn" id="9_gtr04"] @@ -22,6 +19,7 @@ [ext_resource type="PackedScene" uid="uid://b6wgujelmka5p" path="res://game/objects/decorative/chair_r.tscn" id="17_fovvg"] [ext_resource type="PackedScene" uid="uid://baqawh1drerhk" path="res://game/objects/decorative/table_s.tscn" id="18_0iuyy"] [ext_resource type="PackedScene" uid="uid://d330w1ygg6uxy" path="res://game/objects/decorative/painting_v_l.tscn" id="19_s735u"] +[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/cultist.tscn" id="20_fah6j"] [ext_resource type="PackedScene" uid="uid://dike8xgbqdut2" path="res://game/killing_area.tscn" id="23_s735u"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_rnrg1"] @@ -244,14 +242,22 @@ position = Vector2(46, 25) [node name="SquareKeyPickup" parent="Pickups" parent_id_path=PackedInt32Array(1113969064) index="0" unique_id=1818750964 instance=ExtResource("4_p0pgv")] position = Vector2(1312, 560) -[node name="WhiteCultist" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=1184609649 instance=ExtResource("3_2vfi4")] -position = Vector2(258, 289) +[node name="Cultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=1676614852 instance=ExtResource("20_fah6j")] +position = Vector2(258, 288) +collision_layer = 64 +collision_mask = 33 -[node name="GrayCultist" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=455148405 instance=ExtResource("5_p0pgv")] +[node name="Cultist2" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=537374525 instance=ExtResource("20_fah6j")] position = Vector2(796, 592) +collision_layer = 16 +collision_mask = 35 +type = 2 -[node name="BlackCultist" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="2" unique_id=1794979765 instance=ExtResource("7_12tya")] +[node name="Cultist3" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="2" unique_id=1407425027 instance=ExtResource("20_fah6j")] position = Vector2(1162, 592) +collision_layer = 4 +collision_mask = 3 +type = 1 [node name="GrayWalls" parent="Tiles" parent_id_path=PackedInt32Array(1626037498) index="0" unique_id=557672309] tile_map_data = PackedByteArray("AAD+////AAACAAEAAAD+//7/AAACAAEAAAD+//3/AAACAAEAAAD+//z/AAACAAEAAAD+//v/AAACAAEAAAD+//r/AAACAAEAAAD+//n/AAACAAEAAAD+//j/AAACAAEAAAD+//f/AAACAAEAAAD+//b/AAACAAEAAAD+//X/AAACAAEAAAD+//T/AAACAAEAAAD+/wAAAAACAAEAAAD+/wEAAAACAAEAAAD+/wIAAAACAAEAAAD+/wMAAAACAAEAAAD+/wQAAAACAAEAAAD+/wUAAAACAAEAAAD+/wYAAAACAAEAAAD+/wcAAAACAAEAAAD+/wgAAAACAAEAAAD+/wkAAAACAAEAAAD+/woAAAACAAEAAAD+/wsAAAACAAEAAAABAAoAAAAAAAEAAAABAAkAAAAAAAEAAAABAAgAAAAAAAEAAAABAAcAAAAAAAEAAAABAAYAAAAAAAEAAAABAAUAAAAAAAEAAAABAAQAAAAAAAEAAAABAAMAAAAAAAEAAAABAAIAAAAAAAEAAAABAAEAAAAAAAEAAAABAAAAAAAAAAEAAAABAP//AAAAAAEAAAABAP7/AAAAAAEAAAABAP3/AAAAAAEAAAABAPz/AAAAAAEAAAABAPv/AAAAAAEAAAABAPr/AAAAAAEAAAABAPn/AAAAAAEAAAABAPj/AAAAAAEAAAABAPf/AAAAAAEAAAABAPb/AAAAAAEAAAABAPX/AAAAAAEAAAABAPT/AAAAAAEAAAD+/wwAAAACAAEAAAD+/w0AAAACAAEAAAD+/w4AAAACAAEAAAD+/w8AAAACAAEAAAD+/xAAAAACAAEAAAD+/xEAAAACAAEAAAD+/xIAAAACAAEAAAD//xMAAAABAAAAAAAAABMAAAABAAAAAAABABMAAAABAAAAAAACABMAAAABAAAAAAADABMAAAABAAAAAAAEABMAAAABAAAAAAAFABMAAAABAAAAAAAGABMAAAABAAAAAAAHABMAAAABAAAAAAAIABMAAAABAAAAAAAJABMAAAABAAAAAAD+/xMAAAADAAEAAAAKABMAAAABAAAAAAALABMAAAABAAAAAAAMABMAAAABAAAAAAANABMAAAABAAAAAAAOABMAAAABAAAAAAAPABMAAAABAAAAAAAQABMAAAABAAAAAAARABMAAAABAAAAAAAKAA4AAAAGAAEAAAAKAA8AAAAGAAIAAAAVAA4AAAAGAAEAAAAVAA8AAAAGAAIAAAASABMAAAABAAAAAAATABMAAAABAAAAAAAUABMAAAABAAAAAAAVABMAAAABAAAAAAAWABMAAAABAAAAAAAXABMAAAABAAAAAAAYABMAAAABAAAAAAAZABMAAAABAAAAAAAaABMAAAAEAAEAAAAaABIAAAAAAAEAAAAaABEAAAAAAAAAAAAgABEAAAACAAQAAAAgABIAAAACAAEAAAAgABMAAAACAAEAAAAgABQAAAACAAEAAAAgABUAAAACAAEAAAAgABYAAAACAAEAAAAgABcAAAACAAEAAAAgABgAAAACAAEAAAAgABkAAAACAAEAAAAgABoAAAACAAEAAAAgABsAAAACAAEAAAAgABwAAAACAAEAAAAjAAwAAAAAAAEAAAAjAA0AAAAAAAEAAAAjAA4AAAAAAAEAAAAjAA8AAAAAAAEAAAAjABAAAAAAAAEAAAAjABEAAAAAAAEAAAAjABIAAAAAAAEAAAAjABMAAAAAAAEAAAAjABQAAAAAAAEAAAAjABUAAAAAAAEAAAAjABYAAAAAAAEAAAAjABcAAAAAAAEAAAAjABgAAAAAAAEAAAAjABkAAAAAAAEAAAAjABoAAAAAAAEAAAAjABsAAAAAAAEAAAAjABwAAAAAAAEAAAAbABEAAAABAAAAAAAcABEAAAABAAAAAAAdABEAAAABAAAAAAAeABEAAAABAAAAAAAfABEAAAABAAAAAAAgAB0AAAACAAEAAAAgAB4AAAACAAEAAAAgAB8AAAACAAEAAAAgACAAAAACAAEAAAAgACEAAAACAAIAAAAhACUAAAABAAAAAAAiACUAAAABAAAAAAAjACUAAAABAAAAAAAkACUAAAABAAAAAAAlACUAAAABAAAAAAAmACUAAAABAAAAAAAnACUAAAABAAAAAAAoACUAAAABAAAAAAApACUAAAABAAAAAAAqACUAAAACAAAAAAAnACAAAAAGAAEAAAAnACEAAAAGAAIAAAAnAB0AAAACAAEAAAAnAB4AAAACAAEAAAAnAB8AAAACAAEAAAAgACUAAAABAAAAAAAfACUAAAABAAAAAAAfACEAAAABAAIAAAAeACEAAAABAAIAAAAdACEAAAABAAIAAAAcACEAAAABAAIAAAAbACEAAAABAAIAAAAaACEAAAABAAIAAAAeACUAAAABAAAAAAAdACUAAAABAAAAAAAcACUAAAABAAAAAAAbACUAAAABAAAAAAAaACUAAAABAAAAAAAZACUAAAAAAAAAAAAZACEAAAABAAIAAAAYACEAAAABAAIAAAAXACEAAAABAAIAAAAWACEAAAADAAAAAAAZACYAAAAAAAEAAAAZACcAAAAAAAEAAAAZACgAAAAAAAEAAAAZACkAAAAAAAEAAAAZACoAAAAAAAEAAAAZACsAAAAAAAEAAAAZACwAAAAAAAEAAAAZAC0AAAAAAAEAAAAZAC4AAAAAAAEAAAAZAC8AAAAAAAEAAAAZADAAAAAAAAEAAAAZADEAAAAAAAEAAAAZADIAAAAAAAEAAAAZADMAAAAAAAEAAAAZADQAAAAAAAEAAAAZADUAAAAAAAEAAAAZADYAAAAAAAEAAAAZADcAAAAAAAEAAAAWACIAAAACAAEAAAAWACMAAAACAAEAAAAWACQAAAACAAEAAAAWACUAAAACAAEAAAAWACYAAAACAAEAAAAWACcAAAACAAEAAAAWACgAAAACAAEAAAAWACkAAAACAAEAAAAWACoAAAACAAEAAAAWACsAAAACAAEAAAAWACwAAAACAAEAAAAWAC0AAAACAAEAAAAWAC4AAAACAAEAAAAWAC8AAAACAAEAAAAWADAAAAACAAEAAAAWADEAAAACAAEAAAAWADIAAAACAAEAAAAWADMAAAACAAEAAAAWADQAAAACAAEAAAAWADUAAAACAAEAAAAWADYAAAACAAEAAAAWADcAAAACAAEAAAAWADgAAAACAAEAAAAWADkAAAACAAEAAAAWADoAAAACAAEAAAAWADsAAAACAAEAAAAWADwAAAACAAEAAAAWAD0AAAACAAEAAAAWAD4AAAACAAEAAAAWAD8AAAACAAEAAAAWAEAAAAACAAEAAAAZADgAAAAAAAEAAAAZADkAAAAAAAEAAAAZADoAAAAAAAEAAAAZADsAAAAAAAEAAAAZADwAAAAAAAEAAAAZAD0AAAAAAAEAAAAZAD4AAAAAAAEAAAAZAD8AAAAAAAEAAAAZAEAAAAAAAAEAAAAZAEEAAAAAAAEAAAAWAEEAAAACAAEAAAAnABwAAAADAAAAAAAoABwAAAABAAIAAAApABwAAAABAAIAAAAqABwAAAABAAIAAAArABwAAAABAAIAAAAsABwAAAABAAIAAAAtABwAAAABAAIAAAAuABwAAAABAAIAAAAvABwAAAABAAIAAAAwABwAAAABAAIAAAAxABwAAAABAAIAAAAyABwAAAACAAYAAAAzABwAAAABAAIAAAA0ABwAAAABAAIAAAA1ABwAAAABAAIAAAA2ABwAAAABAAIAAAA3ABwAAAABAAIAAAA4ABwAAAABAAIAAAA5ABwAAAABAAIAAAA6ABwAAAABAAIAAAA7ABwAAAABAAIAAAA9ABwAAAAEAAAAAAA8ABwAAAABAAIAAAA9AB0AAAAAAAEAAAA9AB4AAAAAAAEAAAA9AB8AAAAAAAEAAAA9ACAAAAAGAAEAAAA9ACEAAAAGAAIAAAA6ACUAAAAAAAAAAAA7ACUAAAABAAAAAAA8ACUAAAABAAAAAAA9ACUAAAABAAAAAAAqACYAAAADAAEAAAA5ACYAAAABAAAAAAA4ACYAAAABAAAAAAA3ACYAAAABAAAAAAA2ACYAAAABAAAAAAA1ACYAAAABAAAAAAA0ACYAAAABAAAAAAAzACYAAAABAAAAAAAyACYAAAABAAAAAAAxACYAAAABAAAAAAAwACYAAAABAAAAAAAvACYAAAABAAAAAAAuACYAAAABAAAAAAAtACYAAAABAAAAAAAsACYAAAABAAAAAAArACYAAAABAAAAAAA6ACYAAAAEAAEAAAA+ACUAAAACAAAAAABNACUAAAAAAAAAAABOACUAAAABAAAAAABPACUAAAABAAAAAABQACUAAAABAAAAAABRACUAAAABAAAAAABSACUAAAABAAAAAABTACUAAAABAAAAAABOACAAAAAAAAEAAABOACEAAAAAAAIAAABPACEAAAACAAIAAABQACAAAAABAAIAAABRACAAAAABAAIAAABSACAAAAABAAIAAABTACAAAAABAAIAAABUACAAAAAEAAAAAABUACUAAAAEAAEAAABUACEAAAAAAAEAAABUACIAAAAAAAEAAABUACMAAAAAAAEAAABUACQAAAAAAAEAAABNACYAAAAAAAEAAAA+ACYAAAACAAEAAABNACcAAAAAAAEAAABNACgAAAAAAAEAAAA+ACcAAAACAAEAAAA+ACgAAAACAAEAAAA+ACkAAAACAAEAAABNACkAAAAAAAEAAAA/ACkAAAABAAIAAABAACkAAAABAAIAAABBACkAAAABAAIAAABCACkAAAABAAIAAABDACkAAAABAAIAAABEACkAAAABAAIAAABFACkAAAABAAIAAABGACkAAAABAAIAAABHACkAAAABAAIAAABIACkAAAABAAIAAABJACkAAAABAAIAAABKACkAAAABAAIAAABLACkAAAABAAIAAABMACkAAAABAAIAAAA=") diff --git a/game/levels/level_6.tscn b/game/levels/level_6.tscn index 0930ad0..00779de 100644 --- a/game/levels/level_6.tscn +++ b/game/levels/level_6.tscn @@ -21,8 +21,7 @@ [ext_resource type="PackedScene" uid="uid://d330w1ygg6uxy" path="res://game/objects/decorative/painting_v_l.tscn" id="19_l40pv"] [ext_resource type="PackedScene" uid="uid://ciubf1ttwc133" path="res://game/pickups/square_key_pickup.tscn" id="20_uffr2"] [ext_resource type="PackedScene" uid="uid://dqgmfpv2mhdpn" path="res://game/pickups/triangle_key_pickup.tscn" id="21_jk2b3"] -[ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/enemies/black_cultist.tscn" id="22_b1xny"] -[ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/enemies/white_cultist.tscn" id="23_8555i"] +[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/cultist.tscn" id="22_3svqx"] [ext_resource type="PackedScene" uid="uid://dike8xgbqdut2" path="res://game/killing_area.tscn" id="24_te27h"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_cjy8w"] @@ -315,17 +314,27 @@ position = Vector2(1113, 344) [node name="TriangleKeyPickup" parent="Pickups" parent_id_path=PackedInt32Array(1113969064) index="1" unique_id=85412946 instance=ExtResource("21_jk2b3")] position = Vector2(857, 136) -[node name="BlackCultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=129671926 instance=ExtResource("22_b1xny")] -position = Vector2(1041, 352) - -[node name="BlackCultist2" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=1222909487 instance=ExtResource("22_b1xny")] -position = Vector2(403, 160) - -[node name="WhiteCultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="2" unique_id=503464276 instance=ExtResource("23_8555i")] +[node name="Cultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=1676614852 instance=ExtResource("22_3svqx")] position = Vector2(587, 368) +collision_layer = 64 +collision_mask = 33 -[node name="WhiteCultist2" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="3" unique_id=624398972 instance=ExtResource("23_8555i")] +[node name="Cultist2" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=102912907 instance=ExtResource("22_3svqx")] +position = Vector2(1041, 352) +collision_layer = 4 +collision_mask = 3 +type = 1 + +[node name="Cultist3" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="2" unique_id=996992141 instance=ExtResource("22_3svqx")] +position = Vector2(403, 160) +collision_layer = 4 +collision_mask = 3 +type = 1 + +[node name="Cultist4" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="3" unique_id=422993920 instance=ExtResource("22_3svqx")] position = Vector2(549, 160) +collision_layer = 64 +collision_mask = 33 [node name="Player" parent="." index="6" unique_id=1058744997] position = Vector2(208, -162) diff --git a/game/levels/level_7.gd b/game/levels/level_7.gd index 9bffc82..bacee0d 100644 --- a/game/levels/level_7.gd +++ b/game/levels/level_7.gd @@ -6,12 +6,14 @@ const ANIMATION_NAME = "final_cutscene" @onready var animation_player : AnimationPlayer = $AnimationPlayer @onready var fake_player : PlayerSprite = $Cutscene/FakePlayer +@onready var fake_cultist : CultistSprite = $Cutscene/FakeCultist @onready var cutscene_camera : Camera2D = $Cutscene/Camera2D @onready var cutscene_room_center : Vector2 = $Cutscene/RoomCenter.position func _ready() -> void: + $CanvasLayer/MarginContainer/ThanksLabel.hide() animation_player.play("hide_cutscene_elements") super._ready() @@ -42,6 +44,15 @@ func _play_cutscene_boop() -> void: SoundManager.play_sfx_stream(SoundManager.sfx_stream_haze, cutscene_room_center) +func _play_fake_cultist_animation() -> void: + fake_cultist.animated_sprite.play(CultistSprite.ANIMATION_LOOK_AROUND, 0.5) + + +func _make_fake_cultist_grey() -> void: + var tween := create_tween() + tween.tween_property(fake_cultist.material, CultistSprite.SHADER_INTENSITY, 0.5, 5) + + func _on_animation_player_animation_finished(anim_name: StringName) -> void: if anim_name == "final_cutscene": _complete_level(cutscene_room_center) diff --git a/game/levels/level_7.tscn b/game/levels/level_7.tscn index f290c4f..abd21c4 100644 --- a/game/levels/level_7.tscn +++ b/game/levels/level_7.tscn @@ -12,7 +12,6 @@ [ext_resource type="PackedScene" uid="uid://cvx6akiplg21s" path="res://game/characters/player/player_sprite.tscn" id="10_x0kb5"] [ext_resource type="PackedScene" uid="uid://dtxiercm8dsfm" path="res://game/characters/enemies/cultist_sprite.tscn" id="11_6yudq"] [ext_resource type="Theme" uid="uid://bh56my8b2htnr" path="res://themes/menu.tres" id="13_6yudq"] -[ext_resource type="Material" uid="uid://dbkn3k0batj5w" path="res://game/materials/enemy_gray.tres" id="13_x83dg"] [sub_resource type="AtlasTexture" id="AtlasTexture_qqn64"] atlas = ExtResource("6_7erpt") @@ -27,47 +26,47 @@ shader_parameter/threshold = 0.5 shader_parameter/speed = 5.0 shader_parameter/intensity = 0.70000003325 shader_parameter/scale = 20.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false [sub_resource type="AtlasTexture" id="AtlasTexture_sh0fj"] atlas = ExtResource("6_7erpt") region = Rect2(0, 360, 640, 360) -[sub_resource type="ShaderMaterial" id="ShaderMaterial_6yudq"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_o6y7x"] resource_local_to_scene = true shader = ExtResource("7_qqn64") 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/switch_colors = false shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 +shader_parameter/speed = 3.0000001425 shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false +[sub_resource type="ViewportTexture" id="ViewportTexture_6yudq"] +viewport_path = NodePath("SubViewport") + [sub_resource type="ShaderMaterial" id="ShaderMaterial_8x4ch"] resource_local_to_scene = true shader = ExtResource("7_qqn64") 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/switch_colors = false shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 +shader_parameter/speed = 3.0000001425 shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false -[sub_resource type="ShaderMaterial" id="ShaderMaterial_x83dg"] -resource_local_to_scene = true -shader = ExtResource("7_qqn64") -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 -shader_parameter/use_world_pos = false +[sub_resource type="ViewportTexture" id="ViewportTexture_x83dg"] +viewport_path = NodePath("SubViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_jbfb3"] resource_local_to_scene = true @@ -76,59 +75,458 @@ 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/speed = 3.0000001425 shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false -[sub_resource type="ShaderMaterial" id="ShaderMaterial_n303p"] -resource_local_to_scene = true -shader = ExtResource("7_qqn64") -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 -shader_parameter/use_world_pos = false +[sub_resource type="ViewportTexture" id="ViewportTexture_n303p"] +viewport_path = NodePath("SubViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_ghjrb"] resource_local_to_scene = true shader = ExtResource("7_qqn64") 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/switch_colors = false shader_parameter/threshold = 0.5 -shader_parameter/speed = 5.0 -shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +shader_parameter/speed = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false -[sub_resource type="ShaderMaterial" id="ShaderMaterial_6mp5f"] -resource_local_to_scene = true -shader = ExtResource("7_qqn64") -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 -shader_parameter/use_world_pos = false +[sub_resource type="ViewportTexture" id="ViewportTexture_6mp5f"] +viewport_path = NodePath("SubViewport") [sub_resource type="ShaderMaterial" id="ShaderMaterial_nhfvd"] resource_local_to_scene = true shader = ExtResource("7_qqn64") 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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_wrq4k"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_fta07"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_hk883"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3fd0j"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_t2ngl"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ghm2s"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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/speed = 3.0000001425 shader_parameter/intensity = 1.0 -shader_parameter/scale = 20.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false +[sub_resource type="ViewportTexture" id="ViewportTexture_3r6f8"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_wnk7m"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_8ijmj"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_for5e"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_8nrrd"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_e2211"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_woyfa"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_a1vx6"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_ajj6d"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_nlgh7"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_ieuny"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ouk5w"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_iv4h1"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_prlm1"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_h0mxf"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_xs12j"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_l7mp0"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mhap1"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_ltwdv"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3pujl"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_plpfu"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bjmpc"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_vmj5j"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_7wtae"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +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_v1ssg"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_p6taa"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_ojkth"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_gl5i1"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_g0i5g"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0as2h"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_ox0o8"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_injrn"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_uiqv5"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tr532"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_vcw0u"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_0d5vv"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_waxew"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_4smx7"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_e7m6r"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_eyq1o"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 0.5 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_qyrxj"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_yv0ck"] +resource_local_to_scene = true +shader = ExtResource("7_qqn64") +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 = 3.0000001425 +shader_parameter/intensity = 1.0 +shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) +shader_parameter/use_world_pos = false + +[sub_resource type="ViewportTexture" id="ViewportTexture_xj0pi"] +viewport_path = NodePath("SubViewport") + [sub_resource type="Animation" id="Animation_fta07"] length = 0.001 tracks/0/type = "value" @@ -377,24 +775,10 @@ tracks/9/keys = { tracks/10/type = "method" tracks/10/imported = false tracks/10/enabled = true -tracks/10/path = NodePath("Cutscene/FakeCultist") +tracks/10/path = NodePath("Doors/Door2") tracks/10/interp = 1 tracks/10/loop_wrap = true tracks/10/keys = { -"times": PackedFloat32Array(17.6), -"transitions": PackedFloat32Array(1), -"values": [{ -"args": [&"look_around", 0.5, false], -"method": &"play" -}] -} -tracks/11/type = "method" -tracks/11/imported = false -tracks/11/enabled = true -tracks/11/path = NodePath("Doors/Door2") -tracks/11/interp = 1 -tracks/11/loop_wrap = true -tracks/11/keys = { "times": PackedFloat32Array(0, 0.8666667), "transitions": PackedFloat32Array(1, 1), "values": [{ @@ -405,13 +789,13 @@ tracks/11/keys = { "method": &"_close" }] } -tracks/12/type = "method" -tracks/12/imported = false -tracks/12/enabled = true -tracks/12/path = NodePath(".") -tracks/12/interp = 1 -tracks/12/loop_wrap = true -tracks/12/keys = { +tracks/11/type = "method" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath(".") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { "times": PackedFloat32Array(0, 7.8333, 11.1, 15.7667, 19.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1), "values": [{ @@ -431,6 +815,23 @@ tracks/12/keys = { "method": &"_play_cutscene_boop" }] } +tracks/12/type = "method" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath(".") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(17.6, 21.966667), +"transitions": PackedFloat32Array(1, 1), +"values": [{ +"args": [], +"method": &"_play_fake_cultist_animation" +}, { +"args": [], +"method": &"_make_fake_cultist_grey" +}] +} [sub_resource type="Animation" id="Animation_6yudq"] resource_name = "hide_cutscene_elements" @@ -561,7 +962,9 @@ enabled = false position = Vector2(2034, 2448) [node name="FakeCultist" parent="Cutscene" index="2" unique_id=375756058 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_o6y7x") position = Vector2(2304, 2448) +texture = SubResource("ViewportTexture_6yudq") [node name="RoomCenter" type="Node2D" parent="Cutscene" index="3" unique_id=653526662] position = Vector2(2304, 2448) @@ -572,121 +975,179 @@ position = Vector2(2304, 2448) [node name="WaveThree" type="Node2D" parent="Cutscene/EnemyWaves" index="0" unique_id=1872436058] [node name="Right_1" parent="Cutscene/EnemyWaves/WaveThree" index="0" unique_id=1741494130 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_8x4ch") position = Vector2(-69, 0) +texture = SubResource("ViewportTexture_x83dg") [node name="Right_2" parent="Cutscene/EnemyWaves/WaveThree" index="1" unique_id=761362258 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_jbfb3") position = Vector2(-77, 0) +texture = SubResource("ViewportTexture_n303p") +type = 1 [node name="Right_3" parent="Cutscene/EnemyWaves/WaveThree" index="2" unique_id=418001405 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_6yudq") +material = SubResource("ShaderMaterial_ghjrb") position = Vector2(-87, 0) +texture = SubResource("ViewportTexture_6mp5f") +type = 2 [node name="Right_4" parent="Cutscene/EnemyWaves/WaveThree" index="3" unique_id=1330937276 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_nhfvd") position = Vector2(-95, 0) +texture = SubResource("ViewportTexture_wrq4k") [node name="Right_5" parent="Cutscene/EnemyWaves/WaveThree" index="4" unique_id=1285782564 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_8x4ch") +material = SubResource("ShaderMaterial_fta07") position = Vector2(-104, 0) +texture = SubResource("ViewportTexture_hk883") +type = 2 [node name="Right_6" parent="Cutscene/EnemyWaves/WaveThree" index="5" unique_id=348811069 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_3fd0j") position = Vector2(-113, 0) +texture = SubResource("ViewportTexture_t2ngl") [node name="Right_7" parent="Cutscene/EnemyWaves/WaveThree" index="6" unique_id=1822852735 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_ghm2s") position = Vector2(-120, 0) +texture = SubResource("ViewportTexture_3r6f8") +type = 1 [node name="Left_1" parent="Cutscene/EnemyWaves/WaveThree" index="7" unique_id=2036807955 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_x83dg") +material = SubResource("ShaderMaterial_wnk7m") position = Vector2(78, 0) +texture = SubResource("ViewportTexture_8ijmj") +type = 2 [node name="Left_2" parent="Cutscene/EnemyWaves/WaveThree" index="8" unique_id=1125192387 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_for5e") position = Vector2(86, 0) +texture = SubResource("ViewportTexture_8nrrd") [node name="Left_3" parent="Cutscene/EnemyWaves/WaveThree" index="9" unique_id=1717461753 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_jbfb3") +material = SubResource("ShaderMaterial_e2211") position = Vector2(95, 0) +texture = SubResource("ViewportTexture_woyfa") +type = 1 [node name="Left_4" parent="Cutscene/EnemyWaves/WaveThree" index="10" unique_id=1540913182 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_a1vx6") position = Vector2(105, 0) +texture = SubResource("ViewportTexture_ajj6d") +type = 2 [node name="Left_5" parent="Cutscene/EnemyWaves/WaveThree" index="11" unique_id=1177455845 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_nlgh7") position = Vector2(115, 0) +texture = SubResource("ViewportTexture_ieuny") [node name="Left_6" parent="Cutscene/EnemyWaves/WaveThree" index="12" unique_id=1103369493 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_ouk5w") position = Vector2(123, 0) +texture = SubResource("ViewportTexture_iv4h1") +type = 1 [node name="Left_7" parent="Cutscene/EnemyWaves/WaveThree" index="13" unique_id=1686075717 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_prlm1") position = Vector2(131, 0) +texture = SubResource("ViewportTexture_h0mxf") [node name="WaveOne" type="Node2D" parent="Cutscene/EnemyWaves" index="1" unique_id=122551187] [node name="Left_1" parent="Cutscene/EnemyWaves/WaveOne" index="0" unique_id=740262181 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_xs12j") position = Vector2(142, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_l7mp0") +view = 2 [node name="Left_2" parent="Cutscene/EnemyWaves/WaveOne" index="1" unique_id=1922326535 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_mhap1") position = Vector2(156, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_ltwdv") +type = 2 +view = 2 [node name="Left_3" parent="Cutscene/EnemyWaves/WaveOne" index="2" unique_id=2048494411 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_n303p") +material = SubResource("ShaderMaterial_3pujl") position = Vector2(168, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_plpfu") +view = 2 [node name="Left_4" parent="Cutscene/EnemyWaves/WaveOne" index="3" unique_id=490955232 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_bjmpc") position = Vector2(181, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_vmj5j") +type = 1 +view = 2 [node name="Left_5" parent="Cutscene/EnemyWaves/WaveOne" index="4" unique_id=598437420 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_ghjrb") +material = SubResource("ShaderMaterial_7wtae") position = Vector2(196, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_v1ssg") +type = 2 +view = 2 [node name="Left_6" parent="Cutscene/EnemyWaves/WaveOne" index="5" unique_id=848924487 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_p6taa") position = Vector2(211, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_ojkth") +view = 2 [node name="Left_7" parent="Cutscene/EnemyWaves/WaveOne" index="6" unique_id=26766058 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_gl5i1") position = Vector2(225, 0) -animation = &"walk_left" +texture = SubResource("ViewportTexture_g0i5g") +type = 1 +view = 2 [node name="WaveTwo" type="Node2D" parent="Cutscene/EnemyWaves" index="2" unique_id=587730000] [node name="Right_1" parent="Cutscene/EnemyWaves/WaveTwo" index="0" unique_id=2008057224 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_0as2h") position = Vector2(-131, 0) -animation = &"walk_right" +texture = SubResource("ViewportTexture_ox0o8") +type = 2 +view = 1 [node name="Right_2" parent="Cutscene/EnemyWaves/WaveTwo" index="1" unique_id=1074289480 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_6mp5f") +material = SubResource("ShaderMaterial_injrn") position = Vector2(-142, 0) -animation = &"walk_right" +texture = SubResource("ViewportTexture_uiqv5") +type = 1 +view = 1 [node name="Right_3" parent="Cutscene/EnemyWaves/WaveTwo" index="2" unique_id=2101911383 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_tr532") position = Vector2(-154, 0) -animation = &"walk_right" +texture = SubResource("ViewportTexture_vcw0u") +type = 2 +view = 1 [node name="Right_4" parent="Cutscene/EnemyWaves/WaveTwo" index="3" unique_id=1643518983 instance=ExtResource("11_6yudq")] -material = ExtResource("13_x83dg") +material = SubResource("ShaderMaterial_0d5vv") position = Vector2(-166, 0) -animation = &"walk_right" +texture = SubResource("ViewportTexture_waxew") +view = 1 [node name="Right_5" parent="Cutscene/EnemyWaves/WaveTwo" index="4" unique_id=1470200419 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_4smx7") position = Vector2(-175, -1) -animation = &"walk_right" +texture = SubResource("ViewportTexture_e7m6r") +type = 1 +view = 1 [node name="Right_6" parent="Cutscene/EnemyWaves/WaveTwo" index="5" unique_id=906224598 instance=ExtResource("11_6yudq")] +material = SubResource("ShaderMaterial_eyq1o") position = Vector2(-188, -1) -animation = &"walk_right" +texture = SubResource("ViewportTexture_qyrxj") +type = 2 +view = 1 [node name="Right_7" parent="Cutscene/EnemyWaves/WaveTwo" index="6" unique_id=416378549 instance=ExtResource("11_6yudq")] -material = SubResource("ShaderMaterial_nhfvd") +material = SubResource("ShaderMaterial_yv0ck") position = Vector2(-200, -1) -animation = &"walk_right" +texture = SubResource("ViewportTexture_xj0pi") +view = 1 [node name="GrayWalls" parent="Tiles" parent_id_path=PackedInt32Array(1626037498) index="0" unique_id=557672309] tile_map_data = PackedByteArray("AAABAP//AAAAAAEAAAABAAAAAAAAAAEAAAABAAEAAAAAAAEAAAABAAIAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAABAAUAAAAAAAEAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAABAAgAAAAAAAEAAAABAAkAAAAAAAEAAAABAAoAAAAAAAEAAAABAAsAAAAAAAEAAAABAAwAAAAAAAEAAAABAA0AAAAAAAEAAAABAA4AAAAAAAEAAAABAA8AAAAAAAEAAAABABAAAAAAAAEAAAABABEAAAAAAAEAAAABABIAAAAAAAEAAAABABMAAAAAAAEAAAABABQAAAAAAAEAAAABABUAAAAAAAEAAAABABYAAAAAAAEAAAABABcAAAAAAAEAAAABABgAAAAAAAEAAAABABkAAAAAAAEAAAABABoAAAAAAAEAAAABABsAAAAAAAEAAAABABwAAAAAAAEAAAABAB0AAAAAAAEAAAABAB4AAAAAAAEAAAABAB8AAAAAAAEAAAABACAAAAAAAAEAAAABACEAAAAAAAEAAAABACIAAAAAAAEAAAABACMAAAAAAAEAAAABACQAAAAAAAEAAAABACUAAAAAAAEAAAABACYAAAAAAAEAAAABACcAAAAAAAEAAAABACgAAAAAAAEAAAABACkAAAAAAAEAAAABACoAAAAAAAEAAAABACsAAAAAAAEAAAABACwAAAAAAAEAAAABAC0AAAAAAAEAAAABAC4AAAAAAAEAAAABAC8AAAAAAAEAAAABADAAAAAAAAEAAAABADEAAAAAAAEAAAABADIAAAAAAAEAAAABADMAAAAAAAEAAAABADQAAAAAAAEAAAD+////AAACAAEAAAD+/wAAAAACAAEAAAD+/wEAAAACAAEAAAD+/wIAAAACAAEAAAD+/wMAAAACAAEAAAD+/wQAAAACAAEAAAD+/wUAAAACAAEAAAD+/wYAAAACAAEAAAD+/wcAAAACAAEAAAD+/wgAAAACAAEAAAD+/wkAAAACAAEAAAD+/woAAAACAAEAAAD+/wsAAAACAAEAAAD+/wwAAAACAAEAAAD+/w0AAAACAAEAAAD+/w4AAAACAAEAAAD+/w8AAAACAAEAAAD+/xAAAAACAAEAAAD+/xEAAAACAAEAAAD+/xIAAAACAAEAAAD+/xMAAAACAAEAAAD+/xQAAAACAAEAAAD+/xUAAAACAAEAAAD+/xYAAAACAAEAAAD+/xcAAAACAAEAAAD+/xgAAAACAAEAAAD+/xkAAAACAAEAAAD+/xoAAAACAAEAAAD+/xsAAAACAAEAAAD+/xwAAAACAAEAAAD+/x0AAAACAAEAAAD+/x4AAAACAAEAAAD+/x8AAAACAAEAAAD+/yAAAAACAAEAAAD+/yEAAAACAAEAAAD+/yIAAAACAAEAAAD+/yMAAAACAAEAAAD+/yQAAAACAAEAAAD+/yUAAAACAAEAAAD+/yYAAAACAAEAAAD+/ycAAAACAAEAAAD+/ygAAAACAAEAAAD+/ykAAAACAAEAAAD+/yoAAAACAAEAAAD+/ysAAAACAAEAAAD+/ywAAAACAAEAAAD+/y0AAAACAAEAAAD+/y4AAAACAAEAAAD+/y8AAAACAAEAAAD+/zAAAAACAAEAAAD+/zEAAAACAAEAAAD+/zIAAAACAAEAAAD+/zMAAAACAAEAAAD+/zQAAAACAAEAAAD+/zUAAAACAAEAAAD+/zYAAAACAAEAAAD+/zcAAAACAAEAAAD+/zgAAAACAAEAAAD+/zkAAAACAAEAAAD+/zoAAAACAAEAAAD+/zsAAAACAAEAAAD+/zwAAAACAAEAAAD+/z0AAAACAAEAAAD+/z4AAAACAAEAAAD+/z8AAAACAAEAAAD+/0AAAAACAAEAAAD+/0EAAAACAAEAAAD+/0IAAAACAAEAAAD+/0MAAAACAAEAAAD+/0QAAAACAAEAAAD+/0UAAAACAAEAAAD+/0YAAAACAAEAAAD+/0cAAAACAAEAAAD+/0gAAAACAAEAAAD+/0kAAAACAAEAAAD+/0oAAAACAAEAAAD+/0sAAAACAAEAAAD+/0wAAAACAAEAAAD+/00AAAACAAEAAAD+/04AAAACAAEAAAD+/08AAAACAAEAAAD+/1AAAAACAAEAAAD+/1EAAAACAAEAAAD+/1IAAAACAAEAAAD+/1MAAAACAAEAAAD+/1QAAAACAAEAAAD+/1UAAAACAAEAAAD+/1YAAAACAAEAAAD+/1cAAAACAAEAAAD+/1gAAAACAAEAAAD+/1kAAAACAAEAAAD+/1oAAAACAAEAAAD+/1sAAAACAAEAAAD+/1wAAAACAAEAAAD+/10AAAACAAEAAAD+/14AAAACAAEAAAD+/18AAAACAAEAAAD+/2AAAAACAAEAAAD+/2EAAAACAAEAAAD+/2IAAAACAAEAAAD+/2MAAAACAAEAAAD+/2QAAAACAAEAAAABADUAAAAAAAEAAAABADYAAAAAAAEAAAABADcAAAAAAAEAAAABADgAAAAAAAEAAAABADkAAAAAAAEAAAABADoAAAAAAAEAAAABADsAAAAAAAEAAAABADwAAAAAAAEAAAABAD0AAAAAAAEAAAABAD4AAAAAAAEAAAABAD8AAAAAAAEAAAABAEAAAAAAAAEAAAABAEEAAAAAAAEAAAABAEIAAAAAAAEAAAABAEMAAAAAAAEAAAABAEQAAAAAAAEAAAABAEUAAAAAAAEAAAABAEYAAAAAAAEAAAABAEcAAAAAAAEAAAABAEgAAAAAAAEAAAABAEkAAAAAAAEAAAABAEoAAAAAAAEAAAABAEsAAAAAAAEAAAABAEwAAAAAAAEAAAABAE0AAAAAAAEAAAABAE4AAAAAAAEAAAABAE8AAAAAAAEAAAABAFAAAAAAAAEAAAABAFEAAAAAAAEAAAABAFIAAAAAAAEAAAABAFMAAAAAAAEAAAABAFQAAAAAAAEAAAABAFUAAAAAAAEAAAABAFYAAAAAAAEAAAABAFcAAAAAAAEAAAABAFgAAAAAAAEAAAABAFkAAAAAAAEAAAABAFoAAAAAAAEAAAABAFsAAAAAAAEAAAABAFwAAAAAAAEAAAABAF0AAAAAAAEAAAABAF4AAAAAAAEAAAABAF8AAAAAAAEAAAABAGAAAAAAAAEAAAABAGEAAAAAAAEAAAABAGIAAAAAAAEAAAABAGMAAAAAAAEAAAABAGQAAAAAAAEAAAABAGUAAAAAAAEAAAABAGYAAAAAAAEAAAABAGcAAAAAAAEAAAABAGgAAAAAAAEAAAABAGkAAAAAAAEAAAABAGoAAAAAAAEAAAABAGsAAAAAAAEAAAABAGwAAAAAAAEAAAABAG0AAAAAAAEAAAABAG4AAAAAAAEAAAABAG8AAAAAAAEAAAABAHAAAAAAAAEAAAABAHEAAAAAAAEAAAABAHIAAAAAAAEAAAABAHMAAAAAAAEAAAABAHQAAAAAAAEAAAABAHUAAAAAAAEAAAABAHYAAAAAAAEAAAABAHcAAAAAAAEAAAABAHgAAAAAAAEAAAABAHkAAAAAAAEAAAABAHoAAAAAAAEAAAABAHsAAAAAAAEAAAABAHwAAAAAAAEAAAABAH0AAAAAAAEAAAABAH4AAAAAAAEAAAABAH8AAAAAAAEAAAABAIAAAAAAAAEAAAABAIEAAAAAAAEAAAABAIIAAAAAAAEAAAABAIMAAAAAAAEAAAABAIQAAAAAAAEAAAABAIUAAAAAAAEAAAABAIYAAAAAAAEAAAABAIcAAAAAAAEAAAABAIgAAAAAAAEAAAABAIkAAAAAAAEAAAABAIoAAAAAAAEAAAABAIsAAAAAAAEAAAABAIwAAAAAAAEAAAABAI0AAAAAAAEAAAABAI4AAAAAAAEAAAABAI8AAAAAAAEAAAABAJAAAAAAAAEAAAABAJEAAAAAAAEAAAABAJIAAAAAAAEAAAABAJMAAAAAAAEAAAABAJQAAAAAAAEAAAABAJUAAAAAAAEAAAABAJYAAAAAAAIAAAD+/2UAAAACAAEAAAD+/2YAAAACAAEAAAD+/2cAAAACAAEAAAD+/2gAAAACAAEAAAD+/2kAAAACAAEAAAD+/2oAAAACAAEAAAD+/2sAAAACAAEAAAD+/2wAAAACAAEAAAD+/20AAAACAAEAAAD+/24AAAACAAEAAAD+/28AAAACAAEAAAD+/3AAAAACAAEAAAD+/3EAAAACAAEAAAD+/3IAAAACAAEAAAD+/3MAAAACAAEAAAD+/3QAAAACAAEAAAD+/3UAAAACAAEAAAD+/3YAAAACAAEAAAD+/3cAAAACAAEAAAD+/3gAAAACAAEAAAD+/3kAAAACAAEAAAD+/3oAAAACAAEAAAD+/3sAAAACAAEAAAD+/3wAAAACAAEAAAD+/30AAAACAAEAAAD+/34AAAACAAEAAAD+/38AAAACAAEAAAD+/4AAAAACAAEAAAD+/4EAAAACAAEAAAD+/4IAAAACAAEAAAD+/4MAAAACAAEAAAD+/4QAAAACAAEAAAD+/4UAAAACAAEAAAD+/4YAAAACAAEAAAD+/4cAAAACAAEAAAD+/4gAAAACAAEAAAD+/4kAAAACAAEAAAD+/4oAAAACAAEAAAD+/4sAAAACAAEAAAD+/4wAAAACAAEAAAD+/40AAAACAAEAAAD+/44AAAACAAEAAAD+/48AAAACAAEAAAD+/5AAAAACAAEAAAD+/5EAAAACAAEAAAD+/5IAAAACAAEAAAD+/5MAAAACAAEAAAD+/5QAAAACAAEAAAD+/5UAAAACAAEAAAD+/5YAAAACAAIAAAD//5oAAAABAAAAAAAAAJoAAAABAAAAAAABAJoAAAABAAAAAAACAJoAAAABAAAAAAADAJoAAAABAAAAAAAEAJoAAAABAAAAAAAFAJoAAAABAAAAAAAGAJoAAAABAAAAAAAHAJoAAAABAAAAAAAIAJoAAAABAAAAAAAJAJoAAAABAAAAAAAKAJoAAAABAAAAAAALAJoAAAABAAAAAAD+/5oAAAABAAAAAAACAJYAAAABAAIAAAADAJYAAAABAAIAAAAEAJYAAAABAAIAAAAFAJYAAAABAAIAAAAGAJYAAAABAAIAAAAHAJYAAAABAAIAAAAIAJYAAAABAAIAAAAJAJYAAAABAAIAAAAKAJYAAAABAAIAAAALAJYAAAABAAIAAAAMAJYAAAABAAIAAAANAJYAAAABAAIAAAAOAJYAAAABAAIAAAAPAJYAAAABAAIAAAAQAJYAAAABAAIAAAARAJYAAAABAAIAAAASAJYAAAABAAIAAAATAJYAAAABAAIAAAAUAJYAAAABAAIAAAAVAJYAAAABAAIAAAAWAJYAAAABAAIAAAAXAJYAAAABAAIAAAAYAJYAAAABAAIAAAAZAJYAAAABAAIAAAAaAJYAAAABAAIAAAAMAJoAAAABAAAAAAANAJoAAAABAAAAAAAOAJoAAAABAAAAAAAPAJoAAAABAAAAAAAQAJoAAAABAAAAAAARAJoAAAABAAAAAAASAJoAAAABAAAAAAATAJoAAAABAAAAAAAUAJoAAAABAAAAAAAVAJoAAAABAAAAAAAWAJoAAAABAAAAAAAXAJoAAAABAAAAAAAYAJoAAAABAAAAAAAZAJoAAAABAAAAAAAaAJoAAAABAAAAAAAbAJoAAAABAAAAAAAcAJoAAAABAAAAAAAdAJoAAAABAAAAAAAeAJoAAAABAAAAAAAfAJoAAAABAAAAAAAgAJoAAAABAAAAAAAhAJoAAAABAAAAAAAiAJoAAAABAAAAAAAjAJoAAAABAAAAAAAkAJoAAAABAAAAAAAlAJoAAAABAAAAAAAmAJoAAAABAAAAAAAnAJoAAAABAAAAAAAoAJoAAAABAAAAAAApAJoAAAABAAAAAAAqAJoAAAABAAAAAAArAJoAAAABAAAAAAAsAJoAAAABAAAAAAAtAJoAAAABAAAAAAAuAJoAAAABAAAAAAAvAJoAAAABAAAAAAAwAJoAAAABAAAAAAAxAJoAAAABAAAAAAAyAJoAAAABAAAAAAAzAJoAAAABAAAAAAA0AJoAAAABAAAAAAA1AJoAAAABAAAAAAA2AJoAAAABAAAAAAA3AJoAAAABAAAAAAA4AJoAAAABAAAAAAA5AJoAAAABAAAAAAA6AJoAAAABAAAAAAAbAJYAAAACAAIAAAAbAJUAAAACAAEAAAAbAJQAAAACAAEAAAAbAJMAAAACAAEAAAAbAJIAAAACAAEAAAAbAJEAAAACAAEAAAAbAJAAAAACAAEAAAAbAI8AAAACAAEAAAAbAI4AAAACAAEAAAAbAI0AAAADAAAAAAAcAI0AAAABAAIAAAAdAI0AAAABAAIAAAAeAI0AAAABAAIAAAAfAI0AAAABAAIAAAAgAI0AAAABAAIAAAAhAI0AAAABAAIAAAAiAI0AAAABAAIAAAAjAI0AAAABAAIAAAAkAI0AAAABAAIAAAAlAI0AAAABAAIAAAAmAI0AAAABAAIAAAAnAI0AAAABAAIAAAAoAI0AAAABAAIAAAApAI0AAAABAAIAAAAqAI0AAAABAAIAAAArAI0AAAABAAIAAAAsAI0AAAABAAIAAAAtAI0AAAABAAIAAAAuAI0AAAABAAIAAAAvAI0AAAABAAIAAAAwAI0AAAABAAIAAAAxAI0AAAABAAIAAAAyAI0AAAABAAIAAAAzAI0AAAABAAIAAAA0AI0AAAABAAIAAAA1AI0AAAABAAIAAAA2AI0AAAABAAIAAAA3AI0AAAABAAIAAAA4AI0AAAABAAIAAAA5AI0AAAABAAIAAAA6AI0AAAABAAIAAAA7AI0AAAABAAIAAAA8AI0AAAABAAIAAAA9AI0AAAABAAIAAAA+AI0AAAABAAIAAAA/AI0AAAABAAIAAABAAI0AAAAEAAAAAABAAI4AAAAAAAEAAABAAI8AAAAAAAEAAABAAJAAAAAAAAEAAABAAJEAAAAAAAEAAABAAJIAAAAAAAEAAABAAJMAAAAAAAEAAABAAJQAAAAAAAEAAABAAJUAAAAAAAEAAABAAJYAAAAAAAIAAAA7AJoAAAABAAAAAAA8AJoAAAABAAAAAAA9AJoAAAABAAAAAAA+AJoAAAABAAAAAAA/AJoAAAABAAAAAABAAJoAAAABAAAAAABBAJoAAAABAAAAAABCAJoAAAABAAAAAABDAJoAAAABAAAAAABEAJoAAAABAAAAAABFAJoAAAABAAAAAABGAJoAAAABAAAAAABHAJoAAAABAAAAAABIAJoAAAABAAAAAABJAJoAAAABAAAAAABKAJoAAAABAAAAAABLAJoAAAABAAAAAABMAJoAAAABAAAAAABNAJoAAAABAAAAAABOAJoAAAABAAAAAABPAJoAAAABAAAAAABQAJoAAAABAAAAAABRAJoAAAABAAAAAABSAJoAAAABAAAAAABTAJoAAAABAAAAAABUAJoAAAABAAAAAABVAJoAAAABAAAAAABWAJoAAAABAAAAAABXAJoAAAABAAAAAABYAJoAAAABAAAAAABZAJoAAAABAAAAAABaAJoAAAABAAAAAABbAJoAAAABAAAAAABcAJoAAAABAAAAAABdAJoAAAABAAAAAABeAJoAAAABAAAAAABfAJoAAAABAAAAAABgAJoAAAABAAAAAABhAJoAAAABAAAAAABiAJoAAAABAAAAAABjAJoAAAABAAAAAABkAJoAAAABAAAAAABlAJoAAAABAAAAAABmAJoAAAABAAAAAABnAJoAAAABAAAAAABoAJoAAAABAAAAAABpAJoAAAABAAAAAABqAJoAAAABAAAAAABrAJoAAAABAAAAAABsAJoAAAABAAAAAABBAJYAAAABAAIAAABCAJYAAAABAAIAAABDAJYAAAABAAIAAABEAJYAAAABAAIAAABFAJYAAAABAAIAAABGAJYAAAABAAIAAABHAJYAAAABAAIAAABIAJYAAAABAAIAAABJAJYAAAABAAIAAABKAJYAAAABAAIAAABLAJYAAAABAAIAAABMAJYAAAABAAIAAABNAJYAAAABAAIAAABOAJYAAAABAAIAAABPAJYAAAABAAIAAABQAJYAAAABAAIAAABRAJYAAAABAAIAAABSAJYAAAABAAIAAABTAJYAAAABAAIAAABUAJYAAAABAAIAAABVAJYAAAABAAIAAABWAJYAAAABAAIAAABXAJYAAAABAAIAAABYAJYAAAABAAIAAABZAJYAAAABAAIAAABaAJYAAAABAAIAAABbAJYAAAABAAIAAABcAJYAAAABAAIAAABdAJYAAAABAAIAAABeAJYAAAABAAIAAABfAJYAAAABAAIAAABgAJYAAAABAAIAAABhAJYAAAABAAIAAABiAJYAAAABAAIAAABjAJYAAAABAAIAAABkAJYAAAABAAIAAABlAJYAAAABAAIAAABmAJYAAAABAAIAAABnAJYAAAABAAIAAABoAJYAAAABAAIAAABpAJYAAAABAAIAAABqAJYAAAABAAIAAABrAJYAAAABAAIAAABsAJYAAAABAAIAAABtAJoAAAABAAAAAABuAJoAAAABAAAAAABvAJoAAAABAAAAAABwAJoAAAABAAAAAABxAJoAAAABAAAAAAByAJoAAAABAAAAAABzAJoAAAABAAAAAAB0AJoAAAABAAAAAAB1AJoAAAABAAAAAAB2AJoAAAABAAAAAAB3AJoAAAABAAAAAABtAJYAAAABAAIAAABuAJYAAAABAAIAAABvAJYAAAABAAIAAABwAJYAAAABAAIAAABxAJYAAAABAAIAAAByAJYAAAABAAIAAABzAJYAAAABAAIAAAB0AJYAAAABAAIAAAB1AJYAAAABAAIAAAB2AJYAAAABAAIAAAB3AJYAAAABAAIAAAB4AJYAAAABAAIAAAB5AJYAAAABAAIAAAB6AJYAAAABAAIAAAB7AJYAAAABAAIAAAB8AJYAAAABAAIAAAB9AJYAAAACAAIAAAB4AJoAAAABAAAAAAB5AJoAAAABAAAAAAB6AJoAAAABAAAAAAB7AJoAAAABAAAAAAB8AJoAAAABAAAAAAB9AJoAAAABAAAAAAB9AI0AAAADAAAAAAB9AI4AAAACAAEAAAB9AI8AAAACAAEAAAB9AJAAAAACAAEAAAB9AJEAAAACAAEAAAB9AJIAAAACAAEAAAB9AJMAAAACAAEAAAB9AJQAAAACAAEAAAB9AJUAAAACAAEAAAB+AI0AAAABAAIAAAB+AJoAAAABAAAAAAB/AI0AAAABAAIAAAB/AJoAAAABAAAAAACAAI0AAAABAAIAAACAAJoAAAABAAAAAACBAI0AAAABAAIAAACBAJoAAAABAAAAAACCAI0AAAABAAIAAACCAJoAAAABAAAAAACDAI0AAAABAAIAAACDAJoAAAABAAAAAACEAI0AAAABAAIAAACEAJoAAAABAAAAAACFAI0AAAABAAIAAACFAJoAAAABAAAAAACGAI0AAAABAAIAAACGAJoAAAABAAAAAACHAI0AAAABAAIAAACHAJoAAAABAAAAAACIAI0AAAABAAIAAACIAJoAAAABAAAAAACJAI0AAAABAAIAAACJAJoAAAABAAAAAACKAI0AAAABAAIAAACKAJoAAAABAAAAAACLAI0AAAABAAIAAACLAJoAAAABAAAAAACMAI0AAAABAAIAAACMAJoAAAABAAAAAACNAI0AAAABAAIAAACNAJoAAAABAAAAAACOAI0AAAABAAIAAACOAJoAAAABAAAAAACPAI0AAAABAAIAAACPAJoAAAABAAAAAACQAI0AAAABAAIAAACQAJoAAAABAAAAAACRAI0AAAABAAIAAACRAJoAAAABAAAAAACSAI0AAAABAAIAAACSAJoAAAABAAAAAACTAI0AAAABAAIAAACTAJoAAAABAAAAAACUAI0AAAABAAIAAACUAJoAAAABAAAAAACVAI0AAAABAAIAAACVAJoAAAABAAAAAACWAI0AAAABAAIAAACWAJoAAAABAAAAAACXAI0AAAABAAIAAACXAJoAAAABAAAAAACYAI0AAAABAAIAAACYAJoAAAABAAAAAACZAI0AAAABAAIAAACZAJoAAAABAAAAAACaAI0AAAABAAIAAACaAJoAAAABAAAAAACbAI0AAAABAAIAAACbAJoAAAABAAAAAACcAI0AAAABAAIAAACcAJoAAAABAAAAAACdAI0AAAABAAIAAACdAJoAAAABAAAAAACeAI0AAAABAAIAAACeAJoAAAABAAAAAACfAI0AAAABAAIAAACfAJoAAAABAAAAAACgAI0AAAABAAIAAACgAJoAAAABAAAAAAChAI0AAAABAAIAAAChAJoAAAABAAAAAACiAI0AAAAEAAAAAACiAI4AAAAAAAEAAACiAI8AAAAAAAEAAACiAJAAAAAAAAEAAACiAJEAAAAAAAEAAACiAJIAAAAAAAEAAACiAJMAAAAAAAEAAACiAJQAAAAAAAEAAACiAJUAAAAAAAEAAACiAJYAAAAAAAIAAACiAJoAAAABAAAAAACjAJoAAAABAAAAAACkAJoAAAABAAAAAAClAJoAAAABAAAAAACmAJoAAAABAAAAAACnAJoAAAABAAAAAACoAJoAAAABAAAAAACpAJoAAAABAAAAAACqAJoAAAABAAAAAACrAJoAAAABAAAAAACsAJoAAAABAAAAAACtAJoAAAABAAAAAACuAJoAAAABAAAAAACvAJoAAAABAAAAAACwAJoAAAABAAAAAACxAJoAAAABAAAAAACyAJoAAAABAAAAAACzAJoAAAABAAAAAAC0AJoAAAABAAAAAAC1AJoAAAABAAAAAAC2AJoAAAABAAAAAAC3AJoAAAABAAAAAAC4AJoAAAABAAAAAAC5AJoAAAABAAAAAAC6AJoAAAABAAAAAAC7AJoAAAABAAAAAAC8AJoAAAABAAAAAAC9AJoAAAABAAAAAAC+AJoAAAABAAAAAAC/AJoAAAABAAAAAADAAJoAAAABAAAAAADBAJoAAAABAAAAAADCAJoAAAABAAAAAADDAJoAAAABAAAAAADEAJoAAAABAAAAAADFAJoAAAABAAAAAADGAJoAAAABAAAAAADHAJoAAAABAAAAAADIAJoAAAABAAAAAADJAJoAAAABAAAAAADKAJoAAAABAAAAAADLAJoAAAABAAAAAADMAJoAAAABAAAAAADNAJoAAAABAAAAAADOAJoAAAABAAAAAADPAJoAAAABAAAAAADQAJoAAAABAAAAAADRAJoAAAABAAAAAADSAJoAAAABAAAAAADTAJoAAAABAAAAAADUAJoAAAABAAAAAADVAJoAAAABAAAAAADWAJoAAAABAAAAAACjAJYAAAABAAIAAACkAJYAAAABAAIAAAClAJYAAAABAAIAAACmAJYAAAABAAIAAACnAJYAAAABAAIAAACoAJYAAAABAAIAAACpAJYAAAABAAIAAACqAJYAAAABAAIAAACrAJYAAAABAAIAAACsAJYAAAABAAIAAACtAJYAAAABAAIAAACuAJYAAAABAAIAAACvAJYAAAABAAIAAACwAJYAAAABAAIAAACxAJYAAAABAAIAAACyAJYAAAABAAIAAACzAJYAAAABAAIAAAC0AJYAAAABAAIAAAC1AJYAAAABAAIAAAC2AJYAAAABAAIAAAC3AJYAAAABAAIAAAC4AJYAAAABAAIAAAC5AJYAAAABAAIAAAC6AJYAAAABAAIAAAC7AJYAAAABAAIAAAC8AJYAAAABAAIAAAC9AJYAAAABAAIAAAC+AJYAAAABAAIAAAC/AJYAAAABAAIAAADAAJYAAAABAAIAAADBAJYAAAABAAIAAADCAJYAAAABAAIAAADDAJYAAAABAAIAAADEAJYAAAABAAIAAADFAJYAAAABAAIAAADGAJYAAAABAAIAAADHAJYAAAABAAIAAADIAJYAAAABAAIAAADJAJYAAAABAAIAAADKAJYAAAABAAIAAADLAJYAAAABAAIAAADMAJYAAAABAAIAAADNAJYAAAABAAIAAADOAJYAAAABAAIAAADPAJYAAAABAAIAAADQAJYAAAABAAIAAADRAJYAAAABAAIAAADSAJYAAAABAAIAAADTAJYAAAABAAIAAADUAJYAAAABAAIAAADVAJYAAAABAAIAAADWAJYAAAABAAIAAAABAP7/AAAAAAEAAAABAP3/AAAAAAEAAAABAPz/AAAAAAEAAAABAPv/AAAAAAEAAAABAPr/AAAAAAEAAAABAPn/AAAAAAEAAAABAPj/AAAAAAEAAAABAPf/AAAAAAEAAAABAPb/AAAAAAEAAAABAPX/AAAAAAEAAAABAPT/AAAAAAEAAAABAPP/AAAAAAEAAAABAPL/AAAAAAEAAAD+//7/AAACAAEAAAD+//3/AAACAAEAAAD+//z/AAACAAEAAAD+//v/AAACAAEAAAD+//r/AAACAAEAAAD+//n/AAACAAEAAAD+//j/AAACAAEAAAD+//f/AAACAAEAAAD+//b/AAACAAEAAAD+//X/AAACAAEAAAD+//T/AAACAAEAAAD+//P/AAACAAEAAAD+//L/AAACAAEAAAA=") diff --git a/game/levels/test_level.tscn b/game/levels/test_level.tscn index 47382b7..1641151 100644 --- a/game/levels/test_level.tscn +++ b/game/levels/test_level.tscn @@ -23,18 +23,16 @@ [ext_resource type="PackedScene" uid="uid://b0pxe00dlyx7t" path="res://game/objects/informative/switch_action_tip.tscn" id="12_r01v2"] [ext_resource type="PackedScene" uid="uid://dsww084wps0d0" path="res://game/objects/interactive/lever.tscn" id="13_00l78"] [ext_resource type="PackedScene" uid="uid://dx1yasi8wlaye" path="res://game/objects/decorative/bookstand.tscn" id="13_g3b4m"] -[ext_resource type="PackedScene" uid="uid://cb0w6mt8g4mer" path="res://game/characters/enemies/gray_cultist.tscn" id="18_blgb8"] -[ext_resource type="PackedScene" uid="uid://cutjutvd8dqqc" path="res://game/characters/enemies/black_cultist.tscn" id="19_ohfy3"] -[ext_resource type="PackedScene" uid="uid://bv2gahb4wxgb1" path="res://game/characters/enemies/white_cultist.tscn" id="20_rt0xo"] +[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/cultist.tscn" id="27_te8eb"] -[sub_resource type="ShaderMaterial" id="ShaderMaterial_lxcjr"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_h1708"] resource_local_to_scene = true shader = ExtResource("4_lxcjr") shader_parameter/glow_interval = 1.0 shader_parameter/glow_radius = 1.0 shader_parameter/travel_time = 5.0 -[sub_resource type="ShaderMaterial" id="ShaderMaterial_te8eb"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_a50fq"] resource_local_to_scene = true shader = ExtResource("4_lxcjr") shader_parameter/glow_interval = 1.0 @@ -51,12 +49,12 @@ point_count = 2 script = ExtResource("2_a2sw7") [node name="ConnectionCableDoor" parent="ConnectionCables" parent_id_path=PackedInt32Array(279521385) index="0" unique_id=1234500644 instance=ExtResource("3_a50fq")] -material = SubResource("ShaderMaterial_lxcjr") +material = SubResource("ShaderMaterial_h1708") position = Vector2(208, 13) 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")] -material = SubResource("ShaderMaterial_te8eb") +material = SubResource("ShaderMaterial_a50fq") position = Vector2(520, -35) points = PackedVector2Array(0, 0, 0, -76, -454, -76, -454, 3) @@ -142,14 +140,22 @@ position = Vector2(306, -56) [node name="TriangleKeyPickup" parent="Pickups" parent_id_path=PackedInt32Array(1113969064) index="3" unique_id=465768166 instance=ExtResource("10_dea75")] position = Vector2(803, -56) -[node name="GrayEnemy" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=2016246874 instance=ExtResource("18_blgb8")] -position = Vector2(1552, 96) - -[node name="BlackEnemy" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="1" unique_id=1849216089 instance=ExtResource("19_ohfy3")] -position = Vector2(936, -48) - -[node name="WhiteEnemy" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="2" unique_id=1447247338 instance=ExtResource("20_rt0xo")] +[node name="Cultist1" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="0" unique_id=1676614852 instance=ExtResource("27_te8eb")] 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")] +position = Vector2(936, -48) +collision_layer = 4 +collision_mask = 3 +type = 1 + +[node name="Cultist3" parent="Enemies" parent_id_path=PackedInt32Array(857989772) index="2" unique_id=1444846763 instance=ExtResource("27_te8eb")] +position = Vector2(1552, 96) +collision_layer = 16 +collision_mask = 35 +type = 2 [node name="Player" parent="." index="6" unique_id=1058744997] position = Vector2(-13, 0) diff --git a/game/materials/enemy_white.tres b/game/materials/cultist.tres similarity index 58% rename from game/materials/enemy_white.tres rename to game/materials/cultist.tres index 35081aa..ddfb1e1 100644 --- a/game/materials/enemy_white.tres +++ b/game/materials/cultist.tres @@ -1,15 +1,17 @@ -[gd_resource type="ShaderMaterial" format=3 uid="uid://ci7xuso12af5"] +[gd_resource type="ShaderMaterial" format=3 uid="uid://dwgqr50guokxg"] -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_xngo8"] +[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_3bx4l"] [resource] resource_local_to_scene = true -shader = ExtResource("1_xngo8") +shader = ExtResource("1_3bx4l") 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 = 3.0 +shader_parameter/speed = 3.0000001425 shader_parameter/intensity = 1.0 shader_parameter/scale = 5.0 +shader_parameter/seed = 0.0 +shader_parameter/direction = Vector2(0, 1) shader_parameter/use_world_pos = false diff --git a/game/materials/enemy_black.tres b/game/materials/enemy_black.tres deleted file mode 100644 index aea4ba1..0000000 --- a/game/materials/enemy_black.tres +++ /dev/null @@ -1,15 +0,0 @@ -[gd_resource type="ShaderMaterial" format=3 uid="uid://dggr8t4b30e3n"] - -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_61jua"] - -[resource] -resource_local_to_scene = true -shader = ExtResource("1_61jua") -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 = 3.0 -shader_parameter/intensity = 1.0 -shader_parameter/scale = 5.0 -shader_parameter/use_world_pos = false diff --git a/game/materials/enemy_gray.tres b/game/materials/enemy_gray.tres deleted file mode 100644 index 4dc9ceb..0000000 --- a/game/materials/enemy_gray.tres +++ /dev/null @@ -1,14 +0,0 @@ -[gd_resource type="ShaderMaterial" format=3 uid="uid://dbkn3k0batj5w"] - -[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="1_b0yyf"] - -[resource] -shader = ExtResource("1_b0yyf") -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 = 3.0 -shader_parameter/intensity = 0.5 -shader_parameter/scale = 5.0 -shader_parameter/use_world_pos = false diff --git a/game/materials/platform_color.tres b/game/materials/platform_color.tres index e2ab713..26785e0 100644 --- a/game/materials/platform_color.tres +++ b/game/materials/platform_color.tres @@ -6,7 +6,7 @@ shader = ExtResource("1_p23e2") 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/switch_colors = true shader_parameter/threshold = 0.5 shader_parameter/speed = 1.0 shader_parameter/intensity = 1.0 diff --git a/game/shaders/black_n_white.gdshader b/game/shaders/black_n_white.gdshader index 0acb675..ad78496 100644 --- a/game/shaders/black_n_white.gdshader +++ b/game/shaders/black_n_white.gdshader @@ -9,12 +9,14 @@ uniform float threshold : hint_range(0.0, 1.0) = 0.5; uniform float speed : hint_range(0.0, 10.0) = 0.5; uniform float intensity : hint_range(0.0, 1.0) = 1.0; uniform float scale : hint_range(0.0, 100.0) = 20.0; +uniform float seed : hint_range(0.0, 1.0) = 0.0; +uniform vec2 direction = vec2(1.0, 1.0); uniform bool use_world_pos = false; vec2 random(vec2 uv){ uv = vec2( dot(uv, vec2(127.1,311.7) ), dot(uv, vec2(269.5,183.3) ) ); - return -1.0 + 2.0 * fract(sin(uv) * 43758.5453123); + return -1.0 + 2.0 * fract((sin(uv) + seed) * 43758.5453123); } float noise(vec2 uv) { @@ -47,7 +49,7 @@ void fragment() { is_black = !is_black; } if (intensity < 1.0) { - vec2 coord = noise_uv * scale + TIME * speed; + vec2 coord = noise_uv * scale + TIME * speed * normalize(direction); if (noise(coord) > intensity) { is_black = !is_black;