PDA

View Full Version : Static Cover Not Ignored



Mike Serfass
April 12th, 2024, 14:56
If I put the effect

[#LightCover]
on an enemy, then put

[>Ignore #Cover -2]
on the attacking character's weapon, the 2 points of cover are ignored as expected.

If I put the effect

[Cover +2]
on an enemy, then put

[>Ignore #Cover -2]
on the attacking character's weapon, the 2 points of cover are NOT ignored.

Is that working as designed? I expected this to ignore two points of cover penalties.

This matters in the case of Dodge. It uses

[Cover +2]
so adding

[>Ignore #Cover]
would not bypass Dodge.

Is that correct in regards to game mechanics?

As a note, I can put

[>Ignore #Dodge]
on an attacker against an enemy with the Dodge Edge and it ignores Dodge. That's not what I was going for, but it works as I expect.

Lonewolf
April 15th, 2024, 16:46
Short answer is this working.

Longer answer: If this post seems a bit erratic, I am sorry. Most of it was cut together from all the discussions I had with the subject. I hope it makes sense.
Please indulge me as I try to parse out your code too literately. As the computer would. First here is syntax I understand it.

Cover bonus effect is <name> [Cover +x] or <name> [@Attack x]. Example Cover, Light[@Attack -2] or Disco [Cover +3].
Therefore, a weapon entry with Laser [>Ignore #Disco -1] ignores one point of Disco.


So now going through the posted code. Look how I try to parse this out.

[#LightCover] = call effect named Light<string>.

[>Ignore #Cover -2] on weapon. = Ignore thing named with the <string>

<Something> [Cover +2] = Something effect adds cover modifier.

On the attacking character's weapon [>Ignore #Cover -2] = neverminded Cover effect and no mention of Something Effect so that is applied.

<Something> [Cover +2] = Something effect adds cover modifier has a problem. What was something?

Dodge [Cover +2] = Effect Dodge [its actual using the edge name here] add cover modifer

[>Ignore #Dodge] = Ignore the Dodge effect

I hope I made sense :o

Ok now let’s get to the start of the an argument because someone will want to add ignore to the CT only and will not modify the weapon. The symbol > means apply to this out going attack roll. It can only be used on Weapon or attack rolls tab. Dagger of Badass [>Fighting +1] if you roll to attack with this weapon. [>Ignore will also work here.

However, people try to get the ignore to work by adding it to CT only. People want in on the CT without > as well.

[Ignore x] on combat tracker only works on two things. Local variables within the confines of the same character sheet. It also switches off global modifiers which automatically apply to everyone. I still can't find any evidence that it will change another local effect held on another character sheet. At least for NPCs. The only way it could do so is to attach it to die roll instead of putting it on as local effect on the CT. This is why adding a specific weapon works.

The last time I looked at it. I do not think it is a bug and others disagreed. I have yet to come up with anything to show where all effects on the CT are linked together. Ignore just on CT is just ignored. Ultimately is an Ikael question how can give a better answer that me.

Also note the answer pre-dated FGU 4.5+. New CT now so by all means testing this again is good idea.

Mike Serfass
April 16th, 2024, 15:18
Thanks for putting that together.
The gist of it is that when using Cover you must use a custom keyword.
For future reference, and to (hopefully) save Lonewolf from repeating it, here are the details as of FGU 4.5.5.

Putting simply,

[Cover +2]
on a defender and

[>Ignore #Cover -2]
on the attacker's weapon doesn't work.

Cover is a keyword, but isn't always honored. Unlike Shield, Illumination, MultiAction, Range ...
That's a one-off to note.

So to make the above work, you must put this on the defender

Cover [Cover +2]
then

[>Ignore #Cover -2]
on the attacker's weapon will work.

And if you want the attacker's Cover penalty offset to work against shields, you must put explicitly declare a different effect

[>Ignore #Shield -2]
and for Dodge you must explicitly declare

[>Ignore #Dodge -2]
because a simple

[>Ignore #Cover -2]
won't cover those.
Note: on shields the effect is [Parry +3, Cover +4], no keyword


So, unlike a simple effect like

[Ignore #Illumination]
to ignore all types of Illumination penalties (DimIllumination, DarkIllumination, PitchDarknessIllumination), for Cover you need

[>Ignore #Cover|#Shield|#Dodge -2]
plus add any other custom Cover bonuses used in your game.

If you make an item with cover, say a Ring of CYA, you must put this on the ring

CYA [Cover +2]
for any Ignore Cover effect to work against it.

Now the effect on our attacker's dagger is longer than the dagger itself.

[>Ignore #Cover|#Shield|#Dodge|#CYA -2]

I'm fairly certain that's not how it used to work. I don't know when that changed; I only just noticed it in a recent game on an item that used to work. The wiki and posts indicate it used to work that simply.

Lonewolf
April 17th, 2024, 22:33
Sorry mike this going to turn into a muti-post essay. For the sake of clarity in my poor old brain. Lets break it down a bit more and cover everything.


Note: on shields the effect is [Parry +3, Cover +4], no keyword


This is not true. There is a custom keyword here and, in all examples, above. This can be proved by manually adding that exact stated modifier to CT

[Parry +3, Cover +4]
Will not work because there is no keyword name given. You got this code from looking at the modifier on an item called shield and reading it from description text.
What you are really looking at is item named SHIELD and effect is therefore really saying on the item is this

Shield [Parry +3, Cover +4]
This does work because the keyword has automatically be taken from the item name.
Here is a visual diagram of this working with NPCs.

60588

The red line links modifier (Red text on its own on the CT will not work)
The Blue line shows inheritance of the item name to custom keyword.
The green is an ignore shield effect looking for keyword shield that was just inherited. The example of the manual input with no key word has no match. The version that inherited a name is matched.

The same principle would apply to an Edge like Dodge. Any modifier under the name = Name + Modifier = Effect.

I hope that helps.

Lonewolf
April 17th, 2024, 22:46
Ok the code aside it is important to look at game rules and point out an important point. Cover bonus does not stack in the rules A GM is better off arranging it for all cover bonus to be named and on the CT it games where it matters. Superpowers stand out as a good example of this. Then only switching on those the one single bonus that applies. So the example of;


[>Ignore #Cover|#Shield|#Dodge -2]

Attemps to cover a situation that should never happen. A character can't get all of those bonuses stacked together. Only the highest number would apply. I did confirm this with the wider community during research just in case. However I solve this better in later post.

Ok here a bit of a dream situation:
In an idea world Cover should be a derived stat. To make things easier to imagine (at least for me) let’s use a unique name in this post that can't be confused by another game term. A derived stat called "Hidden":

on ITEM Shield

[Hidden +1]
Will add to the derived stat.

If we want to add another +1 it checks if 1 > 1. False do nothing to total.

If the bonus is +2 it checks if 2 > 1. True. Make the total 2.

Copying the derived stat to the CT like size and now we have an actual hard coded field to work with. Just a thought I had along the way the first time ignore “Hidden” came up in an effects conversation.

Lonewolf
April 17th, 2024, 23:05
I think where the confusion lies for most people in is remote calling another effect name:

[Ignore #Illumination]
Means call effect Name $ = illumination.

Illumination, Dark [Attack|Notice -4]
See there is a keyword being used. This was done like this because to avoid the need to type in all matched effect names There 3 possible choices from the code in this example.
The examples given above assume that cover is a special case. That does not appear true from what I can see in testing.

[>Ignore #Cover]
Does work on against an effect name as such. The fact that effect below is "@" might make the ">" mandatory.

Cover, Heavy [@Attack -6]
However don’t expect in to work where the name string does not match.

Dodge [Cover +1]
has the name Dodge and not cover and does not match. Simply looking at the Dodge edge and
[Cover +1] is seen but it will parse as name $ Dodge + [Cover +1] =
Dodge [Cover +1]

Then why not make everything named Cover. That hides to source of bonus in chat. "Dodge +1"
The second reason is you can't stack bonus anyway in the rules. Source names in chat also looks better.

Lets finish off by solving the CYA ring example above with a shorter bit of code:



If you make an item with cover, say a Ring of CYA, you must put this on the ring

CYA [Cover +2]
for any Ignore Cover effect to work against it.
Now the effect on our attacker's dagger is longer than the dagger itself.

[>Ignore #Cover|#Shield|#Dodge|#CYA -2]

The problem is self created here becuase of the CYA name selected for effect. Now your are forced to use CYA as a keyword.

CYA [#Cover Light]
Calls another effect and get its keyword instead the sticks that under CYA
So a weapon with

[>Ignore #Cover]
should beat CYA without the need for a longer list of names at all.

At which point someone say what about CYA whilst standing in Light Cover. Worn by someone who has Dodge !
The answer is cover does not stack which another problem for another day.

Sorry Mike if you got this far. Best I could to break it down very late one night :)

Mike Serfass
April 18th, 2024, 17:07
Thanks Lonewolf!
The explanation covers rules, how effects work, and a peek behind the scenes.
This kind of information should be in a game mechanics wiki; it's the kind of info needed by GMs who use effects extensively.

Ikael
April 19th, 2024, 16:46
Good deduction guys!

Savage Worlds Effects wiki page definitely need improvements regarding ignore expression but they defined there: https://fantasygroundsunity.atlassian.net/wiki/spaces/FGCP/pages/996643800/Savage+Worlds+Effects (https://fantasygroundsunity.atlassian.net/wiki/spaces/FGCP/pages/996643800/Savage+Worlds+Effects#Ignore-effect-expressions)

Short answer to topic is: you can define Ignore only against # effect references.
The simple [Cover +2] is old notation from early stage of the effect framework before #@>$ etc notations were a thing

The wiki page could be updated to state

Ignore effect expressions

Ignore effects are used to reduced or completely ignore other effect modifiers. Only effect references can be used in ignore effect expressions

Mike Serfass
April 20th, 2024, 03:46
Thanks for the clarification and history. I updated my document and extension.

WishX
April 22nd, 2024, 20:42
Savage Worlds Effects wiki page definitely need improvements regarding ignore expression but they defined there: https://fantasygroundsunity.atlassian.net/wiki/spaces/FGCP/pages/996643800/Savage+Worlds+Effects (https://fantasygroundsunity.atlassian.net/wiki/spaces/FGCP/pages/996643800/Savage+Worlds+Effects#Ignore-effect-expressions)

Hey Ikeal!

If you'd like to send over a document with additions, edits, omissions, etc. for the SWADE docs, I'd be happy to update it in the wiki. Just let me know what needs changed and where it should reside in the document, and I'll get it updated right away.

Thanks,
WishX (Derek)