Fx4Fx released-- add visual effects to status effects

A place to post your add ons and ideas for them

Moderator: Moderator

Message
Author
rexorcorum
Graphical God
Posts: 482
Joined: Wed Jan 05, 2011 8:05 am
Location: There and Back again

Re: Fx4Fx released-- add visual effects to status effects

#16 Post by rexorcorum »

I was able to load the save game and as long I don't unlock the UI everything appears to be working fine :)

Here is the tome.savedfx:

Code: Select all

loadedModifiers = {}
loadedModifiers.QUANTUM_FEED = {}
loadedModifiers.QUANTUM_FEED[1] = {}
loadedModifiers.QUANTUM_FEED[1].name = "Spiral"
loadedModifiers.QUANTUM_FEED[1].invert = true
loadedModifiers.STUNNED = {}
loadedModifiers.STUNNED[1] = {}
loadedModifiers.STUNNED[1].name = "Pulse"
loadedModifiers.IMPENDING_DOOM = {}
loadedModifiers.IMPENDING_DOOM[1] = {}
loadedModifiers.IMPENDING_DOOM[1].name = "Spiral"
loadedModifiers.WEAPON_FOLDING = {}
loadedModifiers.WEAPON_FOLDING[1] = {}
loadedModifiers.WEAPON_FOLDING[1].name = "Spiral"
loadedModifiers.WEAPON_FOLDING[1].invert = true
loadedModifiers.STRENGTH_OF_PURPOSE = {}
loadedModifiers.STRENGTH_OF_PURPOSE[1] = {}
loadedModifiers.STRENGTH_OF_PURPOSE[1].name = "Spiral"
loadedModifiers.STRENGTH_OF_PURPOSE[1].invert = true
~ [ RexOrcorum, a.k.a "rexo": Official Visual Magus, Addon Beautifier, Achiever, Knight of the 561 Trees, Dark Interfacer ] ~
darkgod wrote:~ [ DarkGod whips rexorcorum with Suslik (& many others as well) ] ~

nate
Wyrmic
Posts: 261
Joined: Fri Jan 18, 2013 8:35 am

Re: Fx4Fx released-- add visual effects to status effects

#17 Post by nate »

Brave man to use so many inverted spirals, lol-- have you had to deal with the birth screen obscured by inverse visuals yet? (I've got to find a way to make that work a little bit better...)

Not a compatibility issue, just fx4fx bug. I'll have fixes tomorrow (there's an idea I have, and I might be able to squeeze it into a bug fix release-- time to make a configuration dialog and build a home-made color picker lol, at least I think I left myself enough room to do it right-ish).

However, in the meantime, here are the fixes to the two issues, in case you need it now:

in superload/class/uiset/minimalist.lua, line 36 or so, insert

Code: Select all

local move_handle = {core.display.loadImage("/data/gfx/ui/move_handle.png"):glTexture()}
In superload/mod/gfx/fxlist.lua, insert between line 62 and line 63

Code: Select all

if not scale or not centerX or not centerY then return end
Quick testing shows this does this trick, but of course I'll test a little more before uploading a new version. Can't quite reproduce the second bug, but the fix ought to address it anyways.
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

rexorcorum
Graphical God
Posts: 482
Joined: Wed Jan 05, 2011 8:05 am
Location: There and Back again

Re: Fx4Fx released-- add visual effects to status effects

#18 Post by rexorcorum »

nate wrote:Brave man to use so many inverted spirals, lol-- have you had to deal with the birth screen obscured by inverse visuals yet?
Well, I'm quite sure that I don't know what I am doing ;) I've read the warnings, but as I don't intend to make another character (this one is destined to face the corrupted oozemancer), I am taking the risk and maybe I will wipe the addon clean after finishing a.k.a. dying stupidly with her. Still, if she survives to the lake, we'll see how many spirals will pop up when all the sustains are disrupted.

Thanks for the quick-fixes, at the moment it appears to be working fine, so probably I won't mess with code and quietly wait for the update.

EDIT: After reading another topic of yours, I've decided to mess myself a bit with the code after all :). Here are the results for some basic colours intended for some common detrimental statuses as per name:

Code: Select all

fxlib:newVisual{
   name = "Bleeding Red",
   desc = "It bleeds",
   onFrame = function()
            if not dotshat then dotshat= {core.display.loadImage("/data/gfx/dot.png"):glTexture()} end
            local R, G, B, A = 1, 0, 0, 0.4
            dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
         end,
}

fxlib:newVisual{
   name = "Hexed Purple",
   desc = "It hexes",
   onFrame = function()
            if not dotshat then dotshat= {core.display.loadImage("/data/gfx/dot.png"):glTexture()} end
            local R, G, B, A = 0.7, 0, 1, 0.4
            dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
         end,
}

fxlib:newVisual{
   name = "Poisoned Green",
   desc = "It poisons",
   onFrame = function()
            if not dotshat then dotshat= {core.display.loadImage("/data/gfx/dot.png"):glTexture()} end
            local R, G, B, A = 0, 1, 0.1, 0.5
            dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
         end,
}

