diff --git a/assets/shaders/providence.fs b/assets/shaders/providence.fs index d0e0302e..fc8cb9e1 100644 --- a/assets/shaders/providence.fs +++ b/assets/shaders/providence.fs @@ -17,47 +17,48 @@ extern MY_HIGHP_OR_MEDIUMP vec4 burn_colour_2; vec4 dissolve_mask(vec4 tex, vec2 texture_coords, vec2 uv) { if (dissolve < 0.001) { - return vec4(shadow ? vec3(0.,0.,0.) : tex.xyz, shadow ? tex.a*0.3: tex.a); + return vec4(shadow ? vec3(0.0, 0.0, 0.0) : tex.xyz, shadow ? tex.a * 0.3 : tex.a); } - float adjusted_dissolve = (dissolve*dissolve*(3.-2.*dissolve))*1.02 - 0.01; //Adjusting 0.0-1.0 to fall to -0.1 - 1.1 scale so the mask does not pause at extreme values + float adjusted_dissolve = (dissolve * dissolve * (3.0 - 2.0 * dissolve)) * 1.02 - 0.01; //Adjusting 0.0-1.0 to fall to -0.1 - 1.1 scale so the mask does not pause at extreme values - float t = time * 10.0 + 2003.; - vec2 floored_uv = (floor((uv*texture_details.ba)))/max(texture_details.b, texture_details.a); + float t = time * 10.0 + 2003.0; + vec2 floored_uv = (floor((uv * texture_details.ba))) / max(texture_details.b, texture_details.a); vec2 uv_scaled_centered = (floored_uv - 0.5) * 2.3 * max(texture_details.b, texture_details.a); - - vec2 field_part1 = uv_scaled_centered + 50.*vec2(sin(-t / 143.6340), cos(-t / 99.4324)); - vec2 field_part2 = uv_scaled_centered + 50.*vec2(cos( t / 53.1532), cos( t / 61.4532)); - vec2 field_part3 = uv_scaled_centered + 50.*vec2(sin(-t / 87.53218), sin(-t / 49.0000)); - - float field = (1.+ ( + + vec2 field_part1 = uv_scaled_centered + 50.0 * vec2(sin(-t / 143.6340), cos(-t / 99.4324)); + vec2 field_part2 = uv_scaled_centered + 50.0 * vec2(cos( t / 53.1532), cos( t / 61.4532)); + vec2 field_part3 = uv_scaled_centered + 50.0 * vec2(sin(-t / 87.53218), sin(-t / 49.0000)); + + float field = (1.0 + ( cos(length(field_part1) / 19.483) + sin(length(field_part2) / 33.155) * cos(field_part2.y / 15.73) + - cos(length(field_part3) / 27.193) * sin(field_part3.x / 21.92) ))/2.; + cos(length(field_part3) / 27.193) * sin(field_part3.x / 21.92) )) / 2.0; + vec2 borders = vec2(0.2, 0.8); - float res = (.5 + .5* cos( (adjusted_dissolve) / 82.612 + ( field + -.5 ) *3.14)) - - (floored_uv.x > borders.y ? (floored_uv.x - borders.y)*(5. + 5.*dissolve) : 0.)*(dissolve) - - (floored_uv.y > borders.y ? (floored_uv.y - borders.y)*(5. + 5.*dissolve) : 0.)*(dissolve) - - (floored_uv.x < borders.x ? (borders.x - floored_uv.x)*(5. + 5.*dissolve) : 0.)*(dissolve) - - (floored_uv.y < borders.x ? (borders.x - floored_uv.y)*(5. + 5.*dissolve) : 0.)*(dissolve); - - if (tex.a > 0.01 && burn_colour_1.a > 0.01 && !shadow && res < adjusted_dissolve + 0.8*(0.5-abs(adjusted_dissolve-0.5)) && res > adjusted_dissolve) { - if (!shadow && res < adjusted_dissolve + 0.5*(0.5-abs(adjusted_dissolve-0.5)) && res > adjusted_dissolve) { + float res = (.5 + .5 * cos((adjusted_dissolve) / 82.612 + (field + -0.5) * 3.14)) + - (floored_uv.x > borders.y ? (floored_uv.x - borders.y) * (5.0 + 5.0 * dissolve) : 0.0) * (dissolve) + - (floored_uv.y > borders.y ? (floored_uv.y - borders.y) * (5.0 + 5.0 * dissolve) : 0.0) * (dissolve) + - (floored_uv.x < borders.x ? (borders.x - floored_uv.x) * (5.0 + 5.0 * dissolve) : 0.0) * (dissolve) + - (floored_uv.y < borders.x ? (borders.x - floored_uv.y) * (5.0 + 5.0 * dissolve) : 0.0) * (dissolve); + + if (tex.a > 0.01 && burn_colour_1.a > 0.01 && !shadow && res < adjusted_dissolve + 0.8 * (0.5 - abs(adjusted_dissolve - 0.5)) && res > adjusted_dissolve) { + if (!shadow && res < adjusted_dissolve + 0.5 * (0.5 - abs(adjusted_dissolve - 0.5)) && res > adjusted_dissolve) { tex.rgba = burn_colour_1.rgba; } else if (burn_colour_2.a > 0.01) { tex.rgba = burn_colour_2.rgba; } } - return vec4(shadow ? vec3(0.,0.,0.) : tex.xyz, res > adjusted_dissolve ? (shadow ? tex.a*0.3: tex.a) : .0); + return vec4(shadow ? vec3(0.0, 0.0, 0.0) : tex.xyz, res > adjusted_dissolve ? (shadow ? tex.a * 0.3 : tex.a) : 0.0); } number hue(number s, number t, number h) { - number hs = mod(h, 1.)*6.; - if (hs < 1.) return (t-s) * hs + s; - if (hs < 3.) return t; - if (hs < 4.) return (t-s) * (4.-hs) + s; + number hs = mod(h, 1.0) * 6.0; + if (hs < 1.0) return (t - s) * hs + s; + if (hs < 3.0) return t; + if (hs < 4.0) return (t - s) * (4.0 - hs) + s; return s; } @@ -65,10 +66,10 @@ vec4 RGB(vec4 c) { if (c.y < 0.0001) return vec4(vec3(c.z), c.a); - - number t = (c.z < .5) ? c.y*c.z + c.z : -c.y*c.z + (c.y+c.z); + + number t = (c.z < 0.5) ? c.y * c.z + c.z : -c.y * c.z + (c.y + c.z); number s = 2.0 * c.z - t; - return vec4(hue(s,t,c.x + 1./3.), hue(s,t,c.x), hue(s,t,c.x - 1./3.), c.w); + return vec4(hue(s, t, c.x + 1.0/3.0), hue(s, t, c.x), hue(s, t, c.x - 1.0/3.0), c.w); } vec4 HSL(vec4 c) @@ -76,66 +77,66 @@ vec4 HSL(vec4 c) number low = min(c.r, min(c.g, c.b)); number high = max(c.r, max(c.g, c.b)); number delta = high - low; - number sum = high+low; + number sum = high + low; - vec4 hsl = vec4(.0, .0, .5 * sum, c.a); - if (delta == .0) + vec4 hsl = vec4(0.0, 0.0, 0.5 * sum, c.a); + if (delta == 0.0) return hsl; - - hsl.y = (hsl.z < .5) ? delta / sum : delta / (2.0 - sum); - - if (high == c.r) + + hsl.y = (hsl.z < 0.5) ? delta / sum : delta / (2.0 - sum); + + if (high == c.r) hsl.x = (c.g - c.b) / delta; else if (high == c.g) hsl.x = (c.b - c.r) / delta + 2.0; else hsl.x = (c.r - c.g) / delta + 4.0; - hsl.x = mod(hsl.x / 6., 1.); + hsl.x = mod(hsl.x / 6.0, 1.0); return hsl; } -vec4 effect( vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords ) +vec4 effect(vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords) { vec4 tex = Texel(texture, texture_coords); - float fac = 1/8.; - float p = texture_coords.x/fac + providence.y/10.; + + float fac = 1.0 / 8.0; + float p = texture_coords.x / fac + providence.y / 10.0; p = p - floor(p); - vec4 glint = Texel(extra_img, vec2(p, texture_coords.y/fac)); + vec4 glint = Texel(extra_img, vec2(p, texture_coords.y / fac)); - vec2 uv = (((texture_coords)*(image_details)) - texture_details.xy*texture_details.ba)/texture_details.ba; + vec2 uv = (((texture_coords) * (image_details)) - texture_details.xy * texture_details.ba) / texture_details.ba; number low = min(tex.r, min(tex.g, tex.b)); - number high = max(tex.r, max(tex.g, tex.b)); + number high = max(tex.r, max(tex.g, tex.b)); number delta = high - low; - number saturation_fac = 1. - max(0., 0.05*(1.1-delta)); - - vec4 hsl = HSL(vec4(tex.r*saturation_fac, tex.g*saturation_fac, tex.b, tex.a)); + number saturation_fac = 1.0 - max(0.0, 0.05 * (1.1 - delta)); + vec4 hsl = HSL(vec4(tex.r * saturation_fac, tex.g * saturation_fac, tex.b, tex.a)); - float t = providence.y*2.221 + time; - vec2 floored_uv = (floor((uv*texture_details.ba)))/texture_details.ba; - vec2 uv_scaled_centered = (floored_uv - 0.5) * 50.; + float t = providence.y * 2.221 + time; + vec2 floored_uv = (floor((uv * texture_details.ba))) / texture_details.ba; + vec2 uv_scaled_centered = (floored_uv - 0.5) * 50.0; - vec2 field_part1 = uv_scaled_centered + 50.*vec2(sin(-t / 13.6340), cos(-t / 9.4324)); - vec2 field_part2 = uv_scaled_centered + 50.*vec2(cos( t / 5.1532), cos( t / 6.4532)); - vec2 field_part3 = uv_scaled_centered + 50.*vec2(sin(-t / 8.53218), sin(-t / 4.0000)); - - float field = (1.+ ( + vec2 field_part1 = uv_scaled_centered + 50.0 * vec2(sin(-t / 13.6340), cos(-t / 9.4324)); + vec2 field_part2 = uv_scaled_centered + 50.0 * vec2(cos( t / 5.1532), cos( t / 6.4532)); + vec2 field_part3 = uv_scaled_centered + 50.0 * vec2(sin(-t / 8.53218), sin(-t / 4.0000)); + + float field = (1.0 + ( cos(length(field_part1) / 19.483) + sin(length(field_part2) / 33.155) * cos(field_part2.y / 15.73) + - cos(length(field_part3) / 27.193) * sin(field_part3.x / 21.92) ))/2.; + cos(length(field_part3) / 27.193) * sin(field_part3.x / 21.92) )) / 2.0; - float res = (.5 + .5* cos( (providence.x) * 2.612 + ( field + -.5 ) *3.14)); - - if (uv.x > uv.x * 2.){ + float res = (0.5 + 0.5 * cos((providence.x) * 2.612 + (field + -0.5) * 3.14)); + + if (uv.x > uv.x * 2.0) { uv = providence; } colour = glint; colour.a = tex.a; colour = HSL(colour); - float dist = sqrt((uv.x-0.5)*(uv.x-0.5) + (uv.y-0.5)*(uv.y-0.5)); - float p2 = sin(4.*dist + providence.y)/12.; + float dist = sqrt((uv.x - 0.5) * (uv.x - 0.5) + (uv.y - 0.5) * (uv.y - 0.5)); + float p2 = sin(4.0 * dist + providence.y) / 12.0; colour.r += p2; colour.b *= colour.b; colour = RGB(colour); @@ -148,16 +149,16 @@ extern MY_HIGHP_OR_MEDIUMP float hovering; extern MY_HIGHP_OR_MEDIUMP float screen_scale; #ifdef VERTEX -vec4 position( mat4 transform_projection, vec4 vertex_position ) +vec4 position(mat4 transform_projection, vec4 vertex_position) { - if (hovering <= 0.){ + if (hovering <= 0.0) { return transform_projection * vertex_position; } - float mid_dist = length(vertex_position.xy - 0.5*love_ScreenSize.xy)/length(love_ScreenSize.xy); - vec2 mouse_offset = (vertex_position.xy - mouse_screen_pos.xy)/screen_scale; - float scale = 0.2*(-0.03 - 0.3*max(0., 0.3-mid_dist)) - *hovering*(length(mouse_offset)*length(mouse_offset))/(2. -mid_dist); - - return transform_projection * vertex_position + vec4(0,0,0,scale); + float mid_dist = length(vertex_position.xy - 0.5 * love_ScreenSize.xy) / length(love_ScreenSize.xy); + vec2 mouse_offset = (vertex_position.xy - mouse_screen_pos.xy) / screen_scale; + float scale = 0.2 * (-0.03 - 0.3 * max(0.0, 0.3 - mid_dist)) + * hovering * (length(mouse_offset) * length(mouse_offset)) / (2.0 - mid_dist); + + return transform_projection * vertex_position + vec4(0.0, 0.0, 0.0, scale); } #endif \ No newline at end of file diff --git a/items/jokers/rlegendary_jokers.lua b/items/jokers/rlegendary_jokers.lua index 3f3ed9bc..8a7b1253 100644 --- a/items/jokers/rlegendary_jokers.lua +++ b/items/jokers/rlegendary_jokers.lua @@ -288,7 +288,7 @@ local entropy_card = { atlas = "reverse_legendary", demicoloncompat=true, loc_vars = function(self, info_queue, card) - if Entropy.config.asc_power_tutorial then q[#q+1] = {set = "Other", key = "asc_power_tutorial"} end + if Entropy.config.asc_power_tutorial then info_queue[#info_queue+1] = {set = "Other", key = "asc_power_tutorial"} end return { vars = { number_format(card.ability.x_asc_mod),