Fx4Fx released-- add visual effects to status effects

A place to post your add ons and ideas for them

Moderator: Moderator

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

Fx4Fx released-- add visual effects to status effects

#1 Post by nate »

Released: fx4fx v1.3

Addon at http://te4.org/games/addons/tome/fx4fx

Allows you to attach visual effects to any timed effect or sustainable talent you'd like, so that you can see at a glance whether you've been Impending Doomed (amongst others)-- choose the status, choose the visual, and you'll know the instant you're affected.

Includes a small library of visual effects. By default, it attaches visuals to Stun and Impending Doom. Right click an icon (in effects tray) in Minimalist UI to edit attached effects, or hit escape and select fx4fx to bring up the full menu. None of the effects are shader based, so they should work for everyone.

Includes a small library of visual effects, which you can Preview before attachment. Previewing doesn't take advantage of the full abilities of the effects (like visual effect access to timed effect parameters, for instance), but it gives you a good general idea.

Jitter: Jerks things around a bit. I like to attach this to stun.

Outline: Draws an outline at the player position. Good to attach to blindness and invisibility. Ugly, though, if anybody wants to make a better version.

Spiral: This is built to take advantage of parameters used by Impending Doom-- but like any of the effects, attach it to any timed effect you'd like. Any DOT will have the same parameters as Impending Doom, and Spiral will take advantage of them. The loudest and most complicated of the visuals included. (Try attaching it to something without a source and moving your mouse around near it. Debug code that looked cool so I kept it.)

Pulse: A heartbeat effect, that changes with your character's life. This is my fave-- really gives a sense of urgency at low life.

Dialog: Hey, it's boring, but it works.

Seasick: I don't like to use this one myself.

Colorhaze: Tints the screen, similar to what the game does when you're at low health, except without shaders. You pick the color.

Attach them to any effects you'd like; attach multiple visuals to one effect; attach one effect to multiple effects. Whatever floats your boat. Attach inversely, and the visuals will come up when you DON'T have the status instead (useful for sustained talents, regens on auto-use). Remembers your settings between sessions. Compatible with Chronometer; let me know of any incompatibilities with other mods and I'll do my best to fix them. But I see no reason why it would be incompatible with any mod I can think of.

I built it to make it easy to create effects. You can write new effects directly into your settings folder (tome.customvisuals.fx4), without worrying about unpacking or losing validation. Check out superload/mod/gfx/fxlist.lua for all of the example visuals. Post them and I'll almost certainly include them. If you're into that sort of thing, it can be very fun (I spent forever just playing with spiral parameters). Or, just give me ideas for other visual effects-- I'm not much of an artist, but I can make templates like this for the real artists to go crazy with. If you're concerned about wasting time on an addon, know that it's very easy to convert any created visuals to any other add-on or default ToME, and I'd be happy to do it for you.

Give me feedback, I'll do my best to implement what you want. Thanks in advance for trying it out! (Why wouldn't you?)
Last edited by nate on Sat Mar 16, 2013 9:40 am, edited 11 times in total.
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

#2 Post by nate »

[EDIT: original top post]

Allows you to attach visual effects to any status effect you'd like, so that you can see at a glance whether you've been Impending Doomed (amongst others)-- choose the status, choose the visual, and you'll know the instant you're affected.

Includes a small library of visual effects. If you don't tell the add-on to use them, it won't, so pick the effects that bother you, and make sure the game lets you know about them. (Just hit escape to bring up the main menu, choose fx4fx, and the rest should be obvious-- filter the effects list by any string you choose, preview visuals before attaching, the UI should be adequate.) None of the effects are shader based, so they should work for everyone.

Attach them to any effects you'd like; attach multiple visuals to one effect; attach one effect to multiple effects. Whatever floats your boat. Remembers your settings between sessions. Compatible with Chronometer, let me know of any incompatibilities with other mods and I'll do my best to fix them.

Todo:
Allow attachment to buffs
Allow inverse attachment (never worry if your regen has expired again)
Attach visuals to other things? (Like resources? What do y'all think?)
More effects-- specifically, built for Worm Rot, and flying text effect
Attachment via click on icon
Learn shaders so I can do some cooler effects (that sun prodigy is begging for additive color)

For the curious: I built it to make it easy to create effects. Unpack it and check out mod/gfx/fxlist.lua-- it shouldn't be hard to write your own. Post them and I'll probably include them. If you're into that sort of thing, it can be very fun (I spent forever just playing with spiral parameters).
For modders: includes a bell-shaped random function, amongst other crap that might be useful.
Last edited by nate on Wed Mar 13, 2013 8:27 pm, edited 1 time in total.
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

darkgod
Master of Eyal
Posts: 10738
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

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

#3 Post by darkgod »

Amazing!!!!!

Well, after I fixed it ;)
"selectvisual" dialog has one too many "end" at the very end of it

