Jump to content
  • 0
Boeroer

[BUG? v. 4.1.2] Forbidden Fist ability not treated as weapon attack

Question

EDIT 9th April: Forbidden Fist currently isn't treated as weapon attack. This leads to a bundle of "problems" like generating no focus, not working with Sneak Attack, Swift Flurry, Lighting Strikes, Turning Wheel and so on on and so forth.

 

The source of this is that its value for TreatAsWeapon in attacks.gamedatabundle is set to false

 

Intended or oversight?

 

-----------------------------------------------------------------

 

Hi,

 

easy to reproduce: make a Forbidden Fist/Cipher and punch sombody with the Forbidden Fist ability: no focus gain.

 

I hope this is not intended.

 

I guess it's because FF uses its own base damage and is not correctly tagged as (weapon) attack but more as a spell of some sorts. 

 

Edit: obviously FF uses another type of attack then weapon melee attacks do. This prevents it from benefiting from a lot of abilites like Sneak Attack, Devoted's Bonus and so on. Even Swift Flurry and Heartbeat Drumming will not work with it as far as I could determine.

 

It's not a bug technically - but it surely is weird for players who don't know the Deadfire mechanics in and out: that an unarmed attack (Forbidden Fist) works differently than any other unarmed attack (e.g. Force of Anguish or Stunning Blow with fists).

Edited by Boeroer
  • Like 1

"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Basically like Grimoire Slam or Kalakoth's Feelbe Frostfingers I suppose?

 

It does work with Instruments of Pain (like the above, gains +500% range) - so I suppose it is kind of tagged as a melee attack. 

Anyway: It doesn't seem right. Is there a way to fix this? E.g. give it a proper "melee weapon attack" tag or anything like that?

Edited by Boeroer

"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0

Yes, somewhat similar to those.

 

It is an ability of GenericAbilityGameData type that triggers an attack of AttackMeleeGameData type.

 

 

 

