Skip to content

Is haste supposed to do this? (Several bugs)

[Deleted User][Deleted User] Posts: 207
edited April 2017 in Troubleshooting
Haste seems to double poison damage (not instantaneous poison damage), regeneration rate, blade barrier/globe of blades castings per round. That intended? I think it makes sense given the lore of that spell, but it probably wasn't intended.

EDIT: Oh, and I just noticed it seems to double the speed of the casting graphics, thus halving their duration.
Post edited by [Deleted User] on
[Deleted User]

Comments

  • GalactygonGalactygon Member, Developer Posts: 412
    I've been able to repro these issues in SoD. Haste is not supposed to affect the frequency of repeating effects and the speed at which the casting graphics play. Reported repeating effects speedup and casting graphics speedup as two seperate tickets.
    [Deleted User]JuliusBorisov
  • By the way, @Galactygon , Stealth cooldown is also halved when you're hasted. Is that supposed to happen?
  • GalactygonGalactygon Member, Developer Posts: 412
    Can you repro this with a savegame? I do not experience this behavior when I have 2 thieves in the party one of them is hasted and the other is not and I Ctrl+J both of them to a nearby point to trigger the stealth cooldown.
  • [Deleted User][Deleted User] Posts: 207
    edited April 2017
    @Galactygon there's no need for a savegame. Just started a game in TOB (everything is up to date, no mods) with a plain Thief, and compared cooldowns without and with haste (use that handy Oil of Speed you have in your quick item slot*), after quickly activating and deactivating Stealth. In the former case the cooldown lasts for about 6 seconds, and 3 in the latter.

    If you played a Shadowdancer before, it's quite obvious, because if you're hasted, you can backstab twice per round using ONLY your stealth ability, without needing invisibility potions. Activating the thief aggressive script is also useful to see this. Deactivate stealth after your character automatically enter stealth, and about 3 seconds later, it will enter stealth again (or try to).



    *I just noticed the two potions you have in your quick item slots are inaccessible, that is, you need to unequip and equip them to be able to use them as a quick item. So I guess that's another bug I have to report. EDIT: It seems after loading the "chapter start" save, this problem vanishes. Don't know why.
    Post edited by [Deleted User] on
  • AmmarAmmar Member Posts: 1,295
    Isn't Oil of Speed basically improved haste not level 3 haste? Improved haste always did what you describe. Normal haste did not. Seems like classical BG behaviour.
  • [Deleted User][Deleted User] Posts: 207
    edited April 2017
    Ammar said:

    Isn't Oil of Speed basically improved haste not level 3 haste? Improved haste always did what you describe. Normal haste did not. Seems like classical BG behaviour.

    No. It's normal haste (which is also bugged, by the way, it's supposed to add 1 attack per round, but that's not true, for example if you have 5/2 attacks per round, you will have 3 attacks per round if hasted, instead of the correct amount, which is 7/2 attacks per round).

    I did not test the actual spell. There must be some difference between the spell and oil of speed, since you can use the latter in conjunction with Offensive Spin (I don't know the specifics), which is another possible bug, too. I'm pretty sure it applies regardless. I'll update this message as soon as I test it, just in case.

    UPDATE: Both Haste and Improved Haste cause this.
    Post edited by [Deleted User] on
  • [Deleted User][Deleted User] Posts: 207
    edited April 2017
    I have more bugs to report:

    During my tests I noticed I was casting Haste and Improved Haste with scrolls faster than normal. They have a casting time of 3, but after hasting my character, it looks a lot more like 2. Created a "nalia15" and added her to the party to compare spells hasted & "unhasted". Plus, the hasted character begins the casting before the "unhasted." (Don't know if the last one is a bug or not).

    Tried casting Wail of the Banshee from a scroll. It has a casting time of 9, but after hasting the character, it looks more like 4. Pretty big difference.

    The speed of the casting graphics was doubled as well, but it matches the modified casting time of those scrolls. So unlike with memorized spells, the casting time actually matches the "hasted" casting graphics.


    Tested in BG2EE TOB.
    Post edited by [Deleted User] on
    billbisco
  • [Deleted User][Deleted User] Posts: 207
    edited April 2017
    @Gate70 You might want to take a look at these bugs. To be honest I can't believe these bugs weren't reported at some point by someone.

    In short, these are the bugs I noted:

    - Poison damage over time and regeneration are doubled (or at least significantly increased) while hasted.
    - Globe of Blades and Blade Barrier get two castings per round after being hasted.
    - Stealth cooldown is halved while hasted.
    - Casting graphics are much faster. In the case of scrolls, the casting time of the spell matches the duration of the faster casting graphics, so you can cast them significantly faster.
    - Oil of speed is stackable with Offensive Spin. (Oil must be used AFTER Offensive Spin) -> EDIT: Nope, BEFORE.
    - Haste does not always add an extra attack. Sometimes it just adds half. For example 5/2 -> 3, instead of 7/2.
    Post edited by [Deleted User] on
    [Deleted User]
  • Gate70Gate70 Member, Developer Posts: 3,870
    Hi
    I believe @Galactygon is best placed to deal as he knows more in this area than I do. I've had a quick look through Redmine though as one bit sounded familiar, and found two references.

    Internal report 6492 was done for Oil > spin but would not cover the scenario you identified.
    Internal report 4296 has been reported for haste 5/2 -> 3.
    Thanks
    [Deleted User][Deleted User]JuliusBorisov
  • GalactygonGalactygon Member, Developer Posts: 412
    edited April 2017
    @HalfCelestial

    Thanks for clearing this up, I have now repro-d the stealth cooldown speedup for hasted characters as a separate ticket

    @Kjeron

    Thanks for submitting a comprehensive report, I really appreciate it. I've been able to reproduce and report the following issues:
    • Oil of Speed haste type and description should match.
    • Slow should not decrease regeneration rate.
    The following issues have already been reported earlier:
    • Stealth cooldown should not be sped up when hasted
    • Casting graphics should not be sped up and be in sync with actual casting time when hasted
    • Casting time from scrolls and ForceSpell(Point)(RES) actions should not be sped up when hasted.
    • Repeating effects (poison, disease, regeneration, opcode 232, apply repeating eff) should not be sped up when hasted.
    I cannot reproduce the following issues:
    • Slow does not decrease poison damage rate.
    • Slow does not decrease repeating .eff application rate (i.e. Insect Plague).
    Offensive Spin dispels effects from POTN14.itm (as opcode 321 dispels based on parent resource as recorded at 0x94 of EFF V2 which can be either an .itm or .spl) so this works as intended when I try to reproduce it. Most of the other effects (i.e. casting speed, stealth cooldown, 1 spell/2 rounds increase) are intentional when the character is slowed.
    [Deleted User]Gate70JuliusBorisovbob_veng
  • [Deleted User][Deleted User] Posts: 207
    edited April 2017


    Offensive Spin dispels effects from POTN14.itm (as opcode 321 dispels based on parent resource as recorded at 0x94 of EFF V2 which can be either an .itm or .spl) so this works as intended when I try to reproduce it. Most of the other effects (i.e. casting speed, stealth cooldown, 1 spell/2 rounds increase) are intentional when the character is slowed.

    @Galactygon

    Well, it looks like I was wrong. You have to apply it before and not after Offensive Spin. Then, they stack. Looks like Offensive Spin prevents you from using Oil of Speed but it does not dispel the effects of oil of speed.

    Poison is definitely slowed if the poisoned creature has a slow effect. I used Nalia to slow and Dorn to poison to check this. I don't know if the total damage is affected though. I'll update this as soon as I check. Should be 1 poison damage per second, but if slowed, the damage is about every 2 seconds.

    UPDATE: @Galactygon It's exactly as @kjeron said, a max level poison weapon inflicts only 6 instantaneous damage plus 12 points of damage, one every two seconds (should be a total of 24, 1 every second). also confirmed Blade Barrier is slowed as well (1 casting per 2 rounds), when your character is slowed. I don't know why you couldn't.

    I haven't tried Insect Plague, though, but if you two say it should be the same, then, it should happen as well.

    Post edited by [Deleted User] on
  • ZaghoulZaghoul Member, Moderator Posts: 3,938
    @kjeron I actually find the poison, disease, and regeneration increases/decreases to hasted/slowed creatures interesting, as a hasted or slowed metabolism could theoretically, IMO, have a reaction to those as you have them listed. :) It sure did have did seem to have an effect with ol Prism it seemed. ;)
    [Deleted User]
  • Zaghoul said:

    @kjeron I actually find the poison, disease, and regeneration increases/decreases to hasted/slowed creatures interesting, as a hasted or slowed metabolism could theoretically, IMO, have a reaction to those as you have them listed. :) It sure did have did seem to have an effect with ol Prism it seemed. ;)

    That's why I think lore-wise it might make sense, but not necessarily fair.
  • ZaghoulZaghoul Member, Moderator Posts: 3,938
    @HalfCelestial Hehheh. Certainly might make one think twice fighting an astral phase spider while hasted with no antidotes at hand.
    [Deleted User][Deleted User]
  • CamDawgCamDawg Member, Developer Posts: 3,438
    The haste opcode works exceptionally bad with offhand attacks; there's a reason why Fixpack (and Baldurdash before it) generally swap haste for a combo of +ApR and movement speed bonus. The tradeoff is that the engine does handle any combination of hastes and slows you care to throw at it whereas stacking of individual movement bonuses and +ApR falls down pretty quickly.

    It would certainly be worth it to fix this at an engine level.
    AndreaColombo[Deleted User]bob_veng
  • AlonsoAlonso Member Posts: 806
    Are these bugs fixed now? I couldn't find anything in Redmine.
  • AlonsoAlonso Member Posts: 806
    Based on the information in this thread I've written new descriptions of Haste and Slow for my Improved Spell Descriptions mod:

    HASTE
    This spell makes allied creatures function at double their normal movement rate and gain a -2 initiative bonus. They also receive a bonus to their number of attacks per round, which sometimes is one extra attack per round and other times is half an attack per round. A creature moving at 6 and attacking once per round would move at 12 and attack twice per round. But a creature attacking 3/2 times per round would only increase its attacking speed to 2 per round.

    Other effects:
    • Halves the casting time of scrolls, but not of memorized spells
    • Halves the cooldown of Stealth.
    • Increases the speed of poison and disease damage dealt over time.
    • Doubles the speed of regeneration rate and the number of hits per round of Summon Insects, Creeping Doom, Blade Barrier and Globe of Blades.

    This spell is not cumulative with other similar magic. It negates the effects of a Slow spell.


    SLOW
    A Slow spell causes creatures to move, attack and cast spells at half of their normal rates. Slowed creatures have an Armor Class and attack penalty of -4. It negates Haste.

    Other effects:
    • Halves the speed of regeneration rate, and the hits per round of Summon Insects, Creeping Doom, Blade Barrier and Globe of Blades.
    • Decreases the speed of poison and disease damage dealt over time.
    • Doubles the cooldown of Stealth.


    I've skipped the part about combining several instances of each spell because it seems self evident to me: You cast Haste on a creature, now it's hasted. Then you cast Slow and it's back to normal speed. Then you cast Haste again and it's hasted again. It seems very intuitive to me, unless I've missed something about how this works.
  • kjeronkjeron Member Posts: 2,367
    Alonso wrote: »
    I've skipped the part about combining several instances of each spell because it seems self evident to me: You cast Haste on a creature, now it's hasted. Then you cast Slow and it's back to normal speed. Then you cast Haste again and it's hasted again. It seems very intuitive to me, unless I've missed something about how this works.
    The order doesn't matter as it's not a replacement. Whichever effect exists in greater numbers at any given time will take precedence. You can stack Oil of Speed with Haste spell and ignore the first Slow spell cast on you. Whereas if you were hit with both the Slow spell and Contagion a single Haste spell would not be enough to move at normal speed.
    However, the -4 AC/THAC0 from slow always applies, as those are not tied to the slow effect itself.

    I would reword "attacks and casts spells at half of their normal rates" to
    "attacks, uses items, and casts spells at half of their normal rates. In addition, spells take twice as long to cast."
    A spell's "rate" (once/round) doesn't have anything to do with it's cast speed, which leaves it ambiguous as to whether or not it's affected (it is).
    Alonso
  • AlonsoAlonso Member Posts: 806
    @kjeron: Nice, I understand. However, I'm not sure of how haste and slow effects stack with themselves. It looks like effects from the same source don't stack in any way, right?

    For instance, I understand that if you cast 2 consecutive slow spells on a creature, the second one has no effect, so the "slow quantity" is still 1. Therefore, if you then cast Haste on that creature, it's enough to cancel its slow effect. Whereas, as you explained, Slow + Contagion would raise the "slow quantity" to 2 and a single haste would not cancel the slow effect. But what if you cast Haste twice? Does it work then?

    Checking descriptions, I've come up with a list of sources of haste and slow:

    Slow: Slow, Contagion, Dark taint, Dolorous decay, Holy Word, Unholy Word, Writhing Fog, Set Special Snare, attacks of some monsters and weapons.
    Haste: Haste, Improved Haste, Sphere of Chaos, Oil of Speed, some wearable items.

    In an extreme example, a creature is struck by all the possible sources of slow: the 7 spells, plus the trap, plus a slowing attack from a monster and another one from a weapon. Does it get a "slow quantity" of 10 (7+1+1+1)? If so, does it mean that it needs hasting from 10 different sources to cancel the slow effects? Or 10 hastings from the same source?

    Wow, this is tricky... :D
  • kjeronkjeron Member Posts: 2,367
    Alonso wrote: »
    Whereas, as you explained, Slow + Contagion would raise the "slow quantity" to 2 and a single haste would not cancel the slow effect. But what if you cast Haste twice? Does it work then?
    Yes, you would be at normal speed until one of those effects ended.
    Alonso wrote: »
    If so, does it mean that it needs hasting from 10 different sources to cancel the slow effects? Or 10 hastings from the same source?
    By default, 10x haste from one source is no different from 10x different sources of haste with regards to it's quantity, so it wouldn't matter. However, the source of haste/slow does matter with regards to how individual sources block(haste) or remove(slow) each other.

    The "variants" of the "Slow Spell" are coded to remove any prior instances of themselves and all other such variants, as otherwise their -4 AC/THAC0 penalties would stack. In BG/SOD, that's: (Golem Slow, Wish Slow, Surge Slow, Beholder Slow, Vortex Web, and Wizard Slow).
    Writhing Fog blocks itself from affecting a creature more than once per round, regardless of if they save against it. (This one is an odd exception - though it's new so that may be why.)
    Any other type/source of slow will stack(quantity) with themselves, each other, one Writhing Fog, and one "Slow Spell".

    The Improved Haste spell will block further instances of the Level 3 Haste spell (Wizard or Ranger version) while it's in effect (but only those two spells, not any other variants). Otherwise, all haste sources stack(quantity), including [Improved/Normal] Whirlwind Attack (which is a haste effect).

    (This part gets far more complicated once mods are considered)
    Alonso
  • AlonsoAlonso Member Posts: 806
    @kjeron: While I want to make the descriptions in my mod very accurate, I agree with you that including all this info in a spell descriptions would be overkill. So I've summarized it as:

    HASTE
    This spell is not cumulative with other similar magic. It negates the effects of a Slow spell. However, if a creature has been affected by Slow several times, it takes several castings of Haste to cancel the slow effect.

    SLOW
    This spell is not cumulative with other similar magic. It negates the effects of a Haste spell. However, if a creature has been affected by Haste several times, it takes several castings of Slow to cancel the haste effect.

    I know this is inaccurate (at best), but, assuming I got all of this right, I'd say it's a decent compromise between accuracy and readability.
    kjeron wrote: »
    - If haste type is 'Weak', "Hit-able" Attacks for each 2-Round period will be reduced to half, rounded up, then split evenly between the two rounds, with an Auto-Miss attack added if necessary to keep it equal. This effectively rounds up the number of functional attacks per 6 seconds.
    What is a weak Haste?
  • kjeronkjeron Member Posts: 2,367
    Alonso wrote: »
    What is a weak Haste?
    AKA "Animation-only" (STATS.IDS) or "Movement rate only" (NI) haste. It's parameter2=2 for both haste opcodes (16/317), while p2=0 is "normal" and p2=1 is "improved". All three have the same affect on everything except APR, which they differ.
    Aside from mods, it's only used in the appropriately named "RUNRUN.spl", which certain creatures are apply to themselves during "run-away" blocks of their scripts (Cespenar, for example).
    Alonso
Sign In or Register to comment.