Jump to content

Recommended Posts

Posted (edited)

I find current soulblade playstyle pretty dull. And I'd want a mod that does the following:

 

- Instead of having -5 focus discount, shred powers now place a stackable mark on enemies when these powers deal damage.

 

- This mark, let's call it "Soul Fracture" lasts for 15 seconds (unmodified by INT and PL) and can stack up to 5 instances.

 

- When cipher deals damage with Soul Annihilation, all adjacent soul fractured enemies in 2.0m range from the primary target (but excluding primary target itself) take half of SA raw damage (that was just dealt to primary target). This damage consumes existing "Soul Fracture" instances and is increased by +20% per each.

 

P.S. Tips and directions on how to do it myself are also greatly appreciated.

 

P.P.S. I don't really expect it to be possible... but it also would be really cool if killing someone with SA, was visually kicking their soul out of the body and showing how it dissipates.

Edited by MaxQuest
  • Like 1
Posted

I hope you have good programming skills in c#, because I'm sure this can only be done by editing the game's code in Assembly-CSharp.dll and it sound like a lot of work.

 

The file is under "Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\Managed". You can use dnspy (google it) to edit Assembly-CSharp.dll.

  • Like 1
Posted

I *think* this might be possible without dll work, but it is still a fair amount of work. Status effects can stack, so the first step is replacing all the shred powers for the Soulblade. You can also do AoE attacks that ignore the target. The only real tricky part is triggering/removing the stacked SEs.

 

This idea peaks my curiosity, but no guarantees. RL is kicking my ass right now.

  • Like 1
Posted (edited)

I hope you have good programming skills in c#, because I'm sure this can only be done by editing the game's code in Assembly-CSharp.dll and it sound like a lot of work.

 

The file is under "Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\Managed". You can use dnspy (google it) to edit Assembly-CSharp.dll.

I had some.. experience with modding Assembly-CSharp.dll via IEFramework for PoE1. Made a mod with few bug fixes.

But still I'd rate my experience as very limited with both C# and Pillars. I mean I can edit some existing stuff. But don't know how to add new stuff.

 

I *think* this might be possible without dll work, but it is still a fair amount of work. Status effects can stack, so the first step is replacing all the shred powers for the Soulblade. You can also do AoE attacks that ignore the target. The only real tricky part is triggering/removing the stacked SEs.

So... if step by step it would be:

- s1. Create "Soul Fracture" status effect. Which is stackable and has a duration. Probably use Forbidden Curse as starting point, copy and edit it. Also take a look at Modwyr or Gravecaller for how they implemented stack cap.

- s2. Edit existing shred powers, to apply "Soul Fracture" onDamage. How?

- s3. Create "Soul Splinters" AoE... ability? For starters it can deal fixed 10 raw damage.

- s4. Somehow attach "Soul Splinters" to "Soul Annihilation"

- s5. Edit "Soul Splinters" damage:

> it should know how much damage was dealt by SA (or calculate it itself)

> take into account existing "Soul Fracture" instances. And increase damage by +20% for each. Or if there is no instances - don't deal damage at all.

> clear "Soul Fractures". (like Wave Walker clears fire effects?)

 

This idea peaks my curiosity, but no guarantees. RL is kicking my ass right now.

Fingers crossed :) Edited by MaxQuest
Posted

So... I have managed to do steps 1, 2 and 3.

Also have figured out how to clear/remove "Soul Fracture". If you are interested how:

 

Although I haven't found how to clear specific status effect by id, there is the following workaround:

 

- set an unique keyword; and attach it to initial status_effect

- create a clearing status_effect with

> "StatusEffectType": "Immunity"

> "DurationType": "Instant",

> "Duration": 0

> "ApplicationType": "ApplyOnStart",

> and add that keyword id to AttackFilter

 

 

 

But I am stuck at step 4... I can't attach an AoE to Soul_Annihilation ability.

I'm setting AttackID but nothing happens.

Have tried with a newly created Game.GameData.AttackAOEGameData and with Silent_Scream_Target and with Silent_Scream_AoE... nothing.

 

 

Also does someone know how to aggregate stacked effects like that?:

 

9CMMJwg.png

  • Like 1
Posted (edited)

Kinda sorted the step4 out...

Instead of linking the AoE attack directly to SA ability (like for example Silent Scream does), it was needed to go down to status effects, and from an effect of AttackTargetOnEvent type, link the attack I wanted.

 