[
  {
    "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp",
    "DebugName": "Forbidden_Fist",
    "ID": "60e0f7e5-86b8-4900-abbf-3945046be426",
    "Components": [
      {
        "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp",
        "KeywordsIDs": [],
        "DisplayName": 4986,
        "Description": 4987,
        "DescriptionTactical": -1,
        "UpgradeDescriptions": [
          {
            "String": 4988,
            "StringTactical": -1
          }
        ],
        "UpgradedFromID": "00000000-0000-0000-0000-000000000000",
        "Vocalization": "AbilityCast",
        "Icon": "gui/icons/abilities/talents/class_monk.png",
        "UsageType": "None",
        "UsageValue": 0,
        "AbilityClassID": "f0036bfb-53d5-4d0c-b11a-b780d788a108",
        "AbilityLevel": 0,
        "IsPassive": "true",
        "StackingRuleOverride": "Default",
        "TriggerOnHit": "false",
        "IsModal": "false",
        "ModalGroupID": "00000000-0000-0000-0000-000000000000",
        "IsCombatOnly": "false",
        "IsNonCombatOnly": "false",
        "HideFromUI": "false",
        "HideFromCombatLog": "false",
        "UniqueSet": "None",
        "NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
        "DurationOverride": 0,
        "OverrideEmpower": "Default",
        "ClearsOnMovement": "false",
        "CannotActivateWhileInStealth": "false",
        "CannotActivateWhileInvisible": "false",
        "ActivationPrerequisites": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "ApplicationPrerequisites": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "DeactivationPrerequisites": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "PowerLevelScaling": {
          "ScalingType": "Default",
          "BaseLevel": 0,
          "LevelIncrement": 1,
          "MaxLevel": 0,
          "DamageAdjustment": 1,
          "DurationAdjustment": 1,
          "BounceCountAdjustment": 0,
          "ProjectileCountAdjustment": 0,
          "AccuracyAdjustment": 0,
          "PenetrationAdjustment": 0
        },
        "StatusEffectKeywordsIDs": [],
        "StatusEffectsIDs": [
          "355c253f-2c85-47a8-a308-7f3215f52ff0"
        ],
        "VisualEffects": [],
        "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000",
        "AttackID": "00000000-0000-0000-0000-000000000000",
        "AITargetingConditional": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          },
          "Scripts": []
        },
        "AudioEventListID": "00000000-0000-0000-0000-000000000000",
        "GrantedViaScript": "false"
      },
      {
        "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp"
      }
    ]
  },
  {
    "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp",
    "DebugName": "Forbidden_Fist_Ability",
    "ID": "0f99851c-d970-4661-9d8b-a394e3951c3d",
    "Components": [
      {
        "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp",
        "KeywordsIDs": [
          "6a6d39b2-7883-49eb-aa94-b0304dc05d89",
          "0730c4c6-7a01-4cca-b1b4-da0c256542d4"
        ],
        "DisplayName": 4986,
        "Description": 4989,
        "DescriptionTactical": -1,
        "UpgradeDescriptions": [],
        "UpgradedFromID": "00000000-0000-0000-0000-000000000000",
        "Vocalization": "NoVocalization",
        "Icon": "gui/icons/abilities/monk/forbidden_fist.png",
        "UsageType": "ClassAccruedResource",
        "UsageValue": 0,
        "AbilityClassID": "f0036bfb-53d5-4d0c-b11a-b780d788a108",
        "AbilityLevel": 1,
        "IsPassive": "false",
        "StackingRuleOverride": "Default",
        "TriggerOnHit": "false",
        "IsModal": "false",
        "ModalGroupID": "00000000-0000-0000-0000-000000000000",
        "IsCombatOnly": "false",
        "IsNonCombatOnly": "false",
        "HideFromUI": "false",
        "HideFromCombatLog": "false",
        "UniqueSet": "None",
        "NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
        "DurationOverride": 0,
        "OverrideEmpower": "Default",
        "ClearsOnMovement": "false",
        "CannotActivateWhileInStealth": "false",
        "CannotActivateWhileInvisible": "false",
        "ActivationPrerequisites": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "ApplicationPrerequisites": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "DeactivationPrerequisites": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "PowerLevelScaling": {
          "ScalingType": "Default",
          "BaseLevel": 0,
          "LevelIncrement": 1,
          "MaxLevel": 0,
          "DamageAdjustment": 1,
          "DurationAdjustment": 1,
          "BounceCountAdjustment": 0,
          "ProjectileCountAdjustment": 0,
          "AccuracyAdjustment": 0,
          "PenetrationAdjustment": 0
        },
        "StatusEffectKeywordsIDs": [],
        "StatusEffectsIDs": [],
        "VisualEffects": [],
        "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000",
        "AttackID": "dded0cc3-093c-48ed-8e16-efedd3eca7ca",
        "AITargetingConditional": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          },
          "Scripts": []
        },
        "AudioEventListID": "4ed1021f-5da3-4cfa-b5b6-73e934c3d728",
        "GrantedViaScript": "false"
      },
      {
        "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp"
      }
    ]
  },
  {
    "$type": "Game.GameData.AttackMeleeGameData, Assembly-CSharp",
    "DebugName": "Forbidden_Fist_Melee",
    "ID": "dded0cc3-093c-48ed-8e16-efedd3eca7ca",
    "Components": [
      {
        "$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
        "KeywordsIDs": [
          "1ff3caa3-e731-4c31-96b4-e03c300e3f3c",
          "0730c4c6-7a01-4cca-b1b4-da0c256542d4"
        ],
        "AttackDistance": 0.75,
        "MinAttackDistance": 0,
        "AttackVariationID": "f0e8716a-145a-4eff-a0bb-ce494249f0db",
        "UseParentEquippableHand": "false",
        "CastSpeedID": "eacb53e3-6eb5-422a-92ca-99cc883ae4a9",
        "RecoveryTimeID": "9d15e1c1-c6e1-4b25-bc1d-bf3707f6f534",
        "OverrideTacticalActionType": "None",
        "ImpactDelay": 0,
        "ForcedTarget": "None",
        "AffectedTargetType": "NotSelf",
        "AffectedTargetConditional": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        },
        "AffectedTargetDeathState": "Alive",
        "HostilityOverride": "Default",
        "PushDistance": 0,
        "FaceTarget": "true",
        "AccuracyBonus": 0,
        "PenetrationRating": 9,
        "DamageData": {
          "DamageType": "Crush",
          "AlternateDamageType": "None",
          "Minimum": 14,
          "Maximum": 19,
          "DamageProcs": []
        },
        "Require****Object": "true",
        "StatusEffectKeywordsIDs": [],
        "StatusEffectsIDs": [
          "373544f3-035c-439a-811d-a596c1916e45"
        ],
        "RandomizeStatusEffect": "false",
        "CanGraze": "false",
        "CanCrit": "true",
        "DefendedBy": "Deflect",
        "AfflictionsDefendedBy": "Fortitude",
        "AfflictionApplicationModifier": "None",
        "SubstituteHitVisualEffect": "",
        "VisualEffects": [
          {
            "VisualEffect": "prefabs/effects/abilities/monk/fx_exploding_palm_chargeup.prefab",
            "AttachPoint": "RightHand",
            "AttachObject": "Caster",
            "AttachMode": "Attach",
            "MeshType": "None",
            "Event": "OnStart",
            "AnimEventID": 0,
            "Loop": "false",
            "Scale": "false"
          }
        ],
        "AttackOnImpactID": "00000000-0000-0000-0000-000000000000",
        "ExtraAttackID": "2bb32ac3-ea35-458c-947f-fdb41f7d41ad",
        "LaunchBone": "RightWeapon",
        "HitBone": "Chest",
        "OnHitShakeDuration": "Medium",
        "OnHitShakeStrength": "Large",
        "NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
        "AllReactNoise": "false",
        "InterruptsOn": "Hit",
        "InterruptType": "Normal",
        "TargetAngle": 0,
        "ApplyOnceOnly": "false",
        "PathsToTarget": "true",
        "HideFromCombatLog": "false",
        "AdditionalAttackOnTooltip": "false",
        "DoesNotApplyDamage": "false",
        "TreatAsWeapon": "false",
        "BounceData": {
          "Bounces": 0,
          "Multiplier": 0.5,
          "Range": 10,
          "InRangeOrder": "false",
          "NoRepeatTargets": "false",
          "AlwaysBounceAtEnemies": "false",
          "Delay": 0,
          "NeverBounce": "false"
        },
        "AttackValidityConditional": {
          "Conditional": {
            "Operator": 0,
            "Components": []
          }
        }
      },
      {
        "$type": "Game.GameData.AttackMeleeComponent, Assembly-CSharp",
        "EngagementRadius": 1,
        "IsUnarmed": "false"
      }
    ]
  }
]

 