Also you place your dialogs in superload, but they dont superload anything, this is bad form, place them in overload instead.
The Dialog fx produces an error too

Still, very very well done, fix it a little and I'll gladly recommend it to anybody ! :)

Suggestions for improvments: List the effects by description instead of id; maybe also allow to search by subtype ?
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

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

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

#4 Post by nate »

Doh, that's what I get for making the release decision while drinking. I'll fix ASAP.

Thanks so much for looking at the code-- I put a lot of work into it, and a lot of that work isn't really apparent until one looks at the code. Hopefully now you can understand the reasoning behind all of my inane questions in the Development subforum!

Search by subtype's a good idea, I'll get that in (it'll give me an excuse to learn drop-down UI).
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

darkgod
Master of Eyal
Posts: 10738
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

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

#5 Post by darkgod »

Hehe ;)
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

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

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

#6 Post by nate »

Version 1.01 out, fixes bugs, now checks filter against effect name, desc, or subtype (so for instance if you filter by "gloom", "dismayed" will show up on the list)
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

lukep
Sher'Tul Godslayer
Posts: 1709
Joined: Mon Mar 14, 2011 10:32 am
Location: Canada

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

#7 Post by lukep »

I haven't looked at this much yet, but would it be easy to attach to attributes as well? for example, a single effect for pinned, bind, encuumbered, frozen/frozen feet, and dominate could search for "never_move"(IIRC)
Some of my tools for helping make talents:
Melee Talent Creator
Annotated Talent Code (incomplete)

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

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

#8 Post by nate »

(Phone, forgive me terseness and typps)

Recommend against using Spiral for now-- some game states lead to intolerable framerates. Will address soon.

Lukep: From coding standpoint, can attach to any game state. From UI standpoint, more complicated.

End goal is attachment via click on icon, which is more newb-friendly than the current menu. No similar point of access for more general states.

Timed effects are also nice in that they have a standard programming interface-- newEffect-- which lets me easily populate a complete list, even for modules and add-ons that have not yet been created. Not sure if there is anything like that for the attributes you describe.

It seems largely about convenience, anyways. By attaching to enough statuses, the same thing can be achieved. I do want things to be convenient, but not at any cost to accessibility.

If you want to get that set up, it shouldn't be hard. Check for attribute in the UI onFrame, create a list of attributes in fxlib load and populate fxlib.statusList with that list. Basically talking about 4 changes in 3 files, assuming none of your attributes share a name with a timed effect. statusList is populated in engine actortemporaryeffects, if you want a template for it, but I don't think you need anything but a name and a desc.
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

#9 Post by nate »

v1.1 released, major UI rewrite, lots of new functionality.

Attach to sustainable buffs. This should be handy for peeps. I use it (in conjunction with inverse attachment, below) to keep track of when my sustains have been dispelled.

Inverse attachments. When you attach inversely, the visual occurs when you're NOT suffering the status, and ends when you acquire the status. I want to extend a warning to folks that this is sort of advanced mode: I fear somebody's going to do a bazillion inverse attachments on all of the sutainables, start a character of a different class, and be so overwhelmed by visuals that they can't even figure out how to clear all their visuals. If this happens, you can always delete your settings by deleting "tome.fxsaved.fx4" from your home path/settings directory.

Click to attach. In minimalist UI, you can now right click on a timed effect or sustained talent icon to bring up an attachment dialog with the target of your click selected. Easy!

Spiral fix. This was working poorly before-- it's good now.

Hidden dialog while previewing. So you can see what the hell is going on.

Default settings. When running fx4fx for the first time (or after deleting tome.savedfx.fx4 from your settings), fx4fx will load with a small number of default attachments, so even peeps who don't touch anything should see what fx4fx does.

Major UI rewrite. Everything's on one page, everything's faster. Should be especially convenient for people who want to make a large number of attachments.

Todo:
--More visual effects, especially using shaders or particles, to act as templates
--Allow attachment via icon for Classic UI-- not likely to happen, doesn't seem very important and I couldn't figure it out on first pass
--Attachment to further game states (resources?) as requested by users

Special second reply to lukep: I think fx4fx can now do what you were asking about much more conveniently. Filter for a subtype (for instance, "pin"), and everything that matches shows up on the left, so you can just go through and attach everything very easily. You can't be totally brainless about it, because "pin" filter includes sPINe of the World and sPIN Fate as well as Grapple and Dominate (and doesn't include Aim-- sustained talents don't have nice subtypes like this). If you're uncertain about what to search for, notice that when you mouse-over a selection, it gives you subtype (or talent type) info at the bottom of the selection pane-- everything you see down there is considered by the filter.
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

