Skip to content
Merged

Dev #111

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
c25e305
start of entropicaning
lord-ruby Jan 11, 2026
b7f9239
idk bruh
lord-ruby Jan 11, 2026
3e0e2a9
im so entropic
lord-ruby Jan 12, 2026
14375d7
resprites and fixes
lord-ruby Jan 14, 2026
b01d01b
typo
lord-ruby Jan 14, 2026
bc0f0c6
technically better mod compact
soulware1 Jan 14, 2026
6371699
xekanos and ieros resprites
lord-ruby Jan 15, 2026
d57b49c
blindside compat patches
lord-ruby Jan 15, 2026
0bed4f3
music slop
soulware1 Jan 15, 2026
f4b783a
Merge branch 'lord-ruby:main' into patch-2
soulware1 Jan 15, 2026
1ad65f3
Merge pull request #101 from soulware1/patch-2
lord-ruby Jan 15, 2026
e2211de
start of blindside crossmod
lord-ruby Jan 16, 2026
553cf89
fix blindside stuff
lord-ruby Jan 16, 2026
b33bdc5
oops
lord-ruby Jan 16, 2026
a00e951
blindside showdowns (no sprites)
lord-ruby Jan 18, 2026
ccbec88
some finity stuff
lord-ruby Jan 18, 2026
de1750b
fix finity stuff
lord-ruby Jan 19, 2026
71118ef
searing joke & inversion animation update
lord-ruby Jan 19, 2026
5dadd48
i forgot what i even changed
lord-ruby Jan 19, 2026
9f84bb8
<:chud:1460023939421044818>
lord-ruby Jan 19, 2026
5d48a26
as is standard at this point, an excessive amount of effort for a joker
lord-ruby Jan 19, 2026
5f6717b
woaw
lord-ruby Jan 20, 2026
563efe4
loc file changes ft. MissingNumber
lord-ruby Jan 20, 2026
747246b
ancestral recall
lord-ruby Jan 21, 2026
34180e8
asdaksdjaskldj
lord-ruby Jan 21, 2026
e1f65b1
SDASFAWDAWDAWD
lord-ruby Jan 21, 2026
152b85f
I HATE CELESTE GAMER 223
lord-ruby Jan 21, 2026
71287e9
,
lord-ruby Jan 21, 2026
863e43f
start of planetarium and desc stuff
lord-ruby Jan 22, 2026
af2b23d
double down & null resprite
lord-ruby Jan 22, 2026
991ef1e
make prismatic last in enhancement order
InvalidOS Jan 22, 2026
aab2a99
hidden consumables get {E:1}
InvalidOS Jan 22, 2026
48e1b80
planetarium crossmod stuff
lord-ruby Jan 22, 2026
07ea470
Merge pull request #104 from InvalidOS/patch-4
lord-ruby Jan 22, 2026
a1c7007
Merge pull request #103 from InvalidOS/patch-3
lord-ruby Jan 22, 2026
a84e958
idk
lord-ruby Jan 23, 2026
b7f8ed1
servant fixes
lord-ruby Jan 23, 2026
4067c0d
more planetarium effects
lord-ruby Jan 25, 2026
5bbb4c2
wormwood
lord-ruby Jan 25, 2026
f64eebf
apeirostemma resprite
lord-ruby Jan 25, 2026
b0bf0d1
im stuff
lord-ruby Jan 25, 2026
0d35419
reduce performance impact of neptune
lord-ruby Jan 26, 2026
584c756
deck of containment stuff + anaptyxi
lord-ruby Jan 26, 2026
aaafd89
forgot to save award
lord-ruby Jan 26, 2026
1ae6667
deck of containment cryptidless
lord-ruby Jan 27, 2026
b7669ea
fix blind token crash
lord-ruby Jan 27, 2026
c528be9
few bugfixes
lord-ruby Jan 27, 2026
7bf4913
finish planetarium
lord-ruby Jan 27, 2026
d784102
fix asc edition tags
lord-ruby Jan 27, 2026
fcc532a
improve useable joker checks
lord-ruby Jan 28, 2026
f9ed72a
fix 2x atlas
lord-ruby Jan 29, 2026
27df844
hopefully fix marked stuff
lord-ruby Jan 29, 2026
e22cce2
fix texture related typos
lord-ruby Jan 29, 2026
c76372b
endurance resprite
lord-ruby Jan 31, 2026
832b884
feud resprite
lord-ruby Jan 31, 2026
04fc3eb
fix double down and texas hold 'em
lord-ruby Feb 1, 2026
827815f
purity resprite
lord-ruby Feb 1, 2026
74f8a50
im a chud
lord-ruby Feb 3, 2026
d17a1a7
good enough
lord-ruby Feb 3, 2026
500080c
forgot one
lord-ruby Feb 3, 2026
95053f2
main menu stuff
lord-ruby Feb 5, 2026
8082f6d
music slop
soulware1 Feb 7, 2026
2db5e56
suit chips ui + serpents fix
lord-ruby Feb 7, 2026
73ad3f6
fix: shaders on mobile
WilsontheWolf Feb 8, 2026
aa1a389
Merge pull request #107 from WilsontheWolf/dev
lord-ruby Feb 8, 2026
ac6b783
Merge pull request #106 from soulware1/patch-5
lord-ruby Feb 8, 2026
5a08acc
afterimage resprite
lord-ruby Feb 11, 2026
1c80fe9
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
lord-ruby Feb 11, 2026
0c8f924
fix various bugs
lord-ruby Feb 11, 2026
2e30002
clean up spindown stuff
lord-ruby Feb 12, 2026
b3f8509
antiderivative resprite
lord-ruby Feb 12, 2026
184a64f
nerf wormwood
lord-ruby Feb 12, 2026
4c149ef
fix malformed deck default jokers
Feb 15, 2026
51e021b
idk
Feb 15, 2026
c0cab04
fix curse of the maze
Feb 15, 2026
767e438
kill localthunk
Feb 15, 2026
4ab997b
larp larp larp sahur
Feb 16, 2026
ed005a1
an old chud took his mod to an repair foid
Feb 16, 2026
cfe0d4c
SORRY... YOU'RE NOT A SIGMA
Feb 16, 2026
70ef81c
gamma = 2 i think probably maybe
Feb 16, 2026
8b0ace1
clean up destroying card code
Feb 17, 2026
ee9043f
crossmod menu fixes
Feb 17, 2026
c3204e2
add curse icons to hud
Feb 18, 2026
45d9d73
fix curse of the blind
Feb 18, 2026
29bd91a
uh oh
Feb 19, 2026
19f54ce
fix pact of strength
Feb 19, 2026
47f5352
fix food joker eternal compat
Feb 19, 2026
bd22f63
allow custom rlegendary pulse outline colors part 1 because i'm too l…
InvalidOS Feb 19, 2026
0184795
custom rlegendary outline colors part 2
InvalidOS Feb 19, 2026
34cf47e
Merge pull request #108 from InvalidOS/patch-5
lord-ruby Feb 19, 2026
bb0dd78
fix the rlegendary outline skipping part of its animation
InvalidOS Feb 19, 2026
7e406da
Merge pull request #109 from InvalidOS/patch-5
lord-ruby Feb 19, 2026
756c911
fix reverse outline shader
Feb 19, 2026
385be10
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
Feb 19, 2026
575d71f
fix fasciation suit checks
Feb 19, 2026
991b59a
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Feb 19, 2026
e4b35ff
:3
Feb 19, 2026
95c0e77
fix abbacus
Feb 19, 2026
545a170
version bump
Feb 19, 2026
a0d4e3d
normal commit
Feb 24, 2026
3259477
obligatory calamity mod reference
Feb 24, 2026
aa1d5c0
The Beginning of Something Really Excellent
Feb 25, 2026
0d1e86f
dumb stupid idiot ruby stupid dummy dumb dumb
Feb 25, 2026
9b0100b
move this from spectrallib to entropy
InvalidOS Feb 25, 2026
ace0c1b
fix yaldaboath inverting from the wrong things
InvalidOS Feb 25, 2026
0835532
update blind copying functionality
Feb 25, 2026
dd4b055
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
Feb 25, 2026
b6661d3
fix meridian checks
Feb 25, 2026
f803aa8
add egocentrism
Feb 25, 2026
bb49151
clean up forcetrigger stuff
Feb 25, 2026
cad92e3
:brain:
Feb 25, 2026
fdffe43
voidheart
Feb 26, 2026
10093f6
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
InvalidOS Feb 26, 2026
c503084
loc stuff
Feb 26, 2026
44ffb01
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
Feb 26, 2026
ba7a831
make all void joker inversion messages generated dynamically + fixes
InvalidOS Feb 26, 2026
00d1168
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
InvalidOS Feb 26, 2026
5d2ca17
oops
InvalidOS Feb 26, 2026
7985dea
:3
Feb 26, 2026
ee7046f
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
Feb 26, 2026
1bcbbf1
not needed
Feb 26, 2026
16ad46a
make void joker desc ignore non-existent keys
InvalidOS Feb 26, 2026
2b339f5
Merge branch 'dev' of https://github.com/lord-ruby/Entropy into dev
InvalidOS Feb 26, 2026
17a13db
handle things better
Feb 26, 2026
38d061d
bro really has the key to everyones room nahh get out
Feb 26, 2026
01a5c45
localization
Feb 26, 2026
df00f99
wording tweak
Feb 26, 2026
5a5598f
fix
Feb 27, 2026
e674dfb
desiderium
Feb 27, 2026
5bb7edb
improve checks for nil
Feb 27, 2026
b42e41b
nadir
Feb 27, 2026
1aad42a
crooked penny :money_mouth:
Feb 27, 2026
59399fe
xmoney slop
Feb 27, 2026
8bc9385
nyx
Feb 28, 2026
fa25e8a
fix 2x atlas
Feb 28, 2026
899ec9c
desiderium spritre
Feb 28, 2026
336d928
idk vro
Feb 28, 2026
16128fe
fix scaling messages
Feb 28, 2026
75f8866
fix void jopinaerklkajklahjkl
Mar 1, 2026
ec25216
update dependencies
Mar 1, 2026
a11eeda
fix 2x atlas again award
Mar 1, 2026
272c8b9
most void joker sprites
Mar 1, 2026
8e854aa
bpcompat stuff
Mar 1, 2026
3b6d2f8
im straight up demi-ing it and by it lets just say my urge
Mar 1, 2026
849aabe
fix unstable rift stuff
Mar 1, 2026
21aa40b
<:drool:1460023832080420924>
Mar 1, 2026
c988264
RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Mar 1, 2026
541761d
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Mar 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 57 additions & 4 deletions Entropy.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
local mod_path = "" .. SMODS.current_mod.path
Entropy.path = mod_path