I.e. instead of:

 

comp1.png

 

I had to do:

 

comp2.png

 

 


So, it looks like I'll be able to mod this myself, if I'll also find how to:

> q1. make "Soul Splinters" deal bonus damage based on "Soul Fracture" count

 

and optionally:

> q2. aggregate "Soul Fracture" status effects

> q3. make "Soul Splinter" aware of how much damage did "Soul Annihilation". I mean, if SA critted for 100 raw damage, I'd like AoE to use half of that as the baseline (and not make a roll of it's own). So if AoE at least grazes - it deals 50 raw damage. If it misses - it missed.

> q4. how to make "Soul Annihilation" get bonus accuracy (e.g. +3 acc per Soul Fracture on target)

Edited by MaxQuest
Posted

Remove an SE by applying a 0 time immunity! That makes so much sense.

 

Great progress. Here's a thought regarding the aggregation of Fracture. If 10 stacks are the max, then each shred ability could apply 10 SEs. Each SE has a unique keyword and requires the previous keyword on a target to apply (the first stack wouldnt require a keyword). Annhilation would then filter it's damage according to the appropriate keyword on the target.

 

It's a bit clunky, but I think it could work. You could probably do the Accuracy bonus at the same time via the attack filter and the keywords on the target.

 

Your Excel visuals are awesome. Going to steal that idea for my guide if you don't mind ;)

Posted (edited)

I don't mind :grin:

 

As for 10 SE fractures,.. I somewhat see how it can work. But oh boy it's indeed a hulking approach. Hmm.

Maybe I'll try a different strategy, and get rid of stacking altogether.

Playstesting has shown that mind blades are often the best way to stack "Soul Fractures". So it would require either investigating how to make shred DoTs apply "Soul Fracture" on each tick, and not just when they are applied,.. or alter the concept.

 

As alternative, I'm now thinking about:

 

Gains "Soul Annihilation" ability: A soul enhanced melee strike that consumes the cipher's remaining focus and converts half of it into Raw damage on the target.

 

Shred powers now also place a "Mark of the Beyond" on affected enemies for 15s.

 

Soul Annihilation additionally deals 50% of it's raw damage in 2.5m AoE around the target, to enemies that are affected by "Mark of the Beyond", and consumes their marks.

 

 

3 upgrades:

 

> u1: Focused Annihilation: Soul Annihilation gets +20acc bonus vs marked enemies.

 

> u2: Mass Annihilation: adjacent, marked enemies now take 75% of Soul Annihilation raw damage.

 

> u3: Horrifying Fate: hits with Soul Annihilation shaken primary and marked enemies. Kills with Soul Annihilation frighten them.

Edited by MaxQuest
Posted

I'm late to the Battle but isn't the whole proc thing similar to Lord Darryn's Voulge effect? Maybe you could look how it's done with the items.

 

"Static Charge: On Hit, applies a stacking effect to an enemy. On Crit, all enemies in an AoE will lose all stacks and take +5 Shock damage for every stack."

  • Like 2
  • 1 month later...
Posted (edited)

Hey guys, I have two questions, maybe someone has any ideas?:

 

1). Soul Annihilation cannot be cast if you have less than 10 focus. But this is set as UsageValue. So if you have 40 current focus, it will first consume 10 and actually use 30 for calculations.

 

The question is: how to make an ability have a minimum requirement of 10 focus, but keep it's UsageValue at 0?

 

 

2). Soul Annihilation is a primary attack that has a damage dealing Status Effect attached. This SE is not dealing physical damage, but somehow does benefit from physical damage coefficients like: Sneak Attack, Weapon Quality Enchant, TwoHandedStyle talent, GreatSwordProfficiency modal.

How can I change this, without substituting Primary WeaponAttackAbilityComponent with a melee spell?

 

P.S. Here's the unedited json for reference:

 

 

