Fixed enemy shader

This commit is contained in:
2026-06-12 13:55:11 +03:00
parent cbfbd9f4d8
commit 59d71a4c57
19 changed files with 62 additions and 67 deletions
@@ -3,24 +3,15 @@
[ext_resource type="PackedScene" uid="uid://bx0luh4vdob3q" path="res://game/characters/enemies/abstract_cultist.tscn" id="1_12hr0"] [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="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"] [ext_resource type="PackedScene" uid="uid://5qlocc0yu8ug" path="res://game/collision_switcher.tscn" id="3_e5cea"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_r5rx0"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ejk4w"] [sub_resource type="ViewportTexture" id="ViewportTexture_c7l74"]
resource_local_to_scene = true viewport_path = NodePath("SubViewport")
shader = ExtResource("3_r5rx0")
shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[node name="AbstractColorCultist" unique_id=644641841 instance=ExtResource("1_12hr0")] [node name="AbstractColorCultist" unique_id=644641841 instance=ExtResource("1_12hr0")]
script = ExtResource("2_rd56i") script = ExtResource("2_rd56i")
[node name="CultistSprite" parent="." index="0" unique_id=1997264413] [node name="CultistSprite" parent="." index="0" unique_id=797412888]
material = SubResource("ShaderMaterial_ejk4w") texture = SubResource("ViewportTexture_c7l74")
[node name="CollisionSwitcher" parent="." index="2" unique_id=991274552 node_paths=PackedStringArray("object") instance=ExtResource("3_e5cea")] [node name="CollisionSwitcher" parent="." index="2" unique_id=991274552 node_paths=PackedStringArray("object") instance=ExtResource("3_e5cea")]
object = NodePath("..") object = NodePath("..")
+2 -1
View File
@@ -13,7 +13,8 @@ const FALL_GRAVITY_FACTOR = 1.5
var target_x := 0.0 var target_x := 0.0
@onready var sprite : AnimatedSprite2D = $CultistSprite @onready var sprite : Sprite2D = $CultistSprite
@onready var animated_sprite : AnimatedSprite2D = $SubViewport/CultistSprite
@onready var left_wall_high_ray : RayCast2D = $WallCheckHigh/LeftWallRay @onready var left_wall_high_ray : RayCast2D = $WallCheckHigh/LeftWallRay
@onready var right_wall_high_ray : RayCast2D = $WallCheckHigh/RightWallRay @onready var right_wall_high_ray : RayCast2D = $WallCheckHigh/RightWallRay
+14 -1
View File
@@ -16,6 +16,9 @@
[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://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://cf52bjcpasft1" path="res://game/characters/enemies/state_machine/cultist_jump_right_state.gd" id="15_cqp7f"]
[sub_resource type="ViewportTexture" id="ViewportTexture_cqp7f"]
viewport_path = NodePath("SubViewport")
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_mocsw"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_mocsw"]
radius = 4.0 radius = 4.0
height = 28.0 height = 28.0
@@ -28,7 +31,17 @@ height = 28.0
collision_layer = 0 collision_layer = 0
script = ExtResource("1_2wrno") script = ExtResource("1_2wrno")
[node name="CultistSprite" parent="." unique_id=1997264413 instance=ExtResource("2_tjvyk")] [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(16, 32)
[node name="CultistSprite" parent="SubViewport" unique_id=1997264413 instance=ExtResource("2_tjvyk")]
material = null
position = Vector2(8, 16)
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=185651284] [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=185651284]
position = Vector2(0, 2) position = Vector2(0, 2)
+9 -16
View File
@@ -2,34 +2,27 @@
[ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/enemies/abstract_color_cultist.tscn" id="1_gj2ks"] [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="Script" uid="uid://c2knsjcp6faf6" path="res://game/characters/enemies/black_cultist.gd" id="2_332ds"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_3jy5n"] [ext_resource type="Material" uid="uid://dggr8t4b30e3n" path="res://game/materials/enemy_black.tres" id="3_v1if5"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_v1if5"] [sub_resource type="ViewportTexture" id="ViewportTexture_q6bby"]
resource_local_to_scene = true viewport_path = NodePath("SubViewport")
shader = ExtResource("3_3jy5n")
shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = true
shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[node name="BlackCultist" unique_id=1910124567 instance=ExtResource("1_gj2ks")] [node name="BlackCultist" unique_id=1910124567 instance=ExtResource("1_gj2ks")]
collision_layer = 4 collision_layer = 4
collision_mask = 3 collision_mask = 3
script = ExtResource("2_332ds") script = ExtResource("2_332ds")
[node name="CultistSprite" parent="." index="0" unique_id=1997264413] [node name="CultistSprite" parent="." index="0" unique_id=797412888]
material = SubResource("ShaderMaterial_v1if5") material = ExtResource("3_v1if5")
texture = SubResource("ViewportTexture_q6bby")
[node name="CollisionSwitcher" parent="." index="2" unique_id=991274552] [node name="CollisionSwitcher" parent="." index="2" unique_id=991274552]
initial_state = 0 initial_state = 0
[node name="LeftWallRay" parent="WallCheck" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854] [node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854]
collision_mask = 3 collision_mask = 3
[node name="RightWallRay" parent="WallCheck" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135] [node name="RightWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135]
collision_mask = 3 collision_mask = 3
[node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027] [node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027]
@@ -46,5 +39,5 @@ collision_mask = 11
[node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831] [node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831]
collision_mask = 11 collision_mask = 11
[node name="KillingArea" parent="." index="6" unique_id=1891922549] [node name="KillingArea" parent="." index="8" unique_id=1891922549]
collision_mask = 8 collision_mask = 8
+6 -2
View File
@@ -4,13 +4,17 @@
[ext_resource type="Script" uid="uid://cern5veiqkrkc" path="res://game/characters/enemies/gray_cultist.gd" id="2_olede"] [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"] [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")] [node name="GrayCultist" unique_id=139812221 instance=ExtResource("1_q3s46")]
collision_layer = 16 collision_layer = 16
collision_mask = 35 collision_mask = 35
script = ExtResource("2_olede") script = ExtResource("2_olede")
[node name="CultistSprite" parent="." index="0" unique_id=1997264413] [node name="CultistSprite" parent="." index="0" unique_id=797412888]
material = ExtResource("3_ho47d") material = ExtResource("3_ho47d")
texture = SubResource("ViewportTexture_b3gyl")
[node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854] [node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854]
collision_mask = 35 collision_mask = 35
@@ -30,5 +34,5 @@ collision_mask = 171
[node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831] [node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831]
collision_mask = 171 collision_mask = 171
[node name="KillingArea" parent="." index="6" unique_id=1891922549] [node name="KillingArea" parent="." index="7" unique_id=1891922549]
collision_mask = 136 collision_mask = 136
@@ -9,7 +9,7 @@ func init() -> void:
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_CHASE_LEFT) cultist.animated_sprite.play(CultistSprite.ANIMATION_CHASE_LEFT)
func _is_target_reached() -> bool: func _is_target_reached() -> bool:
@@ -9,7 +9,7 @@ func init() -> void:
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_CHASE_RIGHT) cultist.animated_sprite.play(CultistSprite.ANIMATION_CHASE_RIGHT)
func _is_target_reached() -> bool: func _is_target_reached() -> bool:
@@ -4,4 +4,4 @@ extends CultistJumpState
func enter() -> void: func enter() -> void:
super.enter() super.enter()
_direction = DIRECTION_LEFT _direction = DIRECTION_LEFT
cultist.sprite.play(CultistSprite.ANIMATION_JUMP_LEFT) cultist.animated_sprite.play(CultistSprite.ANIMATION_JUMP_LEFT)
@@ -4,4 +4,4 @@ extends CultistJumpState
func enter() -> void: func enter() -> void:
super.enter() super.enter()
_direction = DIRECTION_RIGHT _direction = DIRECTION_RIGHT
cultist.sprite.play(CultistSprite.ANIMATION_JUMP_RIGHT) cultist.animated_sprite.play(CultistSprite.ANIMATION_JUMP_RIGHT)
@@ -2,4 +2,4 @@ extends CultistFallSidewaysState
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_FALL_LEFT) cultist.animated_sprite.play(CultistSprite.ANIMATION_FALL_LEFT)
@@ -2,4 +2,4 @@ extends CultistFallSidewaysState
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_FALL_RIGHT) cultist.animated_sprite.play(CultistSprite.ANIMATION_FALL_RIGHT)
@@ -6,7 +6,7 @@ extends CultistState
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_FALL) cultist.animated_sprite.play(CultistSprite.ANIMATION_FALL)
func physics_process(delta: float) -> void: func physics_process(delta: float) -> void:
@@ -12,8 +12,8 @@ var state_by_ray_cast : Dictionary[RayCast2D, CultistState]
func enter() -> void: func enter() -> void:
cultist.sprite.animation_finished.connect(_on_animation_finished) cultist.animated_sprite.animation_finished.connect(_on_animation_finished)
cultist.sprite.play(CultistSprite.LOOK_AROUND_ANIMATIONS.pick_random()) cultist.animated_sprite.play(CultistSprite.LOOK_AROUND_ANIMATIONS.pick_random())
cultist.velocity = Vector2.ZERO cultist.velocity = Vector2.ZERO
cultist._set_ray_cast_enable(cultist.left_player_close_ray, true) cultist._set_ray_cast_enable(cultist.left_player_close_ray, true)
cultist._set_ray_cast_enable(cultist.right_player_close_ray, true) cultist._set_ray_cast_enable(cultist.right_player_close_ray, true)
@@ -36,7 +36,7 @@ func physics_process(_delta: float) -> void:
func exit() -> void: func exit() -> void:
cultist.sprite.animation_finished.disconnect(_on_animation_finished) cultist.animated_sprite.animation_finished.disconnect(_on_animation_finished)
cultist._set_ray_cast_enable(cultist.left_player_close_ray, false) cultist._set_ray_cast_enable(cultist.left_player_close_ray, false)
cultist._set_ray_cast_enable(cultist.right_player_close_ray, false) cultist._set_ray_cast_enable(cultist.right_player_close_ray, false)
@@ -9,4 +9,4 @@ func init() -> void:
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_WALK_LEFT) cultist.animated_sprite.play(CultistSprite.ANIMATION_WALK_LEFT)
@@ -9,4 +9,4 @@ func init() -> void:
func enter() -> void: func enter() -> void:
cultist.sprite.play(CultistSprite.ANIMATION_WALK_RIGHT) cultist.animated_sprite.play(CultistSprite.ANIMATION_WALK_RIGHT)
+9 -16
View File
@@ -2,31 +2,24 @@
[ext_resource type="PackedScene" uid="uid://d37eyum03h83i" path="res://game/characters/enemies/abstract_color_cultist.tscn" id="1_3yi7g"] [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="Script" uid="uid://dmcpkytgiuedi" path="res://game/characters/enemies/white_cultist.gd" id="2_c7pdf"]
[ext_resource type="Shader" uid="uid://lqq1mg6l1qqe" path="res://game/shaders/black_n_white.gdshader" id="3_uj6yw"] [ext_resource type="Material" uid="uid://ci7xuso12af5" path="res://game/materials/enemy_white.tres" id="3_36f86"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_36f86"] [sub_resource type="ViewportTexture" id="ViewportTexture_fb5t4"]
resource_local_to_scene = true viewport_path = NodePath("SubViewport")
shader = ExtResource("3_uj6yw")
shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5
shader_parameter/speed = 5.0
shader_parameter/intensity = 1.0
shader_parameter/scale = 20.0
[node name="WhiteEnemy" unique_id=486389199 instance=ExtResource("1_3yi7g")] [node name="WhiteEnemy" unique_id=486389199 instance=ExtResource("1_3yi7g")]
collision_layer = 64 collision_layer = 64
collision_mask = 33 collision_mask = 33
script = ExtResource("2_c7pdf") script = ExtResource("2_c7pdf")
[node name="CultistSprite" parent="." index="0" unique_id=1997264413] [node name="CultistSprite" parent="." index="0" unique_id=797412888]
material = SubResource("ShaderMaterial_36f86") material = ExtResource("3_36f86")
texture = SubResource("ViewportTexture_fb5t4")
[node name="LeftWallRay" parent="WallCheck" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854] [node name="LeftWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="0" unique_id=521416854]
collision_mask = 33 collision_mask = 33
[node name="RightWallRay" parent="WallCheck" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135] [node name="RightWallRay" parent="WallCheckLow" parent_id_path=PackedInt32Array(782156094) index="1" unique_id=1457669135]
collision_mask = 33 collision_mask = 33
[node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027] [node name="LeftPlayerCloseRay" parent="PlayerCloseCheck" parent_id_path=PackedInt32Array(1593775088) index="0" unique_id=947570027]
@@ -43,5 +36,5 @@ collision_mask = 161
[node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831] [node name="RightPlayerDistantRay" parent="PlayerDistantCheck" parent_id_path=PackedInt32Array(1597489123) index="1" unique_id=1377654831]
collision_mask = 161 collision_mask = 161
[node name="KillingArea" parent="." index="6" unique_id=1891922549] [node name="KillingArea" parent="." index="8" unique_id=1891922549]
collision_mask = 128 collision_mask = 128
+2 -2
View File
@@ -9,7 +9,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = true shader_parameter/switch_colors = true
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0 shader_parameter/speed = 3.0
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 50.0 shader_parameter/scale = 5.0
shader_parameter/use_world_pos = false shader_parameter/use_world_pos = false
+2 -2
View File
@@ -8,7 +8,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0 shader_parameter/speed = 3.0
shader_parameter/intensity = 0.5 shader_parameter/intensity = 0.5
shader_parameter/scale = 50.0 shader_parameter/scale = 5.0
shader_parameter/use_world_pos = false shader_parameter/use_world_pos = false
+2 -2
View File
@@ -9,7 +9,7 @@ shader_parameter/black_color = Color(0, 0, 0, 1)
shader_parameter/white_color = Color(1, 1, 1, 1) shader_parameter/white_color = Color(1, 1, 1, 1)
shader_parameter/switch_colors = false shader_parameter/switch_colors = false
shader_parameter/threshold = 0.5 shader_parameter/threshold = 0.5
shader_parameter/speed = 1.0 shader_parameter/speed = 3.0
shader_parameter/intensity = 1.0 shader_parameter/intensity = 1.0
shader_parameter/scale = 50.0 shader_parameter/scale = 5.0
shader_parameter/use_world_pos = false shader_parameter/use_world_pos = false