1 Attachment(s)
(New IF operator) New and much better version of Save versus tags
This is for FG classic! See the link in my signature for FG Unity :)
Now only part of the full overlay packages :)
StrainInjury: A combined version of that with StrainInjury can be found in https://www.fantasygrounds.com/forum...695#post445695
Normal version: https://www.fantasygrounds.com/forum...ea-from-Ken-L).
Hi :)
This extension will be a replacement for my save versus tags extension, https://www.fantasygrounds.com/forum...arbitrary-tags :) (an explanation of the extension will be also here in this thread)
Why the rewrite?
There were performance problems; the CUSTOM effect is a performance-eating code in FG and too many of them could cause performance problems because this created some sort of "loop" (which is not really a loop but the code had to take a long path). For this I have developed a new operator similar to IF and IFT, its name is IFTAG. It works very similar to the previous IF: CUSTOM(..) of the previous extension, but its performance is now a lot better due to a different code in its background (different to CUSTOM and IF). This needed a rewrite of the effect code in FG, so please tell me when you see errors :)
What does it do?
Before I explain the IFTAG in detail let me shortly explain the main properties: (EDIT: New features and updates are listed below. @FutureKelrugem: You certainly need to rewrite this mess)
- There is the effect SIMMUNE for immunity against spells/actions. You trigger that effect only by pressing on the cast button. When the target has SIMMUNE then you see [IMMUNE] in the chat message of the cast message, the star icon of the cast message changes in a cancelled star and the target will be removed according to your choice in the options for Remove on Miss.
- There is the effect SR for an effect for spell resistance. It is of the form 'SR: (N) [bonus type]'. This adds the number N as spell resistance and it does not stack with the existing value of spell resistance in the sheets since spell resistance works like that as far as I know. But, due to the mechanic of effects in FG, several different SR effects might stack when there is not a suitable bonus type, i.e. 'SR: 13; SR: 2' would result into 'SR: 15'. Hence, rather use a generic bonus type like 'SR: 13 enhancement; SR: 2 enhancement' to avoid that stacking although there is not any bonus type for magical effects for SR in the core rules. There is also not any information about the effect bonus in the chat message to avoid that players can estimate the SR of their target :) (but the effect seemingly works, trust me or play a bit with it :P). SR can also have a target.
- The IFTAG operator can be used for triggering SIMMUNE, SR and SAVE and all other effects affecting spells/actions only for specific type of actions and effects. So, with that extension it is possible to have saves and immunity against specific type of actions :) See below for details.
- For this, there is a new automatic parsing of spells such that you do not have to do too much.
- More features mentioned in the Updates section at the bottom :)
How does it work? (if not already explained)
See the attached picture (that is now old stuff), that is the new save configuration box of your spells. You see that there is a new box for the school and type of your action. At the moment the standard school types (and "None") are supported and for types: None, spell and spelllike.
When you want to modify your actions a bit more with additional traits like paralysis, stun etc. then there is a new line at the bottom. Type in any tag you need for describing that spell action. Everything will work for the IFTAG (explanation for that still incoming :P), also apple, pie whatever :D But: separate them by a comma or semicolon or space, FG will know that words separated like that are different tags (and the code uses spaces and semicolons for the parser). Therefore do not use "magic missile" as one tag, rather write e.g. "magicmissile" and do not use special signs like -. Therefore spelllike, not spell-like. mindaffecting, not mind-affecting. languagedependent, not language-dependent. The parser of FG does not like that :D (and/or I didn't find out how to treat these signs well enough)
You will realize that the spell parser already adds a lot of tags when you add a new spell (from a module coming from FG directly) or when you reparse them: The type is then always spell, the school depends on the string in the school entry and all remaining descriptors are automatically parsed in the bottom line :)
To use the tags: Simply use IFTAG, e.g. save bonusses or immunity against specific types are written like in the following examples
- IFTAG: spell; SAVE: 2 racial (+2 racial bonus against spells)
- IFTAG: spelllike; SAVE: 2 racial (+2 racial bonus against spell-like effects, remember to not use the -)
- IFTAG: poison; SAVE: 10 insight (+10 insight bonus on saves against poisons, poisons are not automatically parsed in the tag lines. You have to add them on their own such that FG will know which action corresponds to a poison)
- IFTAG: spell; IFTAG: evocation; SIMMUNE (immunity versus spells of the school evocation)
- IFTAG: spell, illusion; SAVE: 3 enhancement, will (+3 will enhancement bonus against spells in general and against illusions in general, so also spell-like illusions would be affected by that or anything else with the tag illusion, not only illusion spells. The comma between tags is like a logical (inclusive) OR :) )
You see, after IFTAG you type in the tags which are needed to get the bonus or spell immunity (write the type (spell, spelllike) and the schools small); FG then compares these tags with the tags of the action/spell (saved in the save configuration box as explained above) to see if a save bonus or immunity has to be applied :) Always put these effects in new lines of effects in the combat tracker; the IFTAG works like IF and IFT, so, when the tags are not met then everything after the IFTAG will be ignored, therefore do not combine them with other effects like AC and so on, put them in different lines (or at the very end of another line without any IF and IFT,this is how FG works in general). When you want that to tags/conditions/traits (whatever) are met for a bonus, then put several IFTAGs next to each other as in the fourth effect. The fourth effect only grants SIMMUNE when the action of the attack is a spell of the school evocation, spell-like effects of evocation would not be affected by this for example.
Instead, when you want that just at least one tag is needed for some bonus or immunity then use the structure of the last example. The last effect grants an enhancement bonus of +3 to will saves when the action is of type spell or illusion (so spell-like illusions would be affected by that effect). This allows you to put several effects of the same type (SAVE, SR or SIMMUNE) for different tags into one line. That is an exception of the rule above about putting these effects into new lines in the CT. I've implemented this to keep the CT effect entry small enough :) The spell and poison resistance of dwarves can then be written like: IFTAG: spell, spelllike, poison; SAVE: 2 racial
Combinations with other extensions:
StrainInjury (by darrenan) and all other things: https://www.fantasygrounds.com/forum...njury-packages
Overlays, AoO tracker (with incorporated automated flat-footed by mr900rr) and advanced effects (with incorporated keen effect by darrenan): https://www.fantasygrounds.com/forum...ea-from-Ken-L)
It is compatible with advanced effects and AoO (and with the extension where advanced effects and AoO are combined), so the combinations are only needed when you also want StrainInjury from darrenan and/or the overlays :)
Have fun :)
UPDATE:
- Both, evasion and improved evasion, can now also be combined with IFTAG.
- DC effect for improving the difficulty class, works also with IFTAG. DC: (N), where N ist an arbitrary number and bonus types should be supported here. Basically spell focus feats can now be done with that and IFTAG, too, when you do not want to go through all of your spells :) E.g. IFTAG: spell; IFTAG: enchantment; DC: 1
- [STR], [DEX] etc. are now respecting STR-, DEX- etc. effects (conditions and so on, too), they do not only take the modifier from the sheet anymore :) This does not hold for [BAB], [LVL] and [CL] since there are no effects for them, thence they work as usual.
- There is now dice support for the effect parsing! Simply type [NdM+K] where M is a positive number while N and K can be both, positive and negative (or zero for K). I.e. strength damage can be now parsed without rolling manually (although there is no physical dice, so not "physical/real randomness"), e.g. STR: [-2d6+1]. This die in the bracket will be rolled (in sense of a random table) and its result will be parsed into the CT, for example STR: -2 then. dF is also supported
Update 2+ in the next post :)