[
    {
        "$type": "Game.GameData.WeaponAttackAbilityGameData, Assembly-CSharp",
        "DebugName": "Soul_Annihilation",
        "ID": "bf41329e-a30c-464c-8c33-67e6d5ea5687",
        "Components": [
            {
                "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp",
                "KeywordsIDs": [],
                "DisplayName": 2869,
                "Description": 2870,
                "DescriptionTactical": -1,
                "UpgradeDescriptions": [],
                "UpgradedFromID": "00000000-0000-0000-0000-000000000000",
                "Vocalization": "AbilityCast",
                "Icon": "gui/icons/abilities/cipher/soul_annihilation.png",
                "UsageType": "ClassAccruedResource",
                "UsageValue": 10,
                "AbilityClassID": "ccdc9675-e2a7-46fa-83e9-7a5368b56265",
                "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": [
                    "ff61ecc9-fd46-47a8-be7c-64f42831b811"
                ],
                "VisualEffects": [],
                "SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000",
                "AttackID": "00000000-0000-0000-0000-000000000000",
                "AITargetingConditional": {
                    "Conditional": {
                        "Operator": 0,
                        "Components": []
                    },
                    "Scripts": []
                },
                "AudioEventListID": "09b03696-0fea-496d-8826-cf71a4c3abbc",
                "GrantedViaScript": "false"
            },
            {
                "$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp"
            },
            {
                "$type": "Game.GameData.WeaponAttackAbilityComponent, Assembly-CSharp",
                "Type": "Primary",
                "Range": "Melee",
                "AttackVariationID": "00000000-0000-0000-0000-000000000000",
                "RecoveryTimeID": "00000000-0000-0000-0000-000000000000",
                "BonusDamageMultiplier": 1,
                "BonusAccuracy": 0,
                "BonusPenetration": 0,
                "BonusPushDistance": 0,
                "DefendedBy": "Count",
                "AfflictionsDefendedBy": "Count",
                "InterruptsOn": "Crit",
                "InterruptType": "Normal",
                "ApplyEffectsToPrimaryOnly": "false",
                "AttackKeywordsIDs": [],
                "AttackStatusEffectsIDs": [
                    "122c3921-9d3a-48d0-82ab-04504ca19799"
                ],
                "AttackVisualEffects": [
                    {
                        "VisualEffect": "prefabs/effects/abilities/rogue/fx_finishing_blow_hit.prefab",
                        "AttachPoint": "Chest",
                        "AttachObject": "Target",
                        "AttachMode": "PositionFaceSource",
                        "MeshType": "None",
                        "Event": "OnHit",
                        "AnimEventID": 0,
                        "Loop": "false",
                        "Scale": "false"
                    }
                ],
                "IsMultiHit": "false",
                "ProjectilePrefab": "",
                "ProjectileCount": 0
            }
        ]
    },
    {
        "$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
        "DebugName": "Soul_Annihilation_SE_ApplyOnEvent",
        "ID": "ff61ecc9-fd46-47a8-be7c-64f42831b811",
        "Components": [
            {
                "$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
                "StatusEffectType": "ApplyStatusEffectOnEvent",
                "OverrideDescriptionString": -1,
                "OverrideDescriptionStringTactical": -1,
                "UseStatusEffectValueAs": "None",
                "BaseValue": 0,
                "DynamicValue": {
                    "Stat": "None",
                    "SkillDataID": "00000000-0000-0000-0000-000000000000",
                    "ClassID": "00000000-0000-0000-0000-000000000000",
                    "MultiplyBy": 1,
                    "Operator": "Add"
                },
                "KeywordsIDs": [],
                "DurationType": "OneHitUse",
                "Duration": 0,
                "MaxStackQuantity": 0,
                "ApplicationBehavior": "UseLongerDurationIfAlreadyApplied",
                "ApplicationType": "ApplyOnStart",
                "IntervalRateID": "00000000-0000-0000-0000-000000000000",
                "StackedChildrenApplyEffects": "false",
                "ApplicationPrerequisites": {
                    "Conditional": {
                        "Operator": 0,
                        "Components": []
                    }
                },
                "TriggerAdjustment": {
                    "TriggerOnEvent": "None",
                    "TriggerOffEvent": "None",
                    "ValidateWithAttackFilter": "false",
                    "ParamValue": 0,
                    "ValueAdjustment": 0,
                    "DurationAdjustment": 0,
                    "ResetTriggerOnEffectTimeout": "false",
                    "MaxTriggerCount": 0,
                    "IgnoreMaxTriggerCount": "false",
                    "RemoveEffectAtMax": "false",
                    "ChanceToTrigger": 1
                },
                "PowerLevelScaling": {
                    "UseCharacterLevel": "false",
                    "BaseLevel": 0,
                    "LevelIncrement": 1,
                    "MaxLevel": 0,
                    "ValueAdjustment": 0,
                    "DurationAdjustment": 0
                },
                "IsHostile": "false",
                "ClearOnCombatEnd": "false",
                "ClearOnRest": "false",
                "ClearOnFoodRest": "false",
                "ClearWhenAttacks": "false",
                "ClearOnDeath": "false",
                "HideFromCombatTooltip": "true",
                "HideFromCombatLog": "false",
                "HideFromUI": "false",
                "VisualEffects": [],
                "MaterialReplacementID": "00000000-0000-0000-0000-000000000000",
                "AttackFilter": {
                    "KeywordsIDs": [],
                    "KeywordLogic": "Or",
                    "Race": "None",
                    "IsKith": "false",
                    "HealthPercentage": 0,
                    "HealthOperator": "EqualTo",
                    "Range": "None",
                    "ClassTypeID": "00000000-0000-0000-0000-000000000000",
                    "Source": "None",
                    "DefendedBy": "None",
                    "Empowered": "false",
                    "Disengagement": "false",
                    "Stealthed": "false",
                    "UseStealthLinger": "false",
                    "PowerLevel": 0,
                    "PowerLevelOperator": "EqualTo",
                    "ChanceToApply": 1,
                    "AttackHostility": "Default",
                    "TargetType": "None"
                },
                "AttackTargetFilter": {
                    "KeywordsIDs": [],
                    "KeywordLogic": "Or",
                    "Race": "None",
                    "IsKith": "false",
                    "HealthPercentage": 0,
                    "HealthOperator": "EqualTo",
                    "Distance": 0,
                    "DistanceOperator": "EqualTo",
                    "HasDOT": "false",
                    "IsMarked": "false",
                    "TargetHostility": "Default"
                },
                "ExtraValue": 0,
                "OverridePenetration": 0,
                "DamageTypeValue": "All",
                "KeywordValueID": "00000000-0000-0000-0000-000000000000",
                "RaceValue": "None",
                "StatusEffectTypeValue": "None",
                "ItemValueID": "00000000-0000-0000-0000-000000000000",
                "AfflictionTypeValueID": "00000000-0000-0000-0000-000000000000",
                "StatusEffectsValueIDs": [
                    "4165d186-a5d0-4f11-a01b-6747b401cf1c"
                ],
                "AttackValueID": "00000000-0000-0000-0000-000000000000",
                "AttackOverrideValue": "None",
                "EventValue": "OnClear",
                "ClassValueID": "00000000-0000-0000-0000-000000000000",
                "WeaponTypeValue": "None",
                "AttackHitType": "None",
                "SkillValueID": "00000000-0000-0000-0000-000000000000",
                "AudioEventListID": "00000000-0000-0000-0000-000000000000",
                "BedRestDaysMinimum": 0,
                "BedRestDaysMaximum": 0
            }
        ]
    },
    {
        "$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
        "DebugName": "Soul_Annihilation_SE_RawDamage",
        "ID": "122c3921-9d3a-48d0-82ab-04504ca19799",
        "Components": [
            {
                "$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
                "StatusEffectType": "Damage",
                "OverrideDescriptionString": -1,
                "OverrideDescriptionStringTactical": -1,
                "UseStatusEffectValueAs": "None",
                "BaseValue": 10,
                "DynamicValue": {
                    "Stat": "AccruedResource",
                    "SkillDataID": "00000000-0000-0000-0000-000000000000",
                    "ClassID": "ccdc9675-e2a7-46fa-83e9-7a5368b56265",
                    "MultiplyBy": 0.25,
                    "Operator": "Add"
                },
                "KeywordsIDs": [],
                "DurationType": "Instant",
                "Duration": 0,
                "MaxStackQuantity": 0,
                "ApplicationBehavior": "UseLongerDurationIfAlreadyApplied",
                "ApplicationType": "ApplyOnStart",
                "IntervalRateID": "00000000-0000-0000-0000-000000000000",
                "StackedChildrenApplyEffects": "false",
                "ApplicationPrerequisites": {
                    "Conditional": {
                        "Operator": 0,
                        "Components": [
                            {
                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                "Data": {
                                    "FullName": "Boolean HasStatusEffect(Guid, Guid)",
                                    "Parameters": [
                                        "011111e9-0000-0000-0000-000000000000",
                                        "ff61ecc9-fd46-47a8-be7c-64f42831b811"
                                    ],
                                    "Flags": "",
                                    "UnrealCall": "",
                                    "FunctionHash": -2101652762,
                                    "ParameterHash": 519142437
                                },
                                "Not": false,
                                "Operator": 0
                            }
                        ]
                    }
                },
                "TriggerAdjustment": {
                    "TriggerOnEvent": "None",
                    "TriggerOffEvent": "None",
                    "ValidateWithAttackFilter": "false",
                    "ParamValue": 0,
                    "ValueAdjustment": 0,
                    "DurationAdjustment": 0,
                    "ResetTriggerOnEffectTimeout": "false",
                    "MaxTriggerCount": 0,
                    "IgnoreMaxTriggerCount": "false",
                    "RemoveEffectAtMax": "false",
                    "ChanceToTrigger": 1
                },
                "PowerLevelScaling": {
                    "UseCharacterLevel": "false",
                    "BaseLevel": 0,
                    "LevelIncrement": 1,
                    "MaxLevel": 0,
                    "ValueAdjustment": 0,
                    "DurationAdjustment": 0
                },
                "IsHostile": "true",
                "ClearOnCombatEnd": "false",
                "ClearOnRest": "false",
                "ClearOnFoodRest": "false",
                "ClearWhenAttacks": "false",
                "ClearOnDeath": "false",
                "HideFromCombatTooltip": "true",
                "HideFromCombatLog": "false",
                "HideFromUI": "false",
                "VisualEffects": [],
                "MaterialReplacementID": "00000000-0000-0000-0000-000000000000",
                "AttackFilter": {
                    "KeywordsIDs": [],
                    "KeywordLogic": "Or",
                    "Race": "None",
                    "IsKith": "false",
                    "HealthPercentage": 0,
                    "HealthOperator": "EqualTo",
                    "Range": "None",
                    "ClassTypeID": "00000000-0000-0000-0000-000000000000",
                    "Source": "None",
                    "DefendedBy": "None",
                    "Empowered": "false",
                    "Disengagement": "false",
                    "Stealthed": "false",
                    "UseStealthLinger": "false",
                    "PowerLevel": 0,
                    "PowerLevelOperator": "EqualTo",
                    "ChanceToApply": 1,
                    "AttackHostility": "Default",
                    "TargetType": "None"
                },
                "AttackTargetFilter": {
                    "KeywordsIDs": [],
                    "KeywordLogic": "Or",
                    "Race": "None",
                    "IsKith": "false",
                    "HealthPercentage": 0,
                    "HealthOperator": "EqualTo",
                    "Distance": 0,
                    "DistanceOperator": "EqualTo",
                    "HasDOT": "false",
                    "IsMarked": "false",
                    "TargetHostility": "Default"
                },
                "ExtraValue": 0,
                "OverridePenetration": 0,
                "DamageTypeValue": "Raw",
                "KeywordValueID": "00000000-0000-0000-0000-000000000000",
                "RaceValue": "None",
                "StatusEffectTypeValue": "None",
                "ItemValueID": "00000000-0000-0000-0000-000000000000",
                "AfflictionTypeValueID": "00000000-0000-0000-0000-000000000000",
                "StatusEffectsValueIDs": [],
                "AttackValueID": "00000000-0000-0000-0000-000000000000",
                "AttackOverrideValue": "None",
                "EventValue": "OnApply",
                "ClassValueID": "00000000-0000-0000-0000-000000000000",
                "WeaponTypeValue": "None",
                "AttackHitType": "None",
                "SkillValueID": "00000000-0000-0000-0000-000000000000",
                "AudioEventListID": "00000000-0000-0000-0000-000000000000",
                "BedRestDaysMinimum": 0,
                "BedRestDaysMaximum": 0
            }
        ]
    },
    {
        "$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
        "DebugName": "Soul_Annihilation_SE_RemoveFocus",
        "ID": "4165d186-a5d0-4f11-a01b-6747b401cf1c",
        "Components": [
            {
                "$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
                "StatusEffectType": "AddFocus",
                "OverrideDescriptionString": 335,
                "OverrideDescriptionStringTactical": -1,
                "UseStatusEffectValueAs": "None",
                "BaseValue": -999,
                "DynamicValue": {
                    "Stat": "None",
                    "SkillDataID": "00000000-0000-0000-0000-000000000000",
                    "ClassID": "00000000-0000-0000-0000-000000000000",
                    "MultiplyBy": 1,
                    "Operator": "Add"
                },
                "KeywordsIDs": [],
                "DurationType": "Instant",
                "Duration": 0,
                "MaxStackQuantity": 0,
                "ApplicationBehavior": "UseLongerDurationIfAlreadyApplied",
                "ApplicationType": "ApplyOnStart",
                "IntervalRateID": "00000000-0000-0000-0000-000000000000",
                "StackedChildrenApplyEffects": "false",
                "ApplicationPrerequisites": {
                    "Conditional": {
                        "Operator": 0,
                        "Components": []
                    }
                },
                "TriggerAdjustment": {
                    "TriggerOnEvent": "None",
                    "TriggerOffEvent": "None",
                    "ValidateWithAttackFilter": "false",
                    "ParamValue": 0,
                    "ValueAdjustment": 0,
                    "DurationAdjustment": 0,
                    "ResetTriggerOnEffectTimeout": "false",
                    "MaxTriggerCount": 0,
                    "IgnoreMaxTriggerCount": "false",
                    "RemoveEffectAtMax": "false",
                    "ChanceToTrigger": 1
                },
                "PowerLevelScaling": {
                    "UseCharacterLevel": "false",
                    "BaseLevel": 0,
                    "LevelIncrement": 1,
                    "MaxLevel": 0,
                    "ValueAdjustment": 0,
                    "DurationAdjustment": 0
                },
                "IsHostile": "false",
                "ClearOnCombatEnd": "false",
                "ClearOnRest": "false",
                "ClearOnFoodRest": "false",
                "ClearWhenAttacks": "false",
                "ClearOnDeath": "false",
                "HideFromCombatTooltip": "true",
                "HideFromCombatLog": "false",
                "HideFromUI": "false",
                "VisualEffects": [],
                "MaterialReplacementID": "00000000-0000-0000-0000-000000000000",
                "AttackFilter": {
                    "KeywordsIDs": [],
                    "KeywordLogic": "Or",
                    "Race": "None",
                    "IsKith": "false",
                    "HealthPercentage": 0,
                    "HealthOperator": "EqualTo",
                    "Range": "None",
                    "ClassTypeID": "00000000-0000-0000-0000-000000000000",
                    "Source": "None",
                    "DefendedBy": "None",
                    "Empowered": "false",
                    "Disengagement": "false",
                    "Stealthed": "false",
                    "UseStealthLinger": "false",
                    "PowerLevel": 0,
                    "PowerLevelOperator": "EqualTo",
                    "ChanceToApply": 1,
                    "AttackHostility": "Default",
                    "TargetType": "None"
                },
                "AttackTargetFilter": {
                    "KeywordsIDs": [],
                    "KeywordLogic": "Or",
                    "Race": "None",
                    "IsKith": "false",
                    "HealthPercentage": 0,
                    "HealthOperator": "EqualTo",
                    "Distance": 0,
                    "DistanceOperator": "EqualTo",
                    "HasDOT": "false",
                    "IsMarked": "false",
                    "TargetHostility": "Default"
                },
                "ExtraValue": 0,
                "OverridePenetration": 0,
                "DamageTypeValue": "All",
                "KeywordValueID": "00000000-0000-0000-0000-000000000000",
                "RaceValue": "None",
                "StatusEffectTypeValue": "None",
                "ItemValueID": "00000000-0000-0000-0000-000000000000",
                "AfflictionTypeValueID": "00000000-0000-0000-0000-000000000000",
                "StatusEffectsValueIDs": [],
                "AttackValueID": "00000000-0000-0000-0000-000000000000",
                "AttackOverrideValue": "None",
                "EventValue": "OnApply",
                "ClassValueID": "00000000-0000-0000-0000-000000000000",
                "WeaponTypeValue": "None",
                "AttackHitType": "None",
                "SkillValueID": "00000000-0000-0000-0000-000000000000",
                "AudioEventListID": "00000000-0000-0000-0000-000000000000",
                "BedRestDaysMinimum": 0,
                "BedRestDaysMaximum": 0
            }
        ]
    }
]

 

Edited by MaxQuest
Posted

For 1, can you just refund the minimum requirement as part of the ability? Or is part of the problem that you want the calculation to be based upon 40 (ie, the pre-ability focus value)?

 

 

For 2, there is a work around for making a spell a weapon attack. IIRC, the vanilla fighter ability Clear Out is an example. Basically, Clear Out is an AOE "spell" that inflicts weapon damage. This might do what you're trying to accomplish: maintaining primary weapon damage but not increase the SE damage via Sneak Attack, etc.

  • Like 1

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...