diff --git a/graphics/hud/hud.png b/graphics/hud/hud.png index a61d4b6..91dde08 100644 Binary files a/graphics/hud/hud.png and b/graphics/hud/hud.png differ diff --git a/graphics/hud/hud_arrow.png b/graphics/hud/hud_arrow.png new file mode 100644 index 0000000..2003e91 Binary files /dev/null and b/graphics/hud/hud_arrow.png differ diff --git a/graphics/hud/hud_arrow.png.import b/graphics/hud/hud_arrow.png.import new file mode 100644 index 0000000..b551078 --- /dev/null +++ b/graphics/hud/hud_arrow.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/hud_arrow.png-41c44a240363dedbd3291d11e50b15f7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/hud_arrow.png" +dest_files=[ "res://.import/hud_arrow.png-41c44a240363dedbd3291d11e50b15f7.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/graphics/player/arrow.png b/graphics/player/arrow.png index 4d7e9d2..14f7695 100644 Binary files a/graphics/player/arrow.png and b/graphics/player/arrow.png differ diff --git a/menus/palette_select.tscn b/menus/palette_select.tscn index 75e53bc..6431d48 100644 --- a/menus/palette_select.tscn +++ b/menus/palette_select.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=27 format=2] +[gd_scene load_steps=28 format=2] [ext_resource path="res://shaders/ska_plane.gdshader" type="Shader" id=1] [ext_resource path="res://ui/theme.tres" type="Theme" id=2] @@ -17,6 +17,7 @@ [ext_resource path="res://menus/level_select_scholar.tscn" type="PackedScene" id=15] [ext_resource path="res://graphics/player/palettes/cosmological_redshift.png" type="Texture" id=16] [ext_resource path="res://graphics/player/palettes/gravitational_redshift.png" type="Texture" id=17] +[ext_resource path="res://graphics/player/palettes/elaine.tex" type="Texture" id=18] [sub_resource type="ShaderMaterial" id=1] shader = ExtResource( 1 ) @@ -32,7 +33,7 @@ shader_param/uv_transform = Transform2D( 0.5, -0.5, 0.5, 1, 0, 0 ) shader = ExtResource( 4 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = true -shader_param/palette = ExtResource( 7 ) +shader_param/palette = ExtResource( 18 ) [sub_resource type="AtlasTexture" id=5] atlas = ExtResource( 10 ) diff --git a/menus/results.gd b/menus/results.gd index ebfd63f..d8c2d4c 100644 --- a/menus/results.gd +++ b/menus/results.gd @@ -27,6 +27,8 @@ func _notification(what: int) -> void: func _ready() -> void: + var palette = load("res://graphics/player/palettes/%s.tex" % Game.current_palette) + $"%ArrowBonus".material.set_shader_param("palette", palette) #preload final score text_3d = Text3D.instance() text_3d.anim = "final score" diff --git a/menus/results.tscn b/menus/results.tscn index 94c3bf5..b6d0d50 100644 --- a/menus/results.tscn +++ b/menus/results.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=2] +[gd_scene load_steps=21 format=2] [ext_resource path="res://shaders/wibble_wobble.gdshader" type="Shader" id=1] [ext_resource path="res://shaders/ska_plane.gdshader" type="Shader" id=2] @@ -10,6 +10,8 @@ [ext_resource path="res://graphics/hud/final_score.png" type="Texture" id=8] [ext_resource path="res://ui/2ndpuberty_outline.tres" type="Material" id=9] [ext_resource path="res://ui/theme.tres" type="Theme" id=10] +[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=11] +[ext_resource path="res://graphics/player/palettes/default.tex" type="Texture" id=12] [ext_resource path="res://menus/results.gd" type="Script" id=13] [ext_resource path="res://menus/results_icon.tscn" type="PackedScene" id=14] @@ -24,9 +26,10 @@ shader_param/cycle_alternation = Vector2( 2, 0 ) shader_param/uv_transform = Transform2D( 1, 1, 0, 1, 0, 0 ) [sub_resource type="ShaderMaterial" id=7] -shader = ExtResource( 3 ) +shader = ExtResource( 11 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = false +shader_param/palette = ExtResource( 12 ) [sub_resource type="ShaderMaterial" id=8] shader = ExtResource( 3 ) @@ -470,6 +473,7 @@ theme = ExtResource( 10 ) text = "+500" [node name="ArrowBonus" type="Sprite" parent="ShardsAndBonuses/Bonuses"] +unique_name_in_owner = true material = SubResource( 7 ) position = Vector2( 24, 120 ) rotation = -1.5708 diff --git a/objects/collectibles/arrow.gd b/objects/collectibles/arrow.gd index b89a206..edca381 100644 --- a/objects/collectibles/arrow.gd +++ b/objects/collectibles/arrow.gd @@ -1,8 +1,14 @@ extends Node2D + export var value = 1 +func _ready() -> void: + var palette = load("res://graphics/player/palettes/%s.tex" % Game.current_palette) + $Sprite.material.set_shader_param("palette", palette) + + func _on_Area2D_body_entered(body: Node) -> void: #Collect if body.is_in_group("player"): diff --git a/objects/collectibles/arrow.tscn b/objects/collectibles/arrow.tscn index d34f054..d55c601 100644 --- a/objects/collectibles/arrow.tscn +++ b/objects/collectibles/arrow.tscn @@ -1,13 +1,15 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] -[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] +[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=1] [ext_resource path="res://objects/collectibles/arrow.gd" type="Script" id=2] [ext_resource path="res://graphics/player/arrow.png" type="Texture" id=3] +[ext_resource path="res://graphics/player/palettes/default.tex" type="Texture" id=4] [sub_resource type="ShaderMaterial" id=7] shader = ExtResource( 1 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = false +shader_param/palette = ExtResource( 4 ) [sub_resource type="RectangleShape2D" id=6] extents = Vector2( 4, 4 ) diff --git a/objects/enemy/enemy_arrow.tscn b/objects/enemy/enemy_arrow.tscn index 37ef8ec..87f9239 100644 --- a/objects/enemy/enemy_arrow.tscn +++ b/objects/enemy/enemy_arrow.tscn @@ -1,14 +1,17 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=10 format=2] -[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] +[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=1] [ext_resource path="res://graphics/player/arrow.png" type="Texture" id=2] [ext_resource path="res://objects/player/arrow_projectile.gd" type="Script" id=3] [ext_resource path="res://graphics/particles/dust.png" type="Texture" id=4] +[ext_resource path="res://graphics/player/palettes/default.tex" type="Texture" id=5] [sub_resource type="ShaderMaterial" id=1] +resource_local_to_scene = true shader = ExtResource( 1 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = false +shader_param/palette = ExtResource( 5 ) [sub_resource type="Curve" id=3] _data = [ Vector2( 0, 1 ), 0.0, -0.139481, 0, 0, Vector2( 1, 0 ), -2.82064, 0.0, 0, 0 ] diff --git a/objects/hud/hud.gd b/objects/hud/hud.gd index 9341134..c1a7f77 100644 --- a/objects/hud/hud.gd +++ b/objects/hud/hud.gd @@ -19,6 +19,9 @@ export var song_name = "♫Music" export (Color) var bonus_color func _ready(): + # load arrow palette + var palette = load("res://graphics/player/palettes/%s.tex" % Game.current_palette) + $Arrow.material.set_shader_param("palette", palette) #Change graphics depending on if lives are on if Game.use_lives: $LivesHead.visible = true diff --git a/objects/hud/hud.tscn b/objects/hud/hud.tscn index 6086026..58b24c6 100644 --- a/objects/hud/hud.tscn +++ b/objects/hud/hud.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=2] +[gd_scene load_steps=20 format=2] [ext_resource path="res://graphics/hud/stars_hud.png" type="Texture" id=1] [ext_resource path="res://graphics/hud/lives_head.png" type="Texture" id=2] @@ -12,6 +12,13 @@ [ext_resource path="res://ui/theme.tres" type="Theme" id=10] [ext_resource path="res://graphics/hud/oxygen.png" type="Texture" id=11] [ext_resource path="res://graphics/hud/oxygen_meter.png" type="Texture" id=12] +[ext_resource path="res://shaders/recolor.tres" type="Shader" id=13] +[ext_resource path="res://graphics/player/palettes/default.tex" type="Texture" id=14] +[ext_resource path="res://graphics/hud/hud_arrow.png" type="Texture" id=15] + +[sub_resource type="ShaderMaterial" id=4] +shader = ExtResource( 13 ) +shader_param/palette = ExtResource( 14 ) [sub_resource type="ShaderMaterial" id=1] @@ -56,6 +63,19 @@ texture = ExtResource( 5 ) position = Vector2( 9, 6 ) texture = ExtResource( 7 ) +[node name="Arrow" type="Sprite" parent="."] +material = SubResource( 4 ) +position = Vector2( 58, 6 ) +texture = ExtResource( 15 ) + +[node name="ArrowShade" type="Sprite" parent="Arrow"] +modulate = Color( 0.57, 0.57, 0.57, 1 ) +use_parent_material = true +position = Vector2( 0, 4 ) +texture = ExtResource( 15 ) +region_enabled = true +region_rect = Rect2( 0, 6, 5, 1 ) + [node name="RedStar" type="Sprite" parent="."] visible = false material = SubResource( 1 ) diff --git a/objects/player/arrow_projectile.gd b/objects/player/arrow_projectile.gd index 26c9efa..8f51b59 100644 --- a/objects/player/arrow_projectile.gd +++ b/objects/player/arrow_projectile.gd @@ -21,6 +21,9 @@ onready var initial_sector: Vector2 = Game.current_sector func _ready(): + if target_group == "enemy_hitbox": + var palette = load("res://graphics/player/palettes/%s.tex" % Game.current_palette) + $Sprite.material.set_shader_param("palette", palette) #Flip depending on direction scale.x = direction diff --git a/objects/player/arrow_projectile.tscn b/objects/player/arrow_projectile.tscn index 17e79a4..2b5471a 100644 --- a/objects/player/arrow_projectile.tscn +++ b/objects/player/arrow_projectile.tscn @@ -1,14 +1,16 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=10 format=2] -[ext_resource path="res://shaders/1px_border.gdshader" type="Shader" id=1] +[ext_resource path="res://shaders/recolor_border.shader" type="Shader" id=1] [ext_resource path="res://graphics/player/arrow.png" type="Texture" id=2] [ext_resource path="res://objects/player/arrow_projectile.gd" type="Script" id=3] [ext_resource path="res://graphics/particles/dust.png" type="Texture" id=4] +[ext_resource path="res://graphics/player/palettes/default.tex" type="Texture" id=5] -[sub_resource type="ShaderMaterial" id=1] +[sub_resource type="ShaderMaterial" id=7] shader = ExtResource( 1 ) shader_param/border_color = Color( 0, 0, 0, 1 ) shader_param/border_corners = false +shader_param/palette = ExtResource( 5 ) [sub_resource type="Curve" id=3] _data = [ Vector2( 0, 1 ), 0.0, -0.139481, 0, 0, Vector2( 1, 0 ), -2.82064, 0.0, 0, 0 ] @@ -24,7 +26,7 @@ z_index = 1 script = ExtResource( 3 ) [node name="Sprite" type="Sprite" parent="."] -material = SubResource( 1 ) +material = SubResource( 7 ) z_index = -1 texture = ExtResource( 2 )