Jump to content

Recommended Posts

Posted (edited)

You know I have never actually looked into this.  But if it does Pallegina with Aru-Brekr would be a great breath dodger lol

Edited by Torm51

Have gun will travel.

Posted

No, it's considered an AoE attack. Those don't get reflected. Everything that is targeted on a single character and has range should work though.

  • Like 1

Deadfire Community Patch: Nexus Mods

Posted (edited)

Boeroer is right.

 


Technically through there is AttackRanged class that extends AttackBase, and AttackAOE that extends AttackRanged. And dragon breath is an AttackAOE.

 

Afaik "Ranged Deflection Bonus" (Aru-Breaker) works vs AttackRanged attacks that are considered ranged.

And "Reflecting" (The Golden Scales, Durganized Shields) works vs AttackRanged attacks that are considered ranged and are single-targeted.

 

AttackRanged is considered ranged if !ApplyToSelfOnly and there is PathsToPos (i.e. you click somewhere not on the caster himself; true by default)

AttackAOE is considered ranged if !ApplyToSelfOnly, there is PathsToPos and !IsCone.

 

P.S. Gafonercos, Adra, Sky and Alpine dragons use cone breath aoe. While Turisulfus has circular aoe.

Edited by MaxQuest
  • Like 2
Posted

Argh, I mistook Aru-Brekr's defensive bonus as reflection (like Golden Scales has). Sorry.

 

But still: Dragons' breath attacks (which are cone-shaped except one) will not work with Aru-Brekr (if I read MaxQuest's answer correctly). Only Turisulfus' circular breath attack will lead to a defensive bonus.

 

Quite complicated check by the way.

Deadfire Community Patch: Nexus Mods

Posted (edited)

Yeap, and you have read correctly. Only Turisulfus' breath would match Aru-Brekr's condition. But then again: a bonus to deflection doesn't make any difference vs a spell that targets reflex.

Edited by MaxQuest
Posted (edited)

Ok ya I am retarded.  I know this. dumb question.  Thanks guys.

Edited by Torm51

Have gun will travel.

Posted (edited)

Don't get why this should be a dumb question. Totally viable question for me. And from MaxQuest's answer I learned something new as well. Win-win! :)

Edited by Boeroer
  • Like 1

Deadfire Community Patch: Nexus Mods

Posted (edited)

Well I guess with the unspeakable amount of hours I have put into this game you would think I know that! But it does help with search like Blades says lol.  Anything to help the community of course.  All of the answers are much appreciated!

Edited by Torm51

Have gun will travel.

Posted

If dragon attacks work that way, how does the diving helmet prevent them.  Are they a unique subclass of AoE attacks, or does the diving helmet look for each one.

Diving Helmet provides two persistent buffs:

ResistKeyword 35 vs DefenseType (5) {None}, Keyword ("DragonBreath")

ResistKeyword 20 vs DefenseType (5) {None}, Keyword ("poison")

 

This means that it adds 35 to a defensive roll vs any spell or ability marked with "DragonBreath" keyword, and it doesn't matter which defense is targeted.

 

P.S. Alpine, Sky and Adra dragon breaths are marked with "DragonBreath". While Turi and Gafo breaths are marked with "DragonBreath Poison". But I don't know if this helmet provides 35 or 55 defense vs them, or even if "DragonBreath Poison" is recognized at all, because there are no keywords on their respective tooltips.

  • Like 1
Posted (edited)

Do you know if keywords are case sensitive in PoE?

 

In C# (which is used by Unity) the usual string comparison works with "System.StringComparison.Ordinal" which is case sensitive, but you can use "OrdinalIgnoreCase" as well.

 

Although I like a keyword approach, using case sensitivity with keywords might be a bad idea. In this case, it might not work because the keywords "poison" and "Poison" will not be considered equal if you choose to use "Ordinal" instead of "OrdinalIgnoreCase". And once designers (who don't know this case stuff) and programmers (who don't know the right spelling of keywords) start to place keywords indepentendly things get messy.

 

For example I see a lot of names where designers and programmers used different words although they mean the same (for example in the game object folder: Foregemasters Gloves/Forgemaster's Gloves, Rumbalt/Rumbald and so on). So if you don't have some sort of keyword completition or a spell checking this approach can be very prone to bugs and errors.

 

Last time I used a lot of keywords (or  tags, labels or how you want to call it) in a project I had to write a special phonetic search to filter all the duplicates which got misspelled. 

 

I didn't test it in PoE, but I suspect that the Diving Helmet will provide no bonus to the poison part of the swamp dragons' breath.

Edited by Boeroer

Deadfire Community Patch: Nexus Mods

Posted (edited)

Do you know if keywords are case sensitive in PoE?

I don't tbh.

 


Edit: made a search by:

- ".StringComparison.Ordinal" - used in at least 17 files

- ".StringComparison.OrdinalIgnoreCase" - used in at least 15 files

 

ewA2psh.png

 

 

Majority of checks use OrdinalIgnoreCase.

But RighteousSoul and two checks from StatusEffect use case sensitive comparison (and yes... one of them is for poison):

 

 

public bool IsPoisonEffect
{
  get
  {
    return (this.m_abilityOrigin != null && this.m_abilityOrigin.Attack != null && this.m_abilityOrigin.Attack.HasKeyword("poison")) || (this.m_afflictionOrigin != null && this.m_afflictionKeyword != null && this.m_afflictionKeyword.Equals("poison", StringComparison.Ordinal));
  }
}

public bool IsDiseaseEffect
{
  get
  {
    return (this.m_abilityOrigin != null && this.m_abilityOrigin.Attack != null && this.m_abilityOrigin.Attack.HasKeyword("disease")) || (this.m_afflictionOrigin != null && this.m_afflictionKeyword != null && this.m_afflictionKeyword.Equals("disease", StringComparison.Ordinal));
  }
}

 

Edited by MaxQuest
Posted

Typical programmer's error that can happen during development. Especially code completion (as awesome as it is) can lead to such an oversight. But it should be easy to fix with a search that you did. A simple "search & replace" in the IDE should do the trick.

Deadfire Community Patch: Nexus Mods

Posted (edited)

Yeap. Been there)

 

 

 

Have to note that if the project is big (and PoE is), it would make sense to put these keywords in a separate static class and use global constants instead of hardcoded strings.

If I remember C# syntax correctly, something like:

public static class KEYWORDS
{
  public const string POISON = "poison";
  public const string DRAGON_BREATH = "dragon_breath";
}
Easier to mass rename, and safer.

 

 

Edited by MaxQuest
  • Like 1
Posted

That would have been way better.

 

But maybe also non-programmers had to write down stuff - maybe into a database or a readable file format or whatever - or they used some other tool to create game objects without having to know C#. I have no idea, but there might be reasons why they used strings.

 

OBS - they might have great ideas and so on - but as I said a while ago they don't seem to write the most sophisticated code. ;) But on the other hand: who does when a deadline is approaching. ;)

  • Like 1

Deadfire Community Patch: Nexus Mods

Posted (edited)

Just tested, it doesn't seem like the helmet provides any defenses at all against the bog dragons.  Will report.  That will also explain why Eder could shrug off attacks from the other scaled PotD Dragons and then dropped like a fly against Llengrath.

Edited by anameforobsidian

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...