fxlib:newVisual{
   name = "Sickly Yellow",
   desc = "It sickens",
   onFrame = function()
            if not dotshat then dotshat= {core.display.loadImage("/data/gfx/dot.png"):glTexture()} end
            local R, G, B, A = 1, 1, 0, 0.5
            dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
         end,
}

fxlib:newVisual{
   name = "Burning Orange",
   desc = "It burns",
   onFrame = function()
            if not dotshat then dotshat= {core.display.loadImage("/data/gfx/dot.png"):glTexture()} end
            local R, G, B, A = 1, 0.45, 0, 0.5
            dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
         end,
}

fxlib:newVisual{
   name = "Cursed Indigo",
   desc = "It curses",
   onFrame = function()
            if not dotshat then dotshat= {core.display.loadImage("/data/gfx/dot.png"):glTexture()} end
            local R, G, B, A = 0, 0, 0.1, 0.75
            dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
         end,
}
So, maybe there should be a non-coloured zone/circle around the player - it looks like adding this requires just one more line in the code, but being an (almost) complete ignoramus I can't figure it out myself (yet?) :)
~ [ RexOrcorum, a.k.a "rexo": Official Visual Magus, Addon Beautifier, Achiever, Knight of the 561 Trees, Dark Interfacer ] ~
darkgod wrote:~ [ DarkGod whips rexorcorum with Suslik (& many others as well) ] ~

nate
Wyrmic
Posts: 261
Joined: Fri Jan 18, 2013 8:35 am

Re: Fx4Fx released-- add visual effects to status effects

#19 Post by nate »

Actually, I was just getting ready to release-- made a configurable version of the same, with a new texture so that the the player sits in an uncolored ring, just as you suggest-- when I discovered that pulse, jitter, and seasick aren't working, and apparently haven't been working since ToME 1.0.1 came out. (which makes sense: I was taking advantage of the fact that the display wasn't resetting to default coordinate system every frame to get my changes to penetrate through all of the drawing) It's just weird, because I could have sworn I at least tested pulse.

So I might just get around to seeing what I can do about getting those working again.

edit: woot, fixable, although it's going to require a major rework :(
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

nate
Wyrmic
Posts: 261
Joined: Fri Jan 18, 2013 8:35 am

Re: Fx4Fx released-- add visual effects to status effects

#20 Post by nate »

--v1.3:
--Visuals will no longer display at wierd times (before load is complete, during birth dialog), thus fixing some bugs associated with some visuals
--Fixed bug causing crash on unlocking screen elements in Minimalist UI
--Will now load custom visuals from settings/tome.customvisuals.fx4
--Added newVisual onSave argument to allow saving of parameters by visual effects
--Added customizable colorhaze effect demonstrating the use of onInit, onSave functions
--Which involved creating a color picker dialog
--Which involved creating a new kind of dialog element
--Added drawing in layers, which was necessary to restore coordinate translation effects (jitter, pulse, seasick) to ToME 1.0.1;
--unfortunately, I have not found the interesting spaces between layers, just boring ones like start and end

So: build your own, without worrying about validation or unpacking; colorhaze should be handy, especially for people without shaders (hi crim); starting a setup for drawing in layers was going to be necessary at some time or another, might as well be now, although I'm sad I didn't build it in from start (would have organized my lists a little bit better). I'll be curious to see if I can use this to display via display callback now (before, was running after display callbacks occurred). There's currently only two layers defined, one before anything gets drawn, and one after the map + entities + UI elements +dialogs get drawn (but should be before tooltips get drawn).

Known issues: colorhaze doesn't preview well. I ought to write a preview function for it. Still, if you get the chance, apply it to a status you're currently suffering, it's fun to watch the color change as you click around on the color wheel.

Anticipating bug reports, changes are sort of large, and it's really far beyond the point where I can test all the permutations.
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

ibanix
Wyrmic
Posts: 244
Joined: Thu May 23, 2013 12:25 am

Re: Fx4Fx released-- add visual effects to status effects

#21 Post by ibanix »

This still good for v1.0.4?
Please help with the ToME wiki!

rexorcorum
Graphical God
Posts: 482
Joined: Wed Jan 05, 2011 8:05 am
Location: There and Back again

Re: Fx4Fx released-- add visual effects to status effects

#22 Post by rexorcorum »

I'm using it, but it has some glitches (pulse throws everything offscreen for one) and I have my saved settings from 1.00, so don't know if it usable as a fresh install.

As nate has retired from ToME for the time being, maybe someone more knowledgeable in codding stuff can patch a fix? I personally find the addon most helpful for tracking negative statuses and interrupted sustains, which I usually miss for a few turns with the normal fatal outcome :)
~ [ RexOrcorum, a.k.a "rexo": Official Visual Magus, Addon Beautifier, Achiever, Knight of the 561 Trees, Dark Interfacer ] ~
darkgod wrote:~ [ DarkGod whips rexorcorum with Suslik (& many others as well) ] ~

Post Reply