From 7993b1d4e5cd98ce8aa1faf9f644facad615638f Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Sat, 9 Mar 2024 13:52:12 -0500 Subject: [PATCH] make arrows follow player's palette :) --- graphics/hud/hud.png | Bin 615 -> 4672 bytes graphics/hud/hud_arrow.png | Bin 0 -> 600 bytes graphics/hud/hud_arrow.png.import | 35 +++++++++++++++++++++++++++ graphics/player/arrow.png | Bin 166 -> 4246 bytes menus/palette_select.tscn | 5 ++-- menus/results.gd | 2 ++ menus/results.tscn | 8 ++++-- objects/collectibles/arrow.gd | 6 +++++ objects/collectibles/arrow.tscn | 6 +++-- objects/enemy/enemy_arrow.tscn | 7 ++++-- objects/hud/hud.gd | 3 +++ objects/hud/hud.tscn | 22 ++++++++++++++++- objects/player/arrow_projectile.gd | 3 +++ objects/player/arrow_projectile.tscn | 10 +++++--- 14 files changed, 94 insertions(+), 13 deletions(-) create mode 100644 graphics/hud/hud_arrow.png create mode 100644 graphics/hud/hud_arrow.png.import diff --git a/graphics/hud/hud.png b/graphics/hud/hud.png index a61d4b679cd96b5b711e4dca0fded53550d53777..91dde0877904a980020437938451c25f75fb39f6 100644 GIT binary patch literal 4672 zcmeHLeQ*=k5kHw28wV5O@Kxi|uO1;#)K1l)wAKy5sxZJfG5nHHRs4|ne*%XXWY zj%S)bI^)wky}kE#e{c8q_N{dHlD)VvH6=X-L6B5yk);Gd6d)pz-8r`0 z%2}U{7dBiqKMo5mjp` zElH6CtgqNL;E{y1Bclu!Q#{9;&33EVjQacn$5*ll65jFjCR0(%f{fNDOW(}gf>n>N zI%%JOp`ajR<-~RN>7S*%L)9<;XQC~A^MuKTN8a!3JmEZlq;+XoQd!>kJ4jWvuSDFG z*0*)ivSVT2A2x=1r-iN~yMIJ)KmSk?*{=Weqvz_+yt8gi+1G6wr&}J}yp26=ElJsV zrDs}BQ%7s~wcZbMPwd*>IHmKUm#&;9JYA_>+iaIQKU|!_&00DuXU9 z&hZbr8zR~kZnkN0#_UNiKk>Gxet28@4YJB|UOY9q0e{RWRDGVQ`@Ct+YMOZW-Fbo6 z|2$=L`LVQ_FWT+q?@j#ui*0-BoYQT$$2`#Yi=M3~-+X1?*o7Ms9lP_Y?{=>K+o8wz z5xNVHq|C1En0(@!DM<;37X12};qr+MpJprWoQ-VhxKTDW^4B?E-P|zAn2>)d(i$u* zy;b}1_gDP!qgQMfw%j3~&sT(V_XwvHEsc@LvVD!Wa*BUYJ2trGpkmy(H5Hp0zA$yP zf6;!a*?sZuUF4}c|DJCOm&}744D*h1vD~(ZVg!$pb_q^a8TR<34MVbX!#$%?3x zb@N^mcKuK@hVm{GR;IHNHlLZT;EPuI+0s?T4rbL##^}Owb5gRy6aaWwkw(LwN^gJ) zn=l!d0$CbXVW_Mkt~6ogkVj_0&!VJ~R1$bWn6K7gIVoti-^EcSmW440xHDlDqUfVk zs!%AT3~7~u->p&`jYburQE4~wf}#n- zU>@!F&*QV%;_%);j0NCB6{dYEwUSVIJgUJK0kNPOKw=Jkt3|+3<6~7NY(NP58MdIB z^@=kFL%5i@y)Wpml*4f`Dz=jKfNB6%RS#KGI&pCei2^t8@yS*|_7F{x=LX0c;+r%h zhcnm_FpuL7(e963Rt7Dbjj{+#P;$>|F=5jBluKZE7bS~&oyN&91_syBMh+)+E*hr^ zEr%P`PCdctjjUcr4uZ0J10wBZSP2Til|0~ZT8%b~F*tF9k;%eIy;Fx9wHh6sMG_>b zBN$q*%^C!;*v~^&(v^d~lAv4wMH)yli(!qpQ|)r$q}J%fovaSNbXqctBpD}b(92LR zhFU22Jv3}5@1fnS%I9^<6B6N6p51D~G)iJ%#9m2@92l6eMZ7l{9++_O9=24ZB{tPr zYJwn)8Uvvtb)-Qzp!68)4?reLm~!ouXQXYRAQ&K)mhuz;!#xLW>i|e7;WrouKDew=?QOjH7`tFaM__gUT?nNmwB({soTLH|Ey`|{cGB~o9f=W zH|xrcQq}R@i6{4eUD}t1XgrErJ!dv{<-YwJy1B!3IJ|Y|t}ieDDQAN}HBf)7>cH6B zXU~4wx_bG%x@!utZFDVCl#%eumz#SIBjb@VX0+f&-;(*~de`Tj+I;45r1Ri*?$(3I zYY9Nf|HHL^4-kwg-`ktnIJIf&+VS~MEWUTMK!4`+>uaAJJ5P~}EPz)z5NNIRjs=xo i;r!!`<^=PR4#oW9hSjHL{A7+4rL~~gvOj;tv;P7(nk1J1 delta 430 zcmV;f0a5B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000iZ z000iZ0XPLyBme*b{7FPXRCr$P+CNGIK@gnt@q2~er-F=>a*yM+G_1rWA5vSDVtY-dCgz2?3av)n9;d2-MO1 zrIW#Pb=*DOeAdfSK2rbWu{!s4#9|{51Xcb8uoW1SQ4yh&U=apYR;V!?N%gh%r<0L;-$BM^`PfWQO*1SS9=FaZF82>=L806<^@00I*L5SXpN5LQuq Y0QwEZyY^sM6951J07*qoM6N<$f)+NpmjD0& diff --git a/graphics/hud/hud_arrow.png b/graphics/hud/hud_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..2003e91142931c4a492f5a0e898ff66dcec5cad1 GIT binary patch literal 600 zcmV-e0;m0nP)EX>4Tx04R}tkv&MmKpe$iQ>7}EB6bjQ$WS}kMMWHI6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfc5qU3krMxx7Fxu3aNLh~_a1le0HIM~n$;5rG~G7S z$%L5At%`wH_|cCcL=lpiWz0!Z3ZCQZ9zMR_#dwzYxj)CCnztC>6N%%@Fm2)u;+aj` z;Ji;9W+hoAJ|~_q>4LUCOuCaCKiibtaLFenHuplaYWU0$``UN zRyl8R)+#mDz9)ZSFt4vHbDicGl32tNB#2N@Lm3s=h|#K(Vj)fY2@n6M>zBx-kgE(v zjs;YqL3aJ%fAG6ot1va$N(v@`-WSLD7zYBoK(p>R-^Y&AJOTXAz?I(dR~x|WC+YQ$ z7C8b!+rY(jM^pBI%N=0k$&gLimHae?LIHR`qi@Oq!?(b|TC2DAK29Hi40V;d0S*p< zXpyqlJ>K2d-P^xs+Wq|iYLjxKN3g$P00006VoOIv0Du7h0RP)R(2W29010qNS#tmY z4!-~Z4!;371ydvd000McNliru=mQB7A{eI^uYCXj02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{001yaL_t&t*L{mY4geqw!iq27&+)P?i&1-llmJQCuC7yr mB$_cSF1)4lTB$C8`LF>9!xwi3fi#=|0000bHB>S0ph_g`bMU=M(L z9~AZ7_*lolHlCj5=j$Yb=nt)yy1?W0S?xBKu{km!p0RTR;}96$%EC7*a14xZ+1WND zgXvmhdLhhjnVOg9^W^1OLt#x(t1v;tw!gj3Rd{l8#_2bU_l)02*7mDD<9qd5ett&f zz*WBC-=`c9w#@shyLZU?0fP%peA?JpFJ3xvdUk1YX>PwJqPjLzq_0bB-aKf|saWWT zHPJ`IqW6hiucK|3`X_TYGcTT9w&kk>tCp1hd11|P_Y3Q{;`5%OlpVM44a+{(a5}c> z(UF|`o!btlH}+q7`#cl4m3nKd_eSIAGc%M?vqxo**}>dhdTPzQ(m73E9JzC-&T z?V6b}deD3GKhoJ(whno~Rl6_g=LR35X7O6}&|_+j>pmlyZ0+4z~IPoE_f>keIUHQc;%^Tu)i^(Rk= zw>E@#KQ4G<0-V8^T2iK$d8Z4K7O){%6R|B82pJnjWaY#{NUFrTRm6TZ=pyeQJx*Fx z*+rH*y^J@Mhbz>=g<)L0a7Kx=uu|e>GABDFD<%Lz0PDya3seOoLd->)yaL#Un6uGA+D4^vcD|9_1&~!8!wM88^E$pXR zp66-CPTTDiAgIWKppIfxFfziRh;z7cL<*}RUDbkCgA<8bjqV~z=(o1aFA(y2Tj_(5 zgbJVs9YZ0SwJ~%cK(~*G==rrkl9n^+y@X7rfLX+IGNZ{_WPZdtnt z29(z;xHYN9n4ZV&B8~9{S(8**FioD394Hebienju;&@4-P^OqkA!#DVIeCfWu+omo z6O8C6C}D#N$Zaa{h)A5|6lFv?084RpNv1^Ep-{Y&w{xPRNE0z`M=>+3!l^`6?Pq0B z$v`EGoSg+cg%uW4+$7|ncvi*~aIlO6E12aOlS-C^saiOIU^~?S@?$y_^qU=q;6kp? z<09?0IMnp`s*tWgfQy{225Vw%&=NI(i*;nE$-)>6Gtt4Y499XD+XkA2!x1=%2B(=j z%^qW01Xv6Ri;Qy$1g0O>BIJcJ(zS4jrd7Gf)~wsw?S<iD{vFd#3f?K!S9@v;OP}AoE;&EJ|~T0 zsn_<(;7ry%-u&b{-Fl^2#ub)d9Stsr$DLb}eo-p74s2>}Zq8wU+0s+3n4IPp%i&oj rE(fPn&ZYKl-nDq`*^x)KjwFb>>(tz7gZpMcIN`~k;r@6^`O<#?uj;A~ delta 138 zcmbQHxQuavNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8YLYfl%)5RKqu1<4xIvS0kEk63*Iq?Wh+{r&y$QAtOarlppClONx 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 )