diff --git a/resources/level_2.gdshader b/resources/level_2.gdshader new file mode 100644 index 0000000..a0fbfc9 --- /dev/null +++ b/resources/level_2.gdshader @@ -0,0 +1,17 @@ +shader_type canvas_item; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 existing_color = texture(TEXTURE, UV); + vec3 grayscale_color = vec3((existing_color.r + existing_color.g + existing_color.b)/3.0); + COLOR.rgb = grayscale_color; + COLOR.a = existing_color.a; +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/resources/level_2.gdshader.uid b/resources/level_2.gdshader.uid new file mode 100644 index 0000000..ed99c6d --- /dev/null +++ b/resources/level_2.gdshader.uid @@ -0,0 +1 @@ +uid://cscv7pfpe58i3 diff --git a/resources/level_3.gdshader b/resources/level_3.gdshader new file mode 100644 index 0000000..e68135b --- /dev/null +++ b/resources/level_3.gdshader @@ -0,0 +1,20 @@ +shader_type canvas_item; + +uniform sampler2D gradient_texture; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 existing_color = texture(TEXTURE, UV); + float grayscale_value = (existing_color.r + existing_color.g + existing_color.b)/3.0; + vec4 new_color = texture(gradient_texture, vec2(grayscale_value)); + COLOR.rgb = new_color.rgb; + COLOR.a = existing_color.a; +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/resources/level_3.gdshader.uid b/resources/level_3.gdshader.uid new file mode 100644 index 0000000..4b4885f --- /dev/null +++ b/resources/level_3.gdshader.uid @@ -0,0 +1 @@ +uid://dy7od6pkkn6xp diff --git a/scenes/grenade.tscn b/scenes/grenade.tscn index 6394b0f..c8c8b98 100644 --- a/scenes/grenade.tscn +++ b/scenes/grenade.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=38 format=3 uid="uid://x8y4fkj6fc2e"] +[gd_scene load_steps=46 format=3 uid="uid://x8y4fkj6fc2e"] [ext_resource type="Script" uid="uid://cevjj6wpr5f8f" path="res://scripts/grenade.gd" id="1_cvyik"] [ext_resource type="Texture2D" uid="uid://b8g3n1anbx0j" path="res://graphics/effects/orb_red.png" id="2_wxtds"] @@ -7,6 +7,75 @@ [sub_resource type="CircleShape2D" id="CircleShape2D_1xt3t"] radius = 12.0 +[sub_resource type="Shader" id="Shader_vhiwl"] +code = "shader_type canvas_item; + +uniform sampler2D gradient_texture; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 existing_color = texture(TEXTURE, UV); + float grayscale_value = (existing_color.r + existing_color.g + existing_color.b)/3.0; + vec4 new_color = texture(gradient_texture, vec2(grayscale_value)); + COLOR.rgb = new_color.rgb; + COLOR.a = existing_color.a; +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} +" + +[sub_resource type="Gradient" id="Gradient_76ndk"] +interpolation_mode = 1 +offsets = PackedFloat32Array(0.146875, 0.265625, 0.384375) +colors = PackedColorArray(0.19215687, 0.1882353, 0.22745098, 1, 0.9607843, 0.85490197, 0.6509804, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_snp8f"] +gradient = SubResource("Gradient_76ndk") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_t0o0f"] +shader = SubResource("Shader_vhiwl") +shader_parameter/gradient_texture = SubResource("GradientTexture2D_snp8f") + +[sub_resource type="Shader" id="Shader_76ndk"] +code = "shader_type canvas_item; + +uniform sampler2D gradient_texture; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 existing_color = texture(TEXTURE, UV); + float grayscale_value = (existing_color.r + existing_color.g + existing_color.b)/3.0; + vec4 new_color = texture(gradient_texture, vec2(grayscale_value)); + COLOR.rgb = new_color.rgb; + COLOR.a = existing_color.a; +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} +" + +[sub_resource type="Gradient" id="Gradient_snp8f"] +offsets = PackedFloat32Array(0.153125, 0.390625, 0.503125, 0.640625) +colors = PackedColorArray(0.19215687, 0.1882353, 0.22745098, 1, 0.2627451, 0.27450982, 0.4509804, 1, 0.99215686, 0.99607843, 0.53333336, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_t0o0f"] +gradient = SubResource("Gradient_snp8f") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_adlig"] +shader = SubResource("Shader_76ndk") +shader_parameter/gradient_texture = SubResource("GradientTexture2D_t0o0f") + [sub_resource type="AtlasTexture" id="AtlasTexture_6xeml"] atlas = ExtResource("3_vhiwl") region = Rect2(448, 192, 64, 64) @@ -247,16 +316,20 @@ contact_monitor = true max_contacts_reported = 2 script = ExtResource("1_cvyik") -[node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("2_wxtds") -offset = Vector2(0.37, 0.39) - [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_1xt3t") debug_color = Color(0.7488965, 0.6246863, 1.92523e-07, 1) +[node name="Sprite2D" type="Sprite2D" parent="."] +material = SubResource("ShaderMaterial_t0o0f") +texture = ExtResource("2_wxtds") +offset = Vector2(0.37, 0.39) + [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_adlig") sprite_frames = SubResource("SpriteFrames_1exwd") animation = &"explode" +frame = 31 +frame_progress = 1.0 [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/scenes/level_2.tscn b/scenes/level_2.tscn index 45cde61..2441b57 100644 --- a/scenes/level_2.tscn +++ b/scenes/level_2.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=21 format=4 uid="uid://y34miorfoath"] +[gd_scene load_steps=25 format=4 uid="uid://y34miorfoath"] [ext_resource type="Script" uid="uid://b84pdw14l6gb6" path="res://scripts/scene_manager.gd" id="1_6cvei"] +[ext_resource type="Shader" uid="uid://cscv7pfpe58i3" path="res://resources/level_2.gdshader" id="2_hey2k"] [ext_resource type="Texture2D" uid="uid://dkco6bp2yelei" path="res://graphics/tiles/25-10-26-godot-course-Terrain (32x32)-color-exchange-1.png" id="2_que50"] [ext_resource type="Texture2D" uid="uid://bpf0sbb3o6rch" path="res://graphics/objects/veg_32x32.png" id="3_hey2k"] [ext_resource type="Texture2D" uid="uid://ctrmx80fc52bt" path="res://graphics/objects/mushroom_32x64.png" id="4_172wr"] @@ -10,6 +11,9 @@ [ext_resource type="PackedScene" uid="uid://31idmjadvk3t" path="res://scenes/coin.tscn" id="8_igmy8"] [ext_resource type="PackedScene" uid="uid://bts74sqcd7k7h" path="res://scenes/slimer.tscn" id="9_wdtqu"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_172wr"] +shader = ExtResource("2_hey2k") + [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gee14"] texture = ExtResource("2_que50") texture_region_size = Vector2i(32, 32) @@ -421,6 +425,9 @@ sources/0 = SubResource("TileSetAtlasSource_gee14") sources/1 = SubResource("TileSetAtlasSource_0tnpc") sources/2 = SubResource("TileSetAtlasSource_vtaks") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_que50"] +shader = ExtResource("2_hey2k") + [sub_resource type="Gradient" id="Gradient_iywne"] offsets = PackedFloat32Array(0.206667, 0.66, 0.966667) colors = PackedColorArray(0, 0, 0, 1, 0.192157, 0.188235, 0.227451, 1, 0.270588, 0.235294, 0.368627, 1) @@ -436,6 +443,9 @@ color_ramp = SubResource("Gradient_iywne") seamless = true in_3d_space = true +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hey2k"] +shader = ExtResource("2_hey2k") + [sub_resource type="Gradient" id="Gradient_p57ef"] offsets = PackedFloat32Array(0.513333, 0.846667, 0.926667) colors = PackedColorArray(0, 0, 0, 0, 0.5525, 0.85, 0.58225, 0.360784, 0.992333, 1, 0.54, 0.270588) @@ -458,6 +468,7 @@ unique_name_in_owner = true script = ExtResource("1_6cvei") [node name="TileMapLayer" type="TileMapLayer" parent="."] +material = SubResource("ShaderMaterial_172wr") position = Vector2(0, 1) tile_map_data = PackedByteArray("AADy/wMAAAABAAEAAADy/wQAAAABAAIAAADz/wQAAAABAAIAAADz/wMAAAABAAEAAAD0/wMAAAABAAEAAAD0/wQAAAABAAIAAADx/wQAAAAAAAIAAADx/wMAAAAAAAEAAAD4/wMAAAABAAAAAAD4/wQAAAABAAIAAAD5/wQAAAABAAIAAAD6/wQAAAABAAIAAAD7/wQAAAABAAIAAAD8/wQAAAABAAIAAAD9/wQAAAABAAIAAAD+/wQAAAAHAAAAAAD+/wMAAAABAAAAAAD9/wMAAAABAAAAAAD8/wMAAAABAAAAAAD7/wMAAAABAAAAAAD6/wMAAAABAAAAAAD5/wMAAAABAAAAAAABAAMAAAABAAAAAAABAAQAAAABAAEAAAABAAUAAAABAAIAAAACAAUAAAABAAIAAAADAAUAAAABAAIAAAAEAAUAAAABAAIAAAAEAAQAAAAGAAEAAAAEAAMAAAACAAAAAAADAAMAAAABAAAAAAACAAMAAAABAAAAAAACAAQAAAABAAEAAAADAAQAAAABAAEAAAD3/wMAAAABAAAAAAD2/wMAAAAGAAEAAAD1/wMAAAABAAEAAAD1/wQAAAABAAIAAAD2/wQAAAABAAIAAAD3/wQAAAABAAIAAAAKAAIAAAABAAAAAAAJAAIAAAAAAAAAAAAJAAMAAAAAAAEAAAAMAAEAAAABAAAAAAAMAAIAAAABAAEAAAAMAAMAAAABAAEAAAAMAAQAAAABAAEAAAANAAQAAAABAAEAAAANAAUAAAABAAIAAAAOAAUAAAABAAIAAAAPAAUAAAABAAIAAAAMAAUAAAABAAIAAAANAAEAAAABAAAAAAAOAAEAAAABAAAAAAANAAIAAAABAAEAAAANAAMAAAABAAEAAAAOAAQAAAABAAEAAAAPAAQAAAABAAEAAAAPAAMAAAABAAEAAAAPAAIAAAAGAAEAAAAPAAEAAAACAAAAAAAOAAIAAAABAAEAAAAOAAMAAAABAAEAAAARAAIAAAABAAAAAAARAAMAAAABAAEAAAARAAQAAAABAAEAAAARAAUAAAABAAIAAAASAAUAAAABAAIAAAATAAUAAAABAAIAAAAUAAUAAAABAAIAAAAVAAUAAAABAAIAAAAWAAUAAAABAAIAAAAWAAQAAAABAAEAAAAWAAMAAAAGAAEAAAAVAAMAAAABAAEAAAAVAAIAAAABAAAAAAAUAAIAAAABAAAAAAATAAIAAAABAAAAAAASAAIAAAABAAAAAAASAAMAAAABAAEAAAASAAQAAAABAAEAAAATAAQAAAABAAEAAAAUAAQAAAABAAEAAAAUAAMAAAABAAEAAAATAAMAAAABAAEAAAAVAAQAAAABAAEAAAAWAAIAAAACAAAAAAD4//7/AAABAAQAAAD5//7/AAAKAAMAAAD6//7/AAAHAAEAAAD7//7/AAACAAEAAAD9//3/AAAKAAQAAAD+//3/AAABAAIAAAD///3/AAABAAIAAAAAAP3/AAABAAIAAAAAAPz/AAABAAAAAAD+//z/AAABAAAAAAD///z/AAABAAAAAAACAP3/AAACAAQAAAABAP3/AAAJAAQAAAD5////AAAAAAIAAAD6////AAABAAIAAAD7////AAACAAIAAADx////AAAAAAAAAADy////AAABAAAAAADz////AAACAAAAAADx/wAAAAAAAAEAAADx/wEAAAAAAAEAAADy/wEAAAABAAEAAADz/wEAAAAGAAEAAADz/wAAAAACAAEAAADy/wAAAAABAAEAAADx/wIAAAAAAAEAAADy/wIAAAABAAEAAADz/wIAAAABAAEAAAD0/wIAAAABAAEAAAD1/wIAAAABAAEAAAD2/wIAAAACAAEAAAD3//7/AAAAAAQAAAD6//3/AAAAAAAAAAD7//3/AAAJAAMAAAABAPz/AAACAAAAAAD9//z/AAAAAAAAAAD8//3/AAABAAQAAAAHAAQAAAABAAAAAAAGAAQAAAABAAAAAAAFAAQAAAABAAAAAAALAAIAAAAHAAEAAAAQAAIAAAABAAAAAAAQAAMAAAABAAEAAAAQAAQAAAABAAEAAAAQAAUAAAABAAIAAAALAAMAAAABAAEAAAAKAAMAAAABAAEAAAAKAAQAAAABAAEAAAAKAAUAAAABAAIAAAAJAAUAAAABAAIAAAAJAAQAAAAHAAEAAAAIAAQAAAABAAAAAAAGAAUAAAABAAIAAAAFAAUAAAABAAIAAAAHAAUAAAABAAIAAAAIAAUAAAABAAIAAAALAAUAAAABAAIAAAALAAQAAAABAAEAAAAAAAQAAAABAAEAAAD//wQAAAABAAEAAAD+/wUAAAAAAAIAAAD//wUAAAABAAIAAAAAAAUAAAABAAIAAAD//wMAAAABAAAAAAAAAAMAAAABAAAAAAALAAEAAAAAAAAAAAD0/wEAAAABAAAAAAD1/wEAAAABAAAAAAALAPv/AAAAAAAAAAALAPz/AAAAAAEAAAALAP3/AAAAAAIAAAAMAPz/AAABAAEAAAANAPz/AAABAAEAAAAOAPz/AAABAAEAAAAOAPv/AAABAAAAAAANAPv/AAABAAAAAAAMAPv/AAABAAAAAAAMAP3/AAABAAIAAAANAP3/AAABAAIAAAAOAP3/AAABAAIAAAAPAPz/AAACAAEAAAAPAPv/AAACAAAAAAAPAP3/AAACAAIAAAAYAAMAAAACAAAAAAAXAAMAAAABAAAAAAAXAAQAAAABAAEAAAAXAAUAAAABAAIAAAAYAAUAAAACAAIAAAAYAAQAAAACAAEAAAAGAP3/AAAAAAQAAAAHAP3/AAACAAQAAADx//3/AAAAAAIAAADy//3/AAABAAIAAADz//3/AAACAAIAAADz//z/AAACAAAAAADy//z/AAABAAAAAADx//z/AAAAAAAAAAD2/wEAAAACAAAAAAD9/wIAAQAAAAAAAAD//wIAAQAAAAAAAAAFAAMAAQAAAAAAAAAIAAMAAQAAAAAAAAAJAAEAAQAAAAAAAAANAAAAAQAAAAAAAAD4/wIAAQAAAAAAAAD1/wAAAQAAAAAAAAD4//3/AQAAAAAAAAD8//z/AQAAAAAAAAACAPz/AQAAAAAAAAAGAPz/AQAAAAAAAAAXAAIAAQAAAAAAAAAHAAMAAgAAAAEAAAAHAAIAAgAAAAAAAAAOAAAAAgAAAAEAAAAOAP//AgAAAAAAAAASAAEAAgAAAAEAAAASAAAAAgAAAAAAAAAAAAIAAgAAAAEAAAAAAAEAAgAAAAAAAAD5/wIAAgAAAAEAAAD5/wEAAgAAAAAAAAALAPr/AgAAAAEAAAALAPn/AgAAAAAAAAD+//v/AgAAAAEAAAD+//r/AgAAAAAAAAAAAPv/AQAAAAAAAADx//v/AQAAAAAAAADy//v/AgAAAAEAAADy//r/AgAAAAAAAAD5//3/AgAAAAEAAAD5//z/AgAAAAAAAAD7//z/AgAAAAEAAAD7//v/AgAAAAAAAAD0/wAAAgAAAAEAAAD0////AgAAAAAAAAAHAPz/AgAAAAEAAAAHAPv/AgAAAAAAAAA=") tile_set = SubResource("TileSet_gee14") @@ -471,6 +482,7 @@ metadata/_edit_lock_ = true metadata/_edit_group_ = true [node name="BackgroundSprite" type="Sprite2D" parent="Background"] +material = SubResource("ShaderMaterial_que50") texture = SubResource("NoiseTexture2D_u5sy4") [node name="Foreground" type="Parallax2D" parent="."] @@ -482,6 +494,7 @@ metadata/_edit_group_ = true metadata/_edit_lock_ = true [node name="ForegroundSprite" type="Sprite2D" parent="Foreground"] +material = SubResource("ShaderMaterial_hey2k") texture = SubResource("NoiseTexture2D_iywne") [node name="Player" parent="." instance=ExtResource("5_g2hoc")] diff --git a/scenes/level_3.tscn b/scenes/level_3.tscn index fd126dd..bc0e58a 100644 --- a/scenes/level_3.tscn +++ b/scenes/level_3.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=21 format=4 uid="uid://csmari5rsi31l"] +[gd_scene load_steps=30 format=4 uid="uid://csmari5rsi31l"] [ext_resource type="Script" uid="uid://b84pdw14l6gb6" path="res://scripts/scene_manager.gd" id="1_ha73p"] +[ext_resource type="Shader" uid="uid://dy7od6pkkn6xp" path="res://resources/level_3.gdshader" id="2_56dhn"] [ext_resource type="Texture2D" uid="uid://dkco6bp2yelei" path="res://graphics/tiles/25-10-26-godot-course-Terrain (32x32)-color-exchange-1.png" id="2_vcx5n"] [ext_resource type="Texture2D" uid="uid://bpf0sbb3o6rch" path="res://graphics/objects/veg_32x32.png" id="3_56dhn"] [ext_resource type="Texture2D" uid="uid://ctrmx80fc52bt" path="res://graphics/objects/mushroom_32x64.png" id="4_ax3dk"] @@ -10,6 +11,18 @@ [ext_resource type="PackedScene" uid="uid://31idmjadvk3t" path="res://scenes/coin.tscn" id="8_una4e"] [ext_resource type="PackedScene" uid="uid://bts74sqcd7k7h" path="res://scenes/slimer.tscn" id="9_ema3p"] +[sub_resource type="Gradient" id="Gradient_vcx5n"] +interpolation_mode = 1 +offsets = PackedFloat32Array(0.1625, 0.34375, 0.56875, 0.6625, 0.775) +colors = PackedColorArray(0.20280002, 0.182, 0.26, 1, 0.37049997, 0.57, 0.473575, 1, 0.1953, 0.535815, 0.63, 1, 0.51, 0.3468, 0.46648005, 1, 0.66486335, 0.67, 0.3618, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_56dhn"] +gradient = SubResource("Gradient_vcx5n") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_ax3dk"] +shader = ExtResource("2_56dhn") +shader_parameter/gradient_texture = SubResource("GradientTexture2D_56dhn") + [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gee14"] texture = ExtResource("2_vcx5n") texture_region_size = Vector2i(32, 32) @@ -421,6 +434,42 @@ sources/0 = SubResource("TileSetAtlasSource_gee14") sources/1 = SubResource("TileSetAtlasSource_0tnpc") sources/2 = SubResource("TileSetAtlasSource_vtaks") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_vcx5n"] + +[sub_resource type="Shader" id="Shader_56dhn"] +code = "shader_type canvas_item; + +uniform sampler2D gradient_texture; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 existing_color = texture(TEXTURE, UV); + float grayscale_value = (existing_color.r + existing_color.g + existing_color.b)/3.0; + vec4 new_color = texture(gradient_texture, vec2(grayscale_value)); + COLOR.rgb = new_color.rgb; + COLOR.a = existing_color.a; +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} +" + +[sub_resource type="Gradient" id="Gradient_56dhn"] +offsets = PackedFloat32Array(0.14375, 0.6125) +colors = PackedColorArray(0.19215687, 0.1882353, 0.22745098, 1, 0.9607843, 0.85490197, 0.6509804, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ax3dk"] +gradient = SubResource("Gradient_56dhn") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_q2dsb"] +shader = SubResource("Shader_56dhn") +shader_parameter/gradient_texture = SubResource("GradientTexture2D_ax3dk") + [sub_resource type="Gradient" id="Gradient_iywne"] offsets = PackedFloat32Array(0.206667, 0.66, 0.966667) colors = PackedColorArray(0, 0, 0, 1, 0.192157, 0.188235, 0.227451, 1, 0.270588, 0.235294, 0.368627, 1) @@ -458,12 +507,14 @@ unique_name_in_owner = true script = ExtResource("1_ha73p") [node name="TileMapLayer" type="TileMapLayer" parent="."] +material = SubResource("ShaderMaterial_ax3dk") position = Vector2(0, 1) tile_map_data = PackedByteArray("AADy/wMAAAABAAEAAADy/wQAAAABAAIAAADz/wQAAAABAAIAAADz/wMAAAABAAEAAAD0/wMAAAABAAEAAAD0/wQAAAABAAIAAADx/wQAAAAAAAIAAADx/wMAAAAAAAEAAAD4/wMAAAABAAAAAAD4/wQAAAABAAIAAAD5/wQAAAABAAIAAAD6/wQAAAABAAIAAAD7/wQAAAABAAIAAAD8/wQAAAABAAIAAAD9/wQAAAABAAIAAAD+/wQAAAAHAAAAAAD+/wMAAAABAAAAAAD9/wMAAAABAAAAAAD8/wMAAAABAAAAAAD7/wMAAAABAAAAAAD6/wMAAAABAAAAAAD5/wMAAAABAAAAAAABAAMAAAABAAAAAAABAAQAAAABAAEAAAABAAUAAAABAAIAAAACAAUAAAABAAIAAAADAAUAAAABAAIAAAAEAAUAAAABAAIAAAAEAAQAAAAGAAEAAAAEAAMAAAACAAAAAAADAAMAAAABAAAAAAACAAMAAAABAAAAAAACAAQAAAABAAEAAAADAAQAAAABAAEAAAD3/wMAAAABAAAAAAD2/wMAAAAGAAEAAAD1/wMAAAABAAEAAAD1/wQAAAABAAIAAAD2/wQAAAABAAIAAAD3/wQAAAABAAIAAAAKAAIAAAABAAAAAAAJAAIAAAAAAAAAAAAJAAMAAAAAAAEAAAAMAAEAAAABAAAAAAAMAAIAAAABAAEAAAAMAAMAAAABAAEAAAAMAAQAAAABAAEAAAANAAQAAAABAAEAAAANAAUAAAABAAIAAAAOAAUAAAABAAIAAAAPAAUAAAABAAIAAAAMAAUAAAABAAIAAAANAAEAAAABAAAAAAAOAAEAAAABAAAAAAANAAIAAAABAAEAAAANAAMAAAABAAEAAAAOAAQAAAABAAEAAAAPAAQAAAABAAEAAAAPAAMAAAABAAEAAAAPAAIAAAAGAAEAAAAPAAEAAAACAAAAAAAOAAIAAAABAAEAAAAOAAMAAAABAAEAAAARAAIAAAABAAAAAAARAAMAAAABAAEAAAARAAQAAAABAAEAAAARAAUAAAABAAIAAAASAAUAAAABAAIAAAATAAUAAAABAAIAAAAUAAUAAAABAAIAAAAVAAUAAAABAAIAAAAWAAUAAAABAAIAAAAWAAQAAAABAAEAAAAWAAMAAAAGAAEAAAAVAAMAAAABAAEAAAAVAAIAAAABAAAAAAAUAAIAAAABAAAAAAATAAIAAAABAAAAAAASAAIAAAABAAAAAAASAAMAAAABAAEAAAASAAQAAAABAAEAAAATAAQAAAABAAEAAAAUAAQAAAABAAEAAAAUAAMAAAABAAEAAAATAAMAAAABAAEAAAAVAAQAAAABAAEAAAAWAAIAAAACAAAAAAD4//7/AAABAAQAAAD5//7/AAAKAAMAAAD6//7/AAAHAAEAAAD7//7/AAACAAEAAAD9//3/AAAKAAQAAAD+//3/AAABAAIAAAD///3/AAABAAIAAAAAAP3/AAABAAIAAAAAAPz/AAABAAAAAAD+//z/AAABAAAAAAD///z/AAABAAAAAAACAP3/AAACAAQAAAABAP3/AAAJAAQAAAD5////AAAAAAIAAAD6////AAABAAIAAAD7////AAACAAIAAADx////AAAAAAAAAADy////AAABAAAAAADz////AAACAAAAAADx/wAAAAAAAAEAAADx/wEAAAAAAAEAAADy/wEAAAABAAEAAADz/wEAAAAGAAEAAADz/wAAAAACAAEAAADy/wAAAAABAAEAAADx/wIAAAAAAAEAAADy/wIAAAABAAEAAADz/wIAAAABAAEAAAD0/wIAAAABAAEAAAD1/wIAAAABAAEAAAD2/wIAAAACAAEAAAD3//7/AAAAAAQAAAD6//3/AAAAAAAAAAD7//3/AAAJAAMAAAABAPz/AAACAAAAAAD9//z/AAAAAAAAAAD8//3/AAABAAQAAAAHAAQAAAABAAAAAAAGAAQAAAABAAAAAAAFAAQAAAABAAAAAAALAAIAAAAHAAEAAAAQAAIAAAABAAAAAAAQAAMAAAABAAEAAAAQAAQAAAABAAEAAAAQAAUAAAABAAIAAAALAAMAAAABAAEAAAAKAAMAAAABAAEAAAAKAAQAAAABAAEAAAAKAAUAAAABAAIAAAAJAAUAAAABAAIAAAAJAAQAAAAHAAEAAAAIAAQAAAABAAAAAAAGAAUAAAABAAIAAAAFAAUAAAABAAIAAAAHAAUAAAABAAIAAAAIAAUAAAABAAIAAAALAAUAAAABAAIAAAALAAQAAAABAAEAAAAAAAQAAAABAAEAAAD//wQAAAABAAEAAAD+/wUAAAAAAAIAAAD//wUAAAABAAIAAAAAAAUAAAABAAIAAAD//wMAAAABAAAAAAAAAAMAAAABAAAAAAALAAEAAAAAAAAAAAD0/wEAAAABAAAAAAD1/wEAAAABAAAAAAALAPv/AAAAAAAAAAALAPz/AAAAAAEAAAALAP3/AAAAAAIAAAAMAPz/AAABAAEAAAANAPz/AAABAAEAAAAOAPz/AAABAAEAAAAOAPv/AAABAAAAAAANAPv/AAABAAAAAAAMAPv/AAABAAAAAAAMAP3/AAABAAIAAAANAP3/AAABAAIAAAAOAP3/AAABAAIAAAAPAPz/AAACAAEAAAAPAPv/AAACAAAAAAAPAP3/AAACAAIAAAAYAAMAAAACAAAAAAAXAAMAAAABAAAAAAAXAAQAAAABAAEAAAAXAAUAAAABAAIAAAAYAAUAAAACAAIAAAAYAAQAAAACAAEAAAAGAP3/AAAAAAQAAAAHAP3/AAACAAQAAADx//3/AAAAAAIAAADy//3/AAABAAIAAADz//3/AAACAAIAAADz//z/AAACAAAAAADy//z/AAABAAAAAADx//z/AAAAAAAAAAD2/wEAAAACAAAAAAD9/wIAAQAAAAAAAAD//wIAAQAAAAAAAAAFAAMAAQAAAAAAAAAIAAMAAQAAAAAAAAAJAAEAAQAAAAAAAAANAAAAAQAAAAAAAAD4/wIAAQAAAAAAAAD1/wAAAQAAAAAAAAD4//3/AQAAAAAAAAD8//z/AQAAAAAAAAACAPz/AQAAAAAAAAAGAPz/AQAAAAAAAAAXAAIAAQAAAAAAAAAHAAMAAgAAAAEAAAAHAAIAAgAAAAAAAAAOAAAAAgAAAAEAAAAOAP//AgAAAAAAAAASAAEAAgAAAAEAAAASAAAAAgAAAAAAAAAAAAIAAgAAAAEAAAAAAAEAAgAAAAAAAAD5/wIAAgAAAAEAAAD5/wEAAgAAAAAAAAALAPr/AgAAAAEAAAALAPn/AgAAAAAAAAD+//v/AgAAAAEAAAD+//r/AgAAAAAAAAAAAPv/AQAAAAAAAADx//v/AQAAAAAAAADy//v/AgAAAAEAAADy//r/AgAAAAAAAAD5//3/AgAAAAEAAAD5//z/AgAAAAAAAAD7//z/AgAAAAEAAAD7//v/AgAAAAAAAAD0/wAAAgAAAAEAAAD0////AgAAAAAAAAAHAPz/AgAAAAEAAAAHAPv/AgAAAAAAAAA=") tile_set = SubResource("TileSet_gee14") [node name="Background" type="Parallax2D" parent="."] z_index = -100 +material = SubResource("ShaderMaterial_vcx5n") scroll_scale = Vector2(0.5, 0.5) repeat_size = Vector2(512, 512) repeat_times = 3 @@ -471,6 +522,7 @@ metadata/_edit_lock_ = true metadata/_edit_group_ = true [node name="BackgroundSprite" type="Sprite2D" parent="Background"] +material = SubResource("ShaderMaterial_q2dsb") texture = SubResource("NoiseTexture2D_u5sy4") [node name="Foreground" type="Parallax2D" parent="."] diff --git a/scenes/player.tscn b/scenes/player.tscn index 3c2f63a..56cdb1b 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=56 format=3 uid="uid://d3y1iqmpknpyo"] +[gd_scene load_steps=60 format=3 uid="uid://d3y1iqmpknpyo"] [ext_resource type="Script" uid="uid://d3hp5rjoph7hg" path="res://scripts/player.gd" id="1_3vyb7"] [ext_resource type="Texture2D" uid="uid://dr3rp5hv7rexv" path="res://graphics/animations/player_idle/Player Idle 48x48.png" id="2_g2els"] @@ -12,6 +12,43 @@ radius = 6.0 height = 32.0 +[sub_resource type="Shader" id="Shader_fjrip"] +code = "shader_type canvas_item; + +uniform sampler2D gradient_texture; + +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 existing_color = texture(TEXTURE, UV); + float grayscale_value = (existing_color.r + existing_color.g + existing_color.b)/3.0; + vec4 new_color = texture(gradient_texture, vec2(grayscale_value)); + COLOR.rgb = new_color.rgb; + COLOR.a = existing_color.a; +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} +" + +[sub_resource type="Gradient" id="Gradient_smehm"] +interpolation_mode = 1 +offsets = PackedFloat32Array(0.2, 0.39375, 0.66875) +colors = PackedColorArray(0.14760001, 0.31398, 0.36, 1, 0.37254903, 0.78431374, 0.9019608, 1, 0.99215686, 0.99607843, 0.53333336, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ur7pv"] +gradient = SubResource("Gradient_smehm") +fill = 1 +repeat = 1 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_y4r1p"] +shader = SubResource("Shader_fjrip") +shader_parameter/gradient_texture = SubResource("GradientTexture2D_ur7pv") + [sub_resource type="AtlasTexture" id="AtlasTexture_oprun"] atlas = ExtResource("3_dqkch") region = Rect2(96, 0, 48, 48) @@ -396,6 +433,7 @@ position = Vector2(16, -7) position = Vector2(-16, -7) [node name="PlayerSprite" type="AnimatedSprite2D" parent="."] +material = SubResource("ShaderMaterial_y4r1p") sprite_frames = SubResource("SpriteFrames_3vyb7") animation = &"shoot_still" autoplay = "idle" diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 5d88d66..9dc8aa5 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -28,7 +28,7 @@ func update_enemies() -> void: var total_enemies : int = 0 for enemy in enemies.get_children(): if enemy is Slimer: - total_enemies += 1 + total_enemies = total_enemies + 1 if not enemy.player_slimed.is_connected(GameController.on_player_slimed): enemy.player_slimed.connect(GameController.on_player_slimed) GameController.add_enemy_to_level(enemy)