GenericAbilityGameData is usually used by spells, while for weapon abilities (like Debilitating Strike) is used: WeaponAttackAbilityGameData. And cipher gets focus from the latter.

And you can't just change one for another, because WeaponAttackAbilityGameData uses your weapons, while Forbidden Fist seems to be designed with "using your 'fist'" in mind, no matter what you have equipped. Plus there would likely be problems for new characters, and the player would have to create a new monk. At least when I was changing types for Soul Annihilation ability - I've run into such a problem.

 

P.S. I just wanted to say that it doesn't look that there is a simple 'tick a checkbox' solution..\

Edited by MaxQuest

Share this post


Link to post
Share on other sites
  • 0

Dammit. That makes Forbidden Fist/Soulblade a lot less attractive.

 

I guess this also means it will not trigger stuff like Swift Flurry, Heartbeat Drumming and Sneak Attack, Deathblows und such?


"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0

Basically like Grimoire Slam or Kalakoth's Feelbe Frostfingers I suppose?

 

It does work with Instruments of Pain (like the above, gains +500% range) - so I suppose it is kind of tagged as a melee attack. 

 

Stupid question : does Kalakoth's and stuff benefit from Instruments of Pain ?

Share this post


Link to post
Share on other sites
  • 0

Grimoire Slam does. I tested that while writing the bug report. I didn't test Kalakoth's Frozen Fishfingers or other "melee" spells though. 


"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0

I have a gift)

 

UPDATE (8th April): Forbidden Fist ability now is Weapon Attack (generates Focus and receives all weapon related bonuses - Soul Whip, Hammering Thoughs, Transcendent Suffering, Unarmed modal, Sneak Sttack, Backstab etc.)

Screenshots:


241-1554746107-1751246535.png

From this test attack my 13th Level Monk/Cipher received 51 Focus (from 50 to 101)
241-1554746108-607591575.png

 

https://www.nexusmods.com/pillarsofeternity2/mods/241?tab=files

 

Have fun!

 

Becose value "TreatAsWeapon" in attacks.gamedatabundle was set to "False", i think this is was intended or maybe a simple oversight.

Edited by Phenomenum
  • Like 3

Share this post


Link to post
Share on other sites
  • 0

Thanks!

 

Hello Sam and friends: is there any chance that this will go into the next patch (i mean if it wasn't intended in the first place of course)?

 

Edit: I altered the thread title and the opening post to make the "problem" more clear.

Edited by Boeroer

"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0

So, not fixed in 5.0?


"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0

Tried it: not fixed.


"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0

@Phenomenum and @MaxQuest: maybe this is also a case for the Polishing mod? Since it won't get fixed - but seems to be easy to fix?


"Man - I have the exact same sweater! But without sleeves... and it has another pattern."
- P. Walterman -
"Nothing is wrong with the truth of my comment."
- SonicMage117 -

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, Boeroer said:

@Phenomenum and @MaxQuest: maybe this is also a case for the Polishing mod? Since it won't get fixed - but seems to be easy to fix?

Emm... Already fixed. Have you forgot about this? :grin:
https://www.nexusmods.com/pillarsofeternity2/mods/241?tab=files

Of course we will include this fix in CP.

  • Thanks 2

Share this post


Link to post
Share on other sites
  • 0

Ah, I didn't know you already had these out! I'm going to try a few of those out ;)


"Time is not your enemy. Forever is."

— Fall-From-Grace, Planescape: Torment

"It's the questions we can't answer that teach us the most. They teach us how to think. If you give a man an answer, all he gains is a little fact. But give him a question, and he'll look for his own answers."

— Kvothe, The Wise Man's Fears

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...