Jump to content

ocelotter

Members
  • Posts

    42
  • Joined

  • Last visited

Posts posted by ocelotter

  1. 18 hours ago, 3x0du5 said:

    what does "best current threat" stand for exactly ?

    Here's the (decompiled) source:

        [PreferenceScript("Find Best Current Threat", "Preferences\\Targeting")]
        public static void FindBestEngager()
        {
          // ISSUE: reference to a compiler-generated field
          if (Preferences.\u003C\u003Ef__mg\u0024cache1B == null)
          {
            // ISSUE: reference to a compiler-generated field
            Preferences.\u003C\u003Ef__mg\u0024cache1B = new Preferences.GetTraitDelegate(Preferences.GetThreateningScore);
          }
          // ISSUE: reference to a compiler-generated field
          Preferences.FindTargetWhereTraitIs(FindType.Highest, Preferences.\u003C\u003Ef__mg\u0024cache1B);
        }
    
        private static float? GetThreateningScore(Faction target)
        {
          if (!Preferences.AttackingAIController.IsThreatenedBy(target.AIController))
            return new float?(0.0f);
          if (Object.op_Equality((Object) Preferences.AttackingAIController.CurrentTarget, (Object) ((Component) target).get_gameObject()))
            return new float?(2f);
          return new float?(1f);
        }

    So I think "Best Current Threat" is your current target if it's engaging or attacking you back, otherwise it's a (random?) character that is engaging or attacking you. Which is slightly funny, because it indicates that there is indeed code to determine a character's current target in the source, they just don't give that as a targeting option for whatever reason.

  2. I think the best you can do is to set a cooldown on the Crippling Strike behavior equal to its total duration (including modifiers) and setup your targeting priorities so that they're all aligned (e.g. "Best Current Threat"). Obviously if the target removes the affliction or your character for some reason acquires a new target then there will be a delay in applying the affliction, but the concept of a current target is not really one this game uses.

  3. Quote

    One time fixed resources gain can be overpowered with tactican/caster. Flank enemies, then let them flank you, then spam weapon switch for kapana taga/something, to get brilliant->flanked->brilliant->flanked chain. 

    I haven't tested this specific interaction, but since most (all?) status effects tick immediately upon receipt of the effect, this should already work this way. So the aforementioned change would not really alter this interaction.

    2 hours ago, Elric Galad said:

    This is an excellent point and one of the reason why changing that much brillant sounds weird to me. I fear similar side effects.

    Minor stuff : Blood sacrifice works with only 3 categories for spell tiers (1-3, 4-6, 7-9), so there would be 1/3 chance of restoring SoT, which would be consistent enough with 2 priests.

    So restoring a completely random spell level with 1/n chance where n is the number of spell level would be the most straightforward way to change Brillant.

     

    Upsides :

    - encourage using various spell levels which I find interesting,

    - prevent SoT abuse,

    - change nothing for martial classes, which are fine with Brillant IMHO.

    Blood Sacrifice randomly selects to restore a tier 1-3, 1-6, or 1-9 spell each time you use it. If all you have used is a level 6 spell (SoT), then this form of Brilliant would have a 2/3 chance to restore it.

    Edit: giving Brilliant a chance to restore a completely random spell level is a good idea, but I'm not sure how feasible it is. The AddResource StatusEffectType that all of these spells use restores a missing resource up to a certain level. Blood Sacrifice circumvents this a bit by having three different status effects, but it still isn't 1-3/4-6/7-9, it's 1-3/1-6/1-9. If you made 9 brackets, SoT would still be restored four out of nine times. So another implementation would need to be found.

    • Thanks 1
  4. Just for fun, I tried implementing the time limit on PreventDeath effects, and it worked pretty much as expected. Here's the code:

    Spoiler
    
    {
    	"GameDataObjects": [
    		{
    			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
                "DebugName": "Lay_on_Hands_Shieldbearers_SE_PreventDeath",
                "ID": "7595cec7-23e5-4ce2-9f21-a94dcffe12ca",
    			"Components": [
    				{
    					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
    					"IntervalRateID": "9ad89927-55e1-4385-b5ad-a420beec5d7c",
    					"TriggerAdjustment": {
                            "TriggerOnEvent": "OnInterval",
                            "TriggerOffEvent": "None",
                            "ValidateWithAttackFilter": "false",
                            "ParamValue": 0,
                            "ValueAdjustment": 0,
                            "DurationAdjustment": 0,
                            "ResetTriggerOnEffectTimeout": "false",
                            "MaxTriggerCount": 2,
                            "IgnoreMaxTriggerCount": "false",
                            "RemoveEffectAtMax": "true",
                            "ChanceToTrigger": 1
                        }
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
                "DebugName": "Greater_Lay_on_Hands_Shieldbearers_SE_PreventDeath",
                "ID": "bd9f0106-5ad1-48bc-b924-809b42fd7ad3",
    			"Components": [
    				{
    					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
    					"IntervalRateID": "9ad89927-55e1-4385-b5ad-a420beec5d7c",
    					"TriggerAdjustment": {
                            "TriggerOnEvent": "OnInterval",
                            "TriggerOffEvent": "None",
                            "ValidateWithAttackFilter": "false",
                            "ParamValue": 0,
                            "ValueAdjustment": 0,
                            "DurationAdjustment": 0,
                            "ResetTriggerOnEffectTimeout": "false",
                            "MaxTriggerCount": 2,
                            "IgnoreMaxTriggerCount": "false",
                            "RemoveEffectAtMax": "true",
                            "ChanceToTrigger": 1
                        }
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
                "DebugName": "Hands_Of_Light_Shieldbearers_SE_PreventDeath",
                "ID": "2dedab4b-e536-4ef3-b7ae-c68c94e72f3a",
    			"Components": [
    				{
    					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
    					"IntervalRateID": "9ad89927-55e1-4385-b5ad-a420beec5d7c",
    					"TriggerAdjustment": {
                            "TriggerOnEvent": "OnInterval",
                            "TriggerOffEvent": "None",
                            "ValidateWithAttackFilter": "false",
                            "ParamValue": 0,
                            "ValueAdjustment": 0,
                            "DurationAdjustment": 0,
                            "ResetTriggerOnEffectTimeout": "false",
                            "MaxTriggerCount": 2,
                            "IgnoreMaxTriggerCount": "false",
                            "RemoveEffectAtMax": "true",
                            "ChanceToTrigger": 1
                        }
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
                "DebugName": "Barring_Deaths_Door_SE_PreventDeath",
                "ID": "bf16d60a-34db-4159-b4ce-82f3513c1200",
    			"Components": [
    				{
    					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
    					"IntervalRateID": "9ad89927-55e1-4385-b5ad-a420beec5d7c",
    					"TriggerAdjustment": {
                            "TriggerOnEvent": "OnInterval",
                            "TriggerOffEvent": "None",
                            "ValidateWithAttackFilter": "false",
                            "ParamValue": 0,
                            "ValueAdjustment": 0,
                            "DurationAdjustment": 0,
                            "ResetTriggerOnEffectTimeout": "false",
                            "MaxTriggerCount": 2,
                            "IgnoreMaxTriggerCount": "false",
                            "RemoveEffectAtMax": "true",
                            "ChanceToTrigger": 1
                        }
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
                "DebugName": "Resurrection_SE_PreventDeath",
                "ID": "3ea0a01d-4c1a-4ce9-bfb8-e10573313c8e",
    			"Components": [
    				{
    					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
    					"IntervalRateID": "9ad89927-55e1-4385-b5ad-a420beec5d7c",
    					"TriggerAdjustment": {
                            "TriggerOnEvent": "OnInterval",
                            "TriggerOffEvent": "None",
                            "ValidateWithAttackFilter": "false",
                            "ParamValue": 0,
                            "ValueAdjustment": 0,
                            "DurationAdjustment": 0,
                            "ResetTriggerOnEffectTimeout": "false",
                            "MaxTriggerCount": 3,
                            "IgnoreMaxTriggerCount": "false",
                            "RemoveEffectAtMax": "true",
                            "ChanceToTrigger": 1
                        }
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
                "DebugName": "Potion_of_the_final_stand_SE_CannotDie",
                "ID": "2bad7806-b5bc-4e90-8d21-795e4add7ab1",
    			"Components": [
    				{
    					"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
    					"IntervalRateID": "9ad89927-55e1-4385-b5ad-a420beec5d7c",
    					"TriggerAdjustment": {
                            "TriggerOnEvent": "OnInterval",
                            "TriggerOffEvent": "None",
                            "ValidateWithAttackFilter": "false",
                            "ParamValue": 0,
                            "ValueAdjustment": 0,
                            "DurationAdjustment": 0,
                            "ResetTriggerOnEffectTimeout": "false",
                            "MaxTriggerCount": 2,
                            "IgnoreMaxTriggerCount": "false",
                            "RemoveEffectAtMax": "true",
                            "ChanceToTrigger": 1
                        }
    				}
    			]
    		}
    	]
    }

     

    (Not sure why the indentation is all messed up here, oh well)

    I put a fairly generous 30 second cap on all of the effects except Resurrection, to which I gave a 60 second cap. That way, non-abusive SoT, Wall of Draining, and Intelligence still benefit the effects. The only problem is, I'm not sure how to fix the UI display for this; it's probably not relevant unless you're really trying to push it, but it is a bit weird to just have an effect drop off with time still remaining on the buff.

  5. 4 hours ago, Boeroer said:

    Brilliant removes this balance and even turns it upside down because you gain 1 spell per tier per tick while the other classes gain some meager points for their pool.

    Nomatter how many levels you've got: a Fighter always profits the same from Brilliant while a caster gains more and more spells the more unlocked spell tiers he has. 

    The whole reason why I think Brilliant is broken is because of this single mechanic. If it would work like Blood Sacrifice (restoring one single random spell use per tick) it wouldn't be so broken and comparable to the other classes' gains.

    Maybe I'm misunderstanding you, but Brilliant restores exactly one spell each tick to a (single-class) caster, of a random spell level. So if all nine of your spell tiers are depleted, it will still only restore one spell, not nine of them. The problem lies in that this can be controlled by only casting a single spell, so if you only cast Salvation of Time (and Barring Death's Door, which is conveniently in the same tier) or Missile Salvo, you always get that spell slot back.

    I think it's actually a pretty cool mechanic that you can control what Brilliant restores if you plan ahead a bit, but it's definitely abusable with some abilities. I still think that Barring Death's Door is at least as problematic; it's an effect that makes you immune to death, which has its duration affected by Intelligence and which can be extended by more effects than just Salvation of Time (notably Wall of Draining). I think at the very least effects that can destroy targets with less than 25% health should counter it, e.g. Death Ring, though I'm not certain the AI would take advantage of them in its current state. Abilities that break the game's fundamental conceit, health loss results in death, should be incredibly limited or have more counters than just Arcane Dampener/Arcane Cleanse. Just imagine the frustration if an enemy encounter in the game used these shenanigans on the player; suddenly it's impossible to win unless you interrupt the Cipher's first Brilliant cast, stunlock the Priest (quickly) or have a Wizard to dampen or repeatedly cleanse the buffs.

     

    Back to the topic at hand, I'm biased but I think halving the tick rate of Brilliant merely ameliorates the issue rather than solving it, and hurts people that don't abuse it in the process. Now, instead of just needing one Priest to secure immortality, you need two! To be fair they'd both need Brilliant, but if you give the Cipher immortality while acquiring it (or the Priest with Shroud of the Phantasm), everything works out. It certainly helps make it more difficult, though.

    Another solution that would work for both Brilliant and Barring Death's Door is to give them a cap on their maximum length. I think this can be done using status effect triggers, e.g. "TriggerOnEvent": "OnInterval", "MaxTriggerCount": "5", "RemoveEffectAtMax": "true". Would probably have to give Barring Death's Door a child status effect that ticks for this to work though, or maybe just use the dreaded "ApplyOverTime" ApplicationType.

    I would also like to hear more opinions on this. Thankfully, we can each opt-out of certain modifications we particularly don't like, but there is some value in consensus.

    • Thanks 2
  6. 36 minutes ago, Elric Galad said:

    Also I'm not very fond of fixed amont of ressources for Brillant because it would render its duration insignificant. IMHO, Brillant is mostly OP on casters, especially with SoT involved. Without that it would be a very powerful but not broken inspiration. Also, Ancestor's memory would be really bad with such change.

    The duration of Brilliant would be as significant as the duration of the other tier 3 inspirations, particularly if the power level bonus was slightly buffed as suggested. It still provides a layer of safety from afflictions, and a persistent PL bonus. I'd take a +1-2 PL bonus (relative to Acute) over 25% hit to crit (Intuitive, relative to Aware), for example.

  7. I thought of another idea for "adjusting" Brilliant to be a bit less abusable, if there's any interest in such a thing. Instead of restoring one of each class resource once every six seconds, make it restore one (or two) of each class resource immediately upon receiving the buff, but none thereafter. Additionally, let the buff give +2-3 PL instead of just +1--as I believe Boeroer suggested before--so extending its duration still feels powerful. I think this should be pretty easy to do (just change "ApplicationType" to "ApplyOnStart" for "INS_Brilliant_SE_AddResources", maybe?), I might try implementing it if no one else has the inclination.

     

    On a side note, has anyone tried adjusting the enemy AI at all? Looking through the files, it seems like the only way to make serious changes would be to create an application to read in "aidecisiontrees.aidecisiontreebundle", present it in an interactable format, and then export it with proper formatting, but creating that seems like an awful lot of effort. Is there perhaps some Unity program that the developers made use of to create the decision trees? Or maybe some way to translate the custom AI file format to the expanded decision tree format, so I can mostly use the in-game editor with manual changes for specific enemy-only abilities?

    It just feels like the game handcuffs most of the enemy characters with horrible AI, like the lich in Flooded Cave who just sits there auto-attacking instead of casting spells because his AI keeps randoming the Fighter decision tree.

  8. 45 minutes ago, thelee said:

    more spaghetti code :(

    specifically it sounds like it's just the +2 all skills deal.

     

    also I didn't want to add more confusion at the time, but i didn't do a save/load cycle when I verified this on one of my test characters. I did do a zone transition - I started on worldmap, rested with Hylea, entered an area, quaffed the luminous adra potion. Blammo, got +4 all skills.  While there was an autosave and a zone load, there was no reloading of the game. Don't know if that affects anything.

    I cannot reproduce this. Performing the same actions: resting with Hylea's on world map, zone load, then drinking Luminous Adra Potion results in the Luminous Adra Potion being suppressed for me. Furthermore, loading the autosave after the transition, but before drinking the potion, *still* results in suppression. If I save/load after drinking the potion, though, then they stack.

    This would suggest that all of Hylea's Bounty is considered an active effect, but that is not so, as the +skill bonus stacks with other active skill buffs like Thief's Putty.

    So... ¯\_(ツ)_/¯

    Edit: note that I am testing this using iRoll20s to get Hylea's Bounty, and my transitions are to/from the Crucible in SSS and the world map around it.

  9. 33 minutes ago, Waski said:

    I've used hylea's bounty on 90% of my chars early and no matter how many save/loade cycles I did defences were always supressed by safeguard or borrowed instinct.

    Testing this out you are correct, Hylea's bounty's defense bonus is suppressed by Moonwell's active effect both before and after a save-cycle. Which is odd to say the least, since all the other food buffs I tested seemed to become passive after save/load.

    Edit: it even behaves as anticipated (passive after save cycle) with Hot Razor Skewers / Potion of Piercing Strikes, which is another buff I would expect to behave quite rigidly (weapon penetration). So I'm not sure what the deal is with Hylea's Bounty.

  10. 12 hours ago, Raven Darkholme said:

    You have to save and reload your game for potion and boounty to stack, it's a bug.

    Maybe this is common knowledge, but this extends to all resting buffs in the game as far as I can tell; they count as active bonuses until you save/load, then they count as passive bonuses. For example, Candied Nuts Dexterity bonus stacks with Alacrity after a save/load cycle.

    Spaghetti code. :(

    • Like 1
  11. As far as I can tell, no characters summoned by the party use their active abilities via the AI system except for "Substantial Phantom". Examples I've tested include Tekehu's "Ondra's Whip", "Watery Double", "Conjure Greater Blight", and "Lashing Vine"; Xoti's "Spiritual Ally"; and the pet summon "Visage of Concelhaut". I don't think it's just me, judging by similar posts like this one:

    However, it has been awhile, so if someone else is not experiencing this issue I'd be glad to hear about it.

     

    Reproduction:

    1. Have Tekehu in the party with access to "Ondra's Whip".

    2. Cast "Ondra's Whip" in combat in a position where it is unable to attack an enemy.

    3. Ensure the AI is on for the summoned character.

    3. Observe as the character refrains from using its "Dissolve" ability to get into melee range of an enemy.

     

    Looking through some of the game files, it's clear to see that many summonable entities do in fact have decision tables listed containing their active abilities. Continuing the example from above, in progressiontables.gamedatabundle, Ondra's Whip has the following progression data:

    Spoiler
    
    {
          "$type": "Game.GameData.CharacterProgressionTableGameData, Assembly-CSharp",
          "DebugName": "PT_Tentacle_Spell_OndrasWhip",
          "ID": "4d6030c5-286b-4d48-9a0a-61417498826f",
          "Components": [
            {
              "$type": "Game.GameData.CharacterProgressionTableComponent, Assembly-CSharp",
              "DefaultClassID": "00000000-0000-0000-0000-000000000000",
              "MultiClassID": "00000000-0000-0000-0000-000000000000",
              "Skills": [
                
              ],
              "SubclassesIDs": [
                
              ],
              "IgnoreResources": "false"
            },
            {
              "$type": "Game.GameData.BaseProgressionTableComponent, Assembly-CSharp",
              "AbilityUnlocks": [
                {
                  "Note": "Passive: Immobile",
                  "Category": "General",
                  "UnlockStyle": "AutoGrant",
                  "ActivationObject": "Self",
                  "AddAbilityID": "300265d1-800b-4614-a4bb-bb85d5a8362d",
                  "RemoveAbilityID": "00000000-0000-0000-0000-000000000000",
                  "Prerequisites": {
                    "MinimumCharacterLevel": 1,
                    "PowerLevelRequirement": {
                      "ClassID": "00000000-0000-0000-0000-000000000000",
                      "MinimumPowerLevel": 0
                    },
                    "RequiresAbilityID": "00000000-0000-0000-0000-000000000000",
                    "Conditional": {
                      "Operator": 0,
                      "Components": [
                        
                      ]
                    },
                    "VisibilityConditional": {
                      "Operator": 0,
                      "Components": [
                        
                      ]
                    },
                    "IsMutuallyExclusiveUpgrade": "true"
                  }
                },
                {
                  "Note": "Passive: VFX",
                  "Category": "General",
                  "UnlockStyle": "AutoGrant",
                  "ActivationObject": "Self",
                  "AddAbilityID": "06ba2069-08be-4835-a8a6-927b913b4b23",
                  "RemoveAbilityID": "00000000-0000-0000-0000-000000000000",
                  "Prerequisites": {
                    "MinimumCharacterLevel": 1,
                    "PowerLevelRequirement": {
                      "ClassID": "00000000-0000-0000-0000-000000000000",
                      "MinimumPowerLevel": 0
                    },
                    "RequiresAbilityID": "00000000-0000-0000-0000-000000000000",
                    "Conditional": {
                      "Operator": 0,
                      "Components": [
                        
                      ]
                    },
                    "VisibilityConditional": {
                      "Operator": 0,
                      "Components": [
                        
                      ]
                    },
                    "IsMutuallyExclusiveUpgrade": "true"
                  }
                },
                {
                  "Note": "Teleport",
                  "Category": "General",
                  "UnlockStyle": "AutoGrant",
                  "ActivationObject": "Self",
                  "AddAbilityID": "ac75b376-a057-48b6-ad13-26d6d8950736",
                  "RemoveAbilityID": "00000000-0000-0000-0000-000000000000",
                  "Prerequisites": {
                    "MinimumCharacterLevel": 1,
                    "PowerLevelRequirement": {
                      "ClassID": "00000000-0000-0000-0000-000000000000",
                      "MinimumPowerLevel": 0
                    },
                    "RequiresAbilityID": "00000000-0000-0000-0000-000000000000",
                    "Conditional": {
                      "Operator": 0,
                      "Components": [
                        
                      ]
                    },
                    "VisibilityConditional": {
                      "Operator": 0,
                      "Components": [
                        
                      ]
                    },
                    "IsMutuallyExclusiveUpgrade": "true"
                  }
                }
              ],
              "DefaultDecisionTrees": [
                {
                  "AIDecisionTree": {
                    "GuidString": "1b0dd299-2753-4688-8e69-93dfd950445d"
                  }
                }
              ],
              "DecisionTreeSelectionType": "RandomOrder",
              "DefaultCustomAIID": "00000000-0000-0000-0000-000000000000",
              "DefaultCustomAI2ID": "00000000-0000-0000-0000-000000000000"
            }
          ]
        }

     

    The default decision tree listed above ("1b0dd299-2753-4688-8e69-93dfd950445d", found in aidecisiontrees.aidecisiontreebundle) does in fact contain conditionals suggesting that when the whip is not in melee range of an enemy, it should cast Dissolve to approach such an enemy. I briefly looked at the AIController.cs code to see if I could spot the problem, but I don't really have the familiarity needed to do so.

    I think this could potentially be an easy bug fix that could provide a lot of value to the game; instead of having to micromanage every summon to use their active abilities, or simply avoiding summons with actives as I currently do, they could automatically use them in most combat scenarios. Furthermore, most of them already have the decision trees in place to do it, they are simply not enabled correctly! For some summons, like Watery Double, the spell becomes entirely worthless without the decision tree, since it is not controllable and refuses to use any of its supposed abilities.

    I assume something special was done with "Substantial Phantom" to make it actually recognize its decision tree, so if anyone has any idea what it is, I'd love to hear it to know if I could implement the fix myself with a small mod.

    Anyways, thanks for reading.

  12. In general, "conversion" bonuses (miss to graze, graze to hit, etc.) are much worse than they seem, as Enoch has been alluding to. To compare, 3 accuracy (equivalent to a single level-up) is effectively 12.5% miss to CRIT against enemies with parity defense.

    I think the mistake you may be making is giving your tank both high armor and high deflection. Pick one, not both, and you'll be in a better position to have a durable character that can still lay down some pain.

    Edit: though as a Crusader, you may not need either if you take some of the tanky passives in both of the trees.

    • Like 1
  13. 6 hours ago, Purudaya said:

    The right-click description of the modal is correct, it's just the tooltip from the action bar/whatever that still uses the old text - at least in my experience.

    I agree with you about the modal change. Most of my sabre-focused characters are low-deflection anyway, so a -10 penalty doesn't really feel like it balances out the much more valuable penetration increase. In my current community patch playthrough, it feels insignificant enough that I just leave the modal on and forget it. 

    Maybe changing the penalty from +50% recovery time to +20% would feel like a more appropriate malus.

    image.png.e58e97d7380af0ca5b473f0629433140.png

    From the previous thread, it seems like the reasoning was to give situations where it's preferable to use the modal rather than switching to another weapon type, at least from a purely offensive perspective. But if that's the case, then...why just sabres? Why not all of the other weapons with that same modal? And then shouldn't swords get something to compensate such that they are still a worthwhile option? Besides, there are already reasons not to switch: switching weapons causes recovery, you may not have the appropriate damage type available, you may have a defensive weapon switch instead of an offensive option, and so on.

    Anyways, since it seems like there's already been ample discussion of this I doubt anything will really change their minds. Fortunately, the creators of the patch made it extremely easy to modify to personal taste, so I'll probably just remove that component and leave it at that unless something is off in my reasoning.

    Now if only I could modify the AI behavior routines to switch modals on/off automatically in slight underpenetration situations...

  14. 14 hours ago, Purudaya said:

    Sorry if this has already been posted, but I spotted a small text-related bug/oversight in the current patch: the sabre modal Windmill Slash tooltip still says "gain penetration at the cost of recovery time" rather than "at the cost of deflection." Thanks as always for your continued work on this :)

    I don't seem to have this problem in my game. Speaking of the sabre modal, though, I don't quite understand why it was changed. Sabres seem like a much better version of swords: they exchange a second (often weak) damage type, Pierce, for +10% damage/+1 Penetration, and have the same powerful modal with less downside (-10 Deflection instead of the sword's -15). Furthermore, why change only sabres and not all of the "weak" offensive modals: stilettos, war hammers, maces, rapiers... Seems out of balance.

    On a different note, any thoughts about changing another abusable item: Lethandria's Devotion? Since the first tick of healing happens instantly when you switch this in, you can spam switch with this to have effectively infinite healing. I know it's easily avoidable, but if it's an easy fix somehow it might be a nice tweak.

    Finally, has anyone else experienced my issue with Chain Lightning refusing to bounce back to targets it's already hit? Still curious if a mod I'm using changed the ability somehow or if it's an intentional limitation by the developers.

  15. Is Chain Lightning supposed to be unable to bounce back to targets it's already hit once? It seems like other bounce spells (e.g. Minoletta's Bounding Missiles) can bounce back, but I can't get CL to do so. It's a shame, because being able to hit a target several times seemed like the main reason to cast it.

    Edit: I suspect this is a bug, or maybe it's something specifically wrong with my game that could be fixed somehow. In attacks.gamedatabundle, "Chain_Lightning_Ranged" has the following component:

    "BounceData": {
                "Bounces": 4,
                "Multiplier": 0.9,
                "Range": 7,
                "InRangeOrder": "true",
                "NoRepeatTargets": "false",
                "AlwaysBounceAtEnemies": "true",
                "Delay": 0,
                "NeverBounce": "false"
              },

    Meanwhile, "Minolettas_Bounding_Missiles_Ranged" has the following:

    "BounceData": {
                "Bounces": 2,
                "Multiplier": 1.2,
                "Range": 2,
                "InRangeOrder": "false",
                "NoRepeatTargets": "false",
                "AlwaysBounceAtEnemies": "true",
                "Delay": 0,
                "NeverBounce": "false"

    So I think CL is supposed to be able to bounce back to targets already hit once ("NoRepeatTargets": "false"), but perhaps is unable to do so because it has to hit targets in range order ("InRangeOrder": "true").

     

    Edit2: assuming you consider this behavior unintentional, the following code "fixes" this "InRangeOrder": "true", "NoRepeatTargets": "false"" issue in all the spots I found it by removing the range order requirement:

    Spoiler
    
    {
    	"GameDataObjects": [
    		{
    			"$type": "Game.GameData.AttackRangedGameData, Assembly-CSharp",
    			"DebugName": "Chain_Lightning_Ranged",
    			"ID": "49a61f8c-cf41-46a5-b034-e2c74e1d822e",
    			"Components": [
    				{
    					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
    					"BounceData": {
    						"Bounces": 4,
    						"Multiplier": 0.9,
    						"Range": 7,
    						"InRangeOrder": "false",
    						"NoRepeatTargets": "false",
    						"AlwaysBounceAtEnemies": "true",
    						"Delay": 0,
    						"NeverBounce": "false"
    				    }
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.AttackRangedGameData, Assembly-CSharp",
    			"DebugName": "Chain_Lightning_Stormspeaker_Ranged",
    			"ID": "d5d99d4b-6db3-4352-abdd-8434ddd5b7bb",
    			"Components": [
    				{
    					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
    					"BounceData": {
    						"Bounces": 4,
    						"Multiplier": 0.9,
    						"Range": 7,
    						"InRangeOrder": "false",
    						"NoRepeatTargets": "false",
    						"AlwaysBounceAtEnemies": "true",
    						"Delay": 0,
    						"NeverBounce": "false"
    					}
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.AttackRangedGameData, Assembly-CSharp",
    			"DebugName": "Scroll_of_chain_lightning_Ranged",
    			"ID": "252acdbb-eb15-4815-8a9e-0f0a57aed610",
    			"Components": [
    				{
    					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
    					"BounceData": {
    						"Bounces": 4,
    						"Multiplier": 0.9,
    						"Range": 7,
    						"InRangeOrder": "false",
    						"NoRepeatTargets": "false",
    						"AlwaysBounceAtEnemies": "true",
    						"Delay": 0,
    						"NeverBounce": "false"
    					}
    				}
    			]
    		},
    		{
    			"$type": "Game.GameData.AttackRangedGameData, Assembly-CSharp",
    			"DebugName": "Woven_waves_Ranged",
    			"ID": "6a35ea4f-f432-4e39-abb8-017e3f9950c7",
    			"Components": [
    				{
    					"$type": "Game.GameData.AttackBaseComponent, Assembly-CSharp",
    					"BounceData": {
    						"Bounces": 2,
    						"Multiplier": 0.5,
    						"Range": 3,
    						"InRangeOrder": "false",
    						"NoRepeatTargets": "false",
    						"AlwaysBounceAtEnemies": "true",
    						"Delay": 0.5,
    						"NeverBounce": "false"
    					}
    				}
    			]
    		}
    	]
    }

     

    Only tested it on the Wizard's version of Chain Lightning though.

  16. 13 minutes ago, Phenomenum said:

    It's designed as single target spell. Implementation trough weapon is just a matter of choice (by design). I think.

    It designed less for damage, but more for healing + debuff. Do you remember if all damage dealt returns to caster as health? Or only certain % of damage?

    I just checked and it's 20%, just like Concelhaut's Parasitic Quarterstaff. It's kind of a cool spell; requires the Wizard to enter melee, targets Will(!) instead of Deflection, and is a source of single target damage and self healing. But as it stands right now you're far better off just summoning the staff, which is a level one spell with higher penetration and a substantial duration.

    If it were me, I think I'd try increasing the life steal to 100% of damage dealt and making the damage type Raw instead of Corrode (it targets Will after all). Also, I would remove the interaction with Essential/Substantial Phantom, which is clearly just an unintended side effect that can't really persist with an interesting version of this spell.

    Just extending the duration to a few more attacks keeps it much too similar to the staff, in my opinion.

  17. On 6/21/2019 at 3:41 AM, Boeroer said:

    Again: trinkets (as I/we want to do them) are not about power or buffing but about enhanced versatility when it comes to spell choice. Just because a class has more spells to choose from doesn't necessarily mean they are more powerful (in an ideal system where all spells are equally useful). Priests have less spell choice than Druids have less spell choice than Wizards. Per se - without grimoires. That means that wizards already are a lot more versatile when it comes to possible/feasible/fun to play build options. This has nothing to do with their level of power - but all with the spell choice. IN that regard, Druids are better than Priests (more spells to choose from) but worse than Wizards. And then Wizards get a huge, huge amount of additonal spell choice via grimoires on top.

    Thus it's no sursprise that the biggest complaint about Priests (that was voiced very early - even during beta and right after release) is that they feel so "railroaded" when it comes to spell choice at level up. Not only do priests choose from the most restricted spell pool - but also it is the spell pool with the biggest proportion of rather circumstancial spells, some of them even a bit redundant (Blessing vs. Dire Blessing for example).  An early suggestion (see @Gromnir's early posts about that but also mine and others'), after the horrible restrictions of the first iteration of Priest subclasses were lifted (restricted access to spells because of subclass choice) was to give Priests trinkets that add spells (not as spell uses but as spell choices) just like grimoires do.

    [...]

    Because of that I (and others) argue that Priests need trinkets that widen their spell choice a bit. Same with Druids, but to a lesser extend. Druids have some really nice items and subclasses that boost certain keywords (elemental in general, shock, storms, beast, plant, rejuvenation) but none for decay for example. Thus the first impulse is to build an Ancient (Beast/Plant), Fury (all elemental+storms) or Livegiver (Rejuvenation). Few people would pick an Animist who specializes on decay spells (if it's about power) because it's inferior. So in order to open up that direction I would add a trinket with a few decay spells and a PL bonus to decay. This wouldn't make a decay druid more powerful than a beast druid. So no power creep. It would him make a bit more powerful than before, sure. But he wasn't on par in the first place. 

    I'm not sure this is the right approach for increasing build diversity. If you create trinkets that provide a lot of the situational spells, then isn't there even less reason to choose them at level-up than without the trinkets? In my opinion, the better solution is to increase the applicability of the situational spells, or buff redundant (e.g. Blessing/Dire Blessing) or underpowered spells.

    Let's take your example of the decay Druid. It sounds like it would be nice for people to be able to choose decay spells at level-up and feel like they made a good decision. Creating a decay trinket that hosts a variety of those spells feels bad unless you are specifically metagaming towards it: suddenly you've found a trinket that replaces all the spells you already wanted to pick! If the trinkets are intended to be frequently swapped, wouldn't it be better if the decay spells were the ones chosen by the decay Druid, not put on the trinket? In this case, I would argue that the solution is to provide the support for those spells that you deem to be lacking; a subclass with a bonus for decay spells and some itemization to boost their power level. Not a trinket that supplants the build and even further reduces the incentive to choose those spells.

  18. On 6/10/2019 at 4:16 AM, Rimiu said:

    Would anyone be able to help me out with a female nature godlike?

    I searched all 4 threads and found only 3 or so images.

     

    I really like this one though.

     

    NhtPiI0.png

     

     

    There was an edit of this on the Nexus but the _si file seemed corrupted and the _convo was just the same image a bit darkened I think.

     

    I would highly appreciate a watercolor of this because there isn't enough female Nature Godlike love.

    natura_lg.png.4e6580e1d25c12b5816d3341b18f3fe8.pngnatura_sm.png.f3417c2fd74e584f5ca47f13d7d586c9.pngnatura_convo.png.f96bf9d58637f894960316e7a00716d4.pngnatura_si.png.cd3a1d2fffc97c523a4af63a1d4fe6e2.png

    • Like 5
  19. On 6/8/2019 at 4:22 PM, lapynheart said:

    Can someone watercolor these one please? 

    tumblr_plwhmjOgvn1u1suvvo1_500.jpg

    moonlike_lg.png.0d15f3fa56777d5c6ac0c9f3d77d184a.pngmoonlike_sm.png.45b1751fc8558cdcc0a7a5106c799c6c.pngmoonlike_convo.png.b84f2fd6b2122b771569263033fe7931.pngmoonlike_si.png.672016f7beb49598eef99267de8fa326.png

    On 6/8/2019 at 8:13 PM, WesSoto said:

    Any water portrait experts able to make these strong beautiful ladies into Watchers for Deadfire? I think many would find them worthy to be played in on PoE I hope. ❤️ 

    Credits to the artists which I'll post links below for those interested. 


    1st pic - https://www.deviantart.com/ynorka/art/Amarae-portrait-587823085

    2nd pic - https://www.deviantart.com/bablar/art/Pretty-Parda-778447092

    3rd pic - https://www.deviantart.com/rhytz/art/Freedom-isn-t-Free-v2-498393337

    Ynorka+Chiu-www.kaifineart.com-1.jpg

    dcvgtmc-c0ee2c25-cc98-4b49-a1f2-0d5b1805

    freedom_isn_t_free_v2_by_rhytz_d88qard-f

    amarae_lg.png.a273fac5ef14519e084c1f0e9be8d0a8.pngamarae_sm.png.8fa03cc95da8182c9f08b0448c48efb3.pngamarae_convo.png.1add0109007f4a10c826f312c83ef348.pngamarae_si.png.4d1e9e84536f91397a7fe031a236edee.png

    parda_lg.png.d562487a8b6e2653c28981437be94896.pngparda_sm.png.ba0e01a54cb3bd8df6971513a7efc0af.pngparda_convo.png.31adbd9c466e98a13902bdcc64bc5188.pngparda_si.png.a3bc548ed0589f750941e38d92302c43.png

    fitzroy_lg.png.4a944a2376c76d36c05590ad34df9cf2.pngfitzroy_sm.png.2db97db7b7041d7ebe32beb11482f853.pngfitzroy_convo.png.1db068133cde6d348d4c2a9775de7839.pngfitzroy_si.png.7fe5eba45a1c7f2728875e0de0deed11.png

    • Like 7
    • Thanks 1
  20. 1 hour ago, Boeroer said:

    @Phenomenum.

     

    With Cadebald's Blackbow: also like Phenomenum said: it does more harm than good (even it it makes total sense): the implementation of immunities (on enemies) prevents that a weapon does damage at all if it is tagged with  the fitting elemental keyword: no matter which type of damage it actually does. Example:

    if you fire at a shock immune enemy with Essence Interrupter (which is keyworded with shock) you won't so any damage even though you have pierce/shock damage. The game first checks if the attack it self is keyworded with shock, discards it if that'sthe case and will not get to the point where it would check which damage type would be better. Thus: better to remove elemental keywords from all weapons which do have dual damage types or different damage types than the keyword: Dragon's Dowry (does pierce damage but has fire keyword: no damage against fire immune enemies).

    There are weapons that do the same damage type as the keyword they are tagged with: Kalakoth's Minor Blights for example. For those the keywords are fine because they deal exactly the type of damage they are keyworded with. So no harm done: if the enemy is immune to fire an you attack it with a fire keyworded attack taht also does fire damage everything works as expected - in other words: no damage but no surprise.

    Wouldn't Concelhaut's Draining Touch fit into the Kalakoth's Minor Blights / Firebrand category? It does exclusively Corrode damage, so the Acid keyword wouldn't cause any problems. This could also apply to Caedebald's Blackbow and the Acid keyword, thought it's less clear that it deserves the keyword: a bolt of negative energy might be tough to describe as acidic even if it does cause Corrode damage.

    Of course, if it's a matter of balance that's a different story. I was mostly thinking that there were a lot of abilities in the Wizard tree that seemed to fit the Spirit of Decay mold but were missing the keywords, and it seemed a shame.

    Anyways, I'll stop derailing the more productive discussion now. Thanks for humoring me.

×
×
  • Create New...