Skip to content

#10758 [ALL] Thieving penalties from items should always be applied

ShadeBlackShadeBlack Member Posts: 9
edited November 2014 in IWD:EE Bugs (v1.4.0)
I made a previous thread here:
http://forum.baldursgate.com/discussion/37302/thieves-and-armor-with-theif-skills#latest

I'm confused about the armor penalty results I'm getting.
Unsure if it's a bug - but seems like it is.

anyone able to confirm?
Post edited by Troodon80 on

Comments

  • elminsterelminster Member, Developer Posts: 16,317
    Post a save file with this problem. It makes it a lot easier to test.

    Also repost here what steps you took to get this problem.
  • Troodon80Troodon80 Member, Developer Posts: 4,110
    edited November 2014
    It may well depend on your dexterity and race. The default starting thief, Kirika, has a base dexterity score of 19. With Keylessa's Armor, you get a total dexterity score of 20. In your case, a save game will be required in order to find out what the base stats are, and also what ability scores and race your character is. I'll give it a go with the base pre-generated character

    The base scores at level 1 are actually:
    Pick PocketsOpen LocksFind TrapsMove SilentlyHide in ShadowsDetect IllusionSet Traps
    020200000


    What's happening here is that penalties from items are not being applied past 0.

    Racially, you get these bonuses:
    Pick PocketsOpen LocksFind TrapsMove SilentlyHide in ShadowsDetect IllusionSet Traps
    201510202000


    20 Dexterity grants the following:
    Pick PocketsOpen LocksFind TrapsMove SilentlyHide in ShadowsDetect IllusionSet Traps
    2025151818015


    Applying the following penalties, where the base score is higher than 0 using the following modifiers:
    Open Locks -5
    Find Traps -5
    Pick Pockets -20
    Move Silently -10
    Hide in Shadows -10

    Applying those penalties to the sum of the stats:
    Open Locks (20 + 25 + 15) - 5 = 55
    Find Traps (20 + 10 + 15) - 5 = 40

    Because these are already on 0, the item penalties are not being applied:
    Pick Pockets (0 + 20 + 20) = 40
    Move Silently (0 + 20 + 18) = 38
    Hide in Shadows (0 + 20 +18) = 38
    Detect Illusion 0
    Set Traps (0 + 15 ) = 20

    As you can see here, the second section actually has an increase; i.e. Pick Pockets goes from 35, has a penalty (not) applied of -5, and goes up to 40. That's an effectual increase of 10.

    You will see the penalty more when you increase your level. I can replicate the issue very easily, but I'm not sure what the status on this is with regards to being intended or not.
  • CamDawgCamDawg Member, Developer Posts: 3,438
    Yeah, @Troodon80‌ has it sorted. The racial bonus table (which are actually base thieving skills + racial bonuses) and dexterity bonus table are getting applied last. The "base scores" that get calculated prior to this are not allowed into negative ranges. So what's happening is that the engine calculates pickpocketing--the base is zero, the armor should drop it to -20 but it holds at zero, then the racial and dexterity bonuses get added (+20 and +20) for an effective score of 40, when it should be 20.
  • ShikaoShikao Member Posts: 376
    edited November 2014
    @Troodon80 very nice and detailed explanation. However, I am not yet convinced it explains both examples from OP.

    Example 2 - the only strange thing there was Hide in Shadows being reduced by only 15% instead of 20%, but that would be consistent with explanation above, most likely OP has only 15 base score in that skill.
    However, Example 1 still defies rules. All thieving skills are increased by appropriate number matching Dex increase. Pick Pocket and Open Locks are both at 100, before equipping Kaylessa's Armor +3, which almost certainly indicates both skills have some basic score. Hence the armour penalty should negate the additional Dex bonus, which doesn't happen.

    @ShadeBlack‌ would be nice if you provide us with race of your Thief/Fighter. Also inviting @CamDawg to have a second look.
  • Troodon80Troodon80 Member, Developer Posts: 4,110
    @Shikao, the only way of knowing whether it defies the rules or not is to know what the base values are in the save game.

    @ShadeBlack, could you zip and attach a save game here?

    For now, I have reported the aforementioned issue of the scores not being decreased past zero. Tagged as #10758. If it turns out there's another issue here, I'll get that one reported as well. :-)
  • ShadeBlackShadeBlack Member Posts: 9
    Apologies for the delay - i don't get much time for myself. I'll get a save game posted as soon as I can!
  • ShadeBlackShadeBlack Member Posts: 9
    edited November 2014
    Hello again!

    First of all, I wanted to say thanks to everyone here and especially Troondon80 for the brilliant explanation.
    I did some further looking into the stats involved and I think the problem is as exactly as you've said already...

    my character's base stats are
    str 18/00 dex 18 +1 (elf) con: 17 int: 12 wis: 12 cha: 8 tot: 87

    the armor also has +1 so it does end up at 20 dex
    difference from 19-20 is
    OL: 5 FT: 5 PP: 5 MS: 3 HS: 3 DI: 0 ST: 5
    DEX@19ARMORDEX+1TOTAL
    OL100-5+5100
    FT75-5+575
    PP100-20+585
    MS30-10+333
    HS30-10+333
    DI0000
    ST1000+5105

    that might not be clear enough...

    What I expect:
    BASEELFDEX@20ARMORTOTAL
    OL75+5+25-5100
    FT60+5+15-575
    PP65+20+20-2085
    MS0+15+18-1023
    HS0+15+18-1023
    DI0+0+0-00
    ST90+0+15-0105

    What seems to happen:
    BASEARMORTOTALELFDEX@20TOTAL
    OL75-570+5+25100
    FT60-555+5+1575
    PP65-2045+20+2085
    MS0-100+15+1833
    HS0-100+15+1833
    DI0-00+0+00
    ST90-090+0+15105
    So what should happen is
    MS : 0 -10 = -10 +15 +18 = 23

    So I guess everything is correct except the MS / HS wherein the problem is already detailed by Troondon80.

    I exported my fighter thief to a new save for testing if it is still required...
    Here's the save file: http://www.solidfiles.com/d/fb67a745f9/000000011-Adamar-test.7z
    Post edited by ShadeBlack on
Sign In or Register to comment.