#10 Post by nate »

v 1.2 released:

--Fixed bug that screwed up loading of inversely attached visuals
--Fixed bug associated with inverse attachment of jitter
--Updated for ToME v1.0.1 (fx4fx for ToME 1.0.0 will no longer be supported)
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

rexorcorum
Graphical God
Posts: 448
Joined: Wed Jan 05, 2011 8:05 am
Location: Snowscape

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

#11 Post by rexorcorum »

Another gem of an addon :)


I was wondering if it is possible to add in the library screen colouring effects, similar to the freeze in 1.0.1 (or suffocating, or running low on hitpoints) - red for bleeding, orange for burning, etc. What do you think?
~ [ 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

#12 Post by nate »

Hmm-- if I'm not mistaken, those are done with shaders, which I haven't figured out yet, but have been meaning to...

Of course, it could probably be done without shaders, with a colored texture applied over the entire screen with alpha, but that's the kind of thing that used to make graphics cards choke, several years back...

Here, pop this into superload/mod/gfx/fxlist.lua:

Code: Select all

fxlib:newVisual{
	name = "Colortest",
	desc = "Colortest",
	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.5
				dotshat[1]:toScreenPrecise(0, 0, game.w, game.h, 0, 1, 0, 1, R, G, B, A)
			end,
}
Does exactly that (although using the dot.png texture, since that's what I had handy). Graphics card doesn't even blink. Of course, I still need to figure out shaders anyways...

edit: and that's probably as good of an advertisement for how easy it is to create new effects with this add-on as is possible...
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

Crim, The Red Thunder
Sher'Tul Godslayer
Posts: 2000
Joined: Fri May 07, 2004 8:26 pm
Location: Nahgharash

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

#13 Post by Crim, The Red Thunder »

If you go the shader route, please don't make it the ONLY option for our special effects. Leave the standard versions alongside them. Some of us have graphic card that don't even ALLOW shaders. (And I know I'm not the only one.) If every effect requires shaders, we won't be able to use the addon. Having effects that use them would be fine, so long as we can ignore those effects and use others. (Probably label the ones that use shaders somehow, so people know the difference.)
Currently playing under the name Aura of the Dawn 4 down, 227 to go!
Proud author of Orc Pit Restoration Project, Faction Allies, Dwarven Adventurer addons
SadistSquirrel wrote:DarkGod has two arms, one with an opened hand, one with a closed fist. You got the fist.

rexorcorum
Graphical God
Posts: 448
Joined: Wed Jan 05, 2011 8:05 am
Location: Snowscape

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

#14 Post by rexorcorum »

Having the following issue - using the fx4fx, chronometer and ZOmnibus (latest version with the online indicator), tried to unlock the GUI and the screen / game starts an infinite "hiccup" loop:

Code: Select all

[LOG]	#CRIMSON#Interface unlocked, mouse disabled on the map
Lua Error: /mod/addons/fx4fx/superload/mod/class/uiset/Minimalist.lua:150: attempt to index global 'move_handle' (a nil value)
	At [C]:-1 __index
	At /mod/addons/fx4fx/superload/mod/class/uiset/Minimalist.lua:150 displayBuffs
	At /mod/class/uiset/Minimalist.lua:1971 base_display
	At /mod/addons/fx4fx/superload/mod/class/uiset/Minimalist.lua:38 base_display
	At /mod/addons/chrono/superload/mod/class/uiset/Minimalist.lua:55 display
	At /mod/class/Game.lua:1209 
Disabled the fx4fx, started a new game (with chrono and ZOMn), made the changes on the UI, killed the character, enabled fx4fx again, loaded game (tried also a new game) and this time I received this:

Code: Select all

Lua Error: /mod/addons/fx4fx/superload/mod/gfx/fxlist.lua:63: attempt to perform arithmetic on local 'centerX' (a nil value)
	At [C]:-1 __add
	At /mod/addons/fx4fx/superload/mod/gfx/fxlist.lua:63 offFrame
	At /mod/addons/fx4fx/superload/mod/class/uiset/Minimalist.lua:63 onFrame
	At /mod/addons/fx4fx/superload/mod/class/uiset/Minimalist.lua:39 base_display
	At /mod/addons/chrono/superload/mod/class/uiset/Minimalist.lua:55 display
	At /mod/class/Game.lua:1209 
Probably is addon's superloading messing with each other, but decided to let you know anyway :)
~ [ 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

#15 Post by nate »

Thanks, I'll figure out what's going on.

If it's not too late (haven't changed fx4fx settings), could you also post the contents of tome.savedfx.fx4 in your settings folder? EDIT: Which you may need to delete to continue playing with fx4fx
Proud father of Fx4fx and Chronometer add-ons; proud mother of Fated add-on

Post Reply