SMODS.load_file("lib/utils.lua")()
assert(Spectrallib, "Please make sure Spectrallib is installed instead of Cryptlib\nhttps://github.com/SpectralPack/Spectrallib/")

assert(SMODS.load_file("lib/utils.lua"))()

local i = {
"lib/colours",
Expand Down Expand Up @@ -37,7 +39,7 @@ local i = {
--"items/jokers/epic_jokers",
--"items/jokers/exotic_jokers",
"items/jokers/rlegendary_jokers",
--"items/jokers/entropic_jokers",
"items/jokers/entropic_jokers",

"items/jokers/dice_jokers",

Expand All @@ -55,6 +57,8 @@ local i = {
"items/altpath/blinds",
"items/misc/runes",

"items/jokers/void_jokers",

"compat/compat_loader"
}
Entropy.load_files(i)
Expand All @@ -70,7 +74,7 @@ if not Cryptid.mod_gameset_whitelist then Cryptid.mod_gameset_whitelist = {} end
Cryptid.mod_gameset_whitelist["entr"] = true
Cryptid.mod_gameset_whitelist["Entropy"] = true

Entropy.UpdateDailySeed()
Entropy.update_daily_seed()

if Entropy.config.family_mode then
Cryptid_config.family_mode = true
Expand Down Expand Up @@ -102,4 +106,53 @@ SMODS.current_mod.calculate = function(self, context)
end
if G.P_CENTERS.e_negative then
G.P_CENTERS.e_negative.no_doe = true
end
end

SMODS.current_mod.menu_cards = function()
return {
func = function()
for i, v in pairs(G.title_top.cards) do
if v.config.center.key == "c_cryptid" then
G.title_top:remove_card(v)
v:remove()
end
if v.base and v.base.value and v.base.value == "Ace" then
--G.title_top:remove_card(v)
--v:remove()
v:set_base()
G.P_CENTERS.j_entr_title_card.discovered = true
v:set_ability(G.P_CENTERS.j_entr_title_card)
if v.children.front then
v.children.front:remove()
v.children.front = nil
end
math.randomseed(os.time())
if math.random() < 0.01 then
v:set_edition("e_entr_freaky")
else
v:set_edition("e_entr_solar")
end
end
end
end,
}
end

SMODS.Joker {
key = "title_card",
atlas = "titlecard",
no_collection = true,
in_pool = function() return false end,
rarity = "entr_zenith",
pos = {x=0, y=0},
soul_pos = {x=1, y=0},
no_doe = true,
no_collection = true,
display_size = { w = 122, h = 122 },
in_pool = function()
return false
end,
cry_order = 999999,
discovered = true,
unlocked = true
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
A Chaotic Balatro mod focused on Inverted Consumables and expanding on Vanilla mechanics in various other ways
Generally Vanilla adjacent but not exactly Vanilla+

[Download CryptLib](https://github.com/SpectralPack/Cryptlib)
[Download SpectralLib](https://github.com/SpectralPack/Spectrallib/)

Entropy currently adds:

Expand Down
Binary file added assets/1x/apeirostemma.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/blinds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/crossmod/blindside_blinds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/crossmod/blindside_tags.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/crossmod/finity_jokers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/curse_icons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/exotic_jokers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/hold_me.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/jokers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/other_consumables.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/partners.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/planetarium.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/reverse_tarots.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/ruby.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/searingjokesheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/titlecard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/1x/void_jokers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/1x/xekanos.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2x/apeirostemma.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/2x/blinds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2x/blindside_tags.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2x/crossmod/blindside_blinds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2x/crossmod/finity_jokers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2x/curse_icons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/2x/exotic_jokers.png
Binary file modified assets/2x/hold_me.png
Binary file modified assets/2x/jokers.png
Binary file added assets/2x/logo.png
Binary file modified assets/2x/other_consumables.png
Binary file modified assets/2x/partners.png
Binary file added assets/2x/planetarium.png
Binary file modified assets/2x/reverse_tarots.png
Binary file modified assets/2x/ruby.png
Binary file added assets/2x/searingjokesheet.png
Binary file added assets/2x/titlecard.png
Binary file added assets/2x/void_jokers.png
Binary file modified assets/2x/xekanos.png
Binary file added assets/fonts/m6x11plusphi.ttf
Binary file not shown.
Binary file added assets/rand.png
212 changes: 212 additions & 0 deletions assets/shaders/eeshader.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
#if defined(VERTEX) || __VERSION__ > 100 || defined(GL_FRAGMENT_PRECISION_HIGH)
#define PRECISION highp
#else
#define PRECISION mediump
#endif

// Card rotation
extern PRECISION vec2 eeshader;

extern PRECISION number dissolve;
extern PRECISION number realtime;
extern PRECISION number time;
extern PRECISION vec4 texture_details;
extern PRECISION vec2 image_details;
extern bool shadow;
extern PRECISION vec4 burn_colour_1;
extern PRECISION vec4 burn_colour_2;
extern Image second_image;



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;
return s;
}

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 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);
}

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;

vec4 hsl = vec4(.0, .0, .5 * sum, c.a);
if (delta == .0)
return hsl;

hsl.y = (hsl.z < .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.y = 0.0;
hsl.z = hsl.z;
return hsl;
}

#define PI 3.14159265358979323846

float rand(vec2 c){
return fract(sin(dot(c.xy ,vec2(12.9898,78.233))) * 43758.5453);
}

float noise(vec2 p, float freq ){
float unit = 1./freq;
vec2 ij = floor(p/unit);
vec2 xy = mod(p,unit)/unit;
//xy = 3.*xy*xy-2.*xy*xy*xy;
xy = .5*(1.-cos(PI*xy));
float a = rand((ij+vec2(0.,0.)));
float b = rand((ij+vec2(1.,0.)));
float c = rand((ij+vec2(0.,1.)));
float d = rand((ij+vec2(1.,1.)));
float x1 = mix(a, b, xy.x);
float x2 = mix(c, d, xy.x);
return mix(x1, x2, xy.y);
}

float pNoise(vec2 p, int res){
float persistance = .5;
float n = 0.;
float normK = 0.;
float f = 4.;
float amp = 1.;
int iCount = 0;
for (int i = 0; i<50; i++){
n+=amp*noise(p, f);
f*=2.;
normK+=amp;
amp*=persistance;
if (iCount == res) break;
iCount++;
}
float nf = n/normK;
return nf*nf*nf*nf;
}

vec4 dissolve_mask(vec4 final_pixel, vec2 texture_coords, vec2 uv);
// texture_coords = coolds of a original_pixel within the atlas texture
vec4 effect( vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords )
{
vec4 tex = Texel( texture, texture_coords);
vec2 real_uv = screen_coords;
vec2 uv = screen_coords;

float dummy = 2;
if(shadow) {dummy = 3;}
if(uv.x > uv.x * 2) {uv = eeshader*dissolve*burn_colour_1.x*burn_colour_2.x*time*dummy;}

float sprite_width = texture_details.z / image_details.x; // Normalized width
float min_x = texture_details.x * sprite_width; // min X
float max_x = (texture_details.x + 1.) * sprite_width; // max X

float tilt_normalized = eeshader.x;

float shiftX = 2.5 * sin(uv.y * (10.16 + 30.0 * uv.y * uv.y) + tilt_normalized * 1.5) // sine shift + affected by card rotation
/ image_details.x; // shift X so normalize by X

float newX = min(max_x, max(min_x, texture_coords.x + shiftX));

uv /= 20.;
float x = screen_coords.x-.5;
float y = screen_coords.y-.5;
float a = 1.-sqrt(x*x + y*y);
a=sqrt(a);
uv += uv.y*0.15;
vec2 q = uv.xy;
vec2 p = -1.0+2.0*q;
//p.x *= image_details.x/image_details.y;
// Rain
vec4 col2 = vec4(0,0,0,1);
vec2 st = p * vec2(.5, .01)+vec2(-(realtime)*6.-q.y*.6*-0.0, -(realtime)*6.);
float f = floor(mod((realtime)/9., 2.0));
f = (pNoise(st, 10)+1.) * (pNoise(st*.733, 10) + 1.) * 1.55 / 4.;
f = clamp(pow(abs(f), 12.0) * 13.0, 0.0, q.y*.14);
col2 += f*8.;
col2.g = 0.0;
col2.b = 0.0;
col2.a = 1;

return tex*0.65 + col2;
}



vec4 dissolve_mask(vec4 final_pixel, vec2 texture_coords, vec2 uv)
{
if (dissolve < 0.001) {
return vec4(shadow ? vec3(0.,0.,0.) : final_pixel.xyz, shadow ? final_pixel.a*0.3: final_pixel.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 t = time * 10.0 + 2003.;
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.+ (
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.;
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 (final_pixel.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) {
final_pixel.rgba = burn_colour_1.rgba;
} else if (burn_colour_2.a > 0.01) {
final_pixel.rgba = burn_colour_2.rgba;
}
}

return vec4(shadow ? vec3(0.,0.,0.) : final_pixel.xyz, res > adjusted_dissolve ? (shadow ? final_pixel.a*0.3: final_pixel.a) : .0);
}



extern PRECISION vec2 mouse_screen_pos;
extern PRECISION float hovering;
extern PRECISION float screen_scale;

#ifdef VERTEX
vec4 position( mat4 transform_projection, vec4 vertex_position )
{
if (hovering <= 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);
}
#endif
Loading