Skip to content

Outrunning fireballs

chimericchimeric Member Posts: 1,163
edited October 2017 in General Modding
I distinctly remember how in the original Baldur's Gate a party member with Boots of Speed, or hasted, or if he just started off right away, could outrun the fire wave from a fireball. Get out of the 30 foot radius and remain unsinged. In the EE game the fire damage is dealt instantly within "Trap size" of the projectile file. Those who are within 30 feet die, and the spreading fire is just eye candy. The fire spreads much faster than the leisurely wave of the old game, too. "Explosion size" in the PRO seems to be for decoration in fireball's case.

Is it possible to recreate the old spread mechanic? And control the speed of the fire wave?

Edited: with some poking around I understand this file a bit better... It's possible to send an "Explosion projectile" at those who are caught within the trap. It delivers the damage, and the projectile can be fast or slow. But it still always arrives, even if it has to follow the target around towers and through gates. An interesting possibility of a self-guiding projectile, by the way. We don't have any of that kind, projectiles like the magic missile are too fast for any tactical difference. Something slower but following enemies, something along the lines of Diablo's Blood Star... But for the fireball that's no good, still not something you can avoid. Doesn't a real spreading-circle AOE mechanic exist in the Enhanced Edition games at all?
Post edited by chimeric on

Comments

  • kjeronkjeron Member Posts: 2,368
    edited October 2017
    Speed of the visual is controlled by speed of the projectile.
    Speed of the effects is controlled by the explosion projectile field(0x21a), based on the speed of the specified projectile, it's current "None(None) - 1" is instant.

    You cannot outrun it though, you must evacuate the explosion size before it explodes.
    Ever being able to outrun it is likely due to this bug: https://support.baldursgate.com/issues/32810, which has been causing people to outrun bard songs.

    "Trap Size" is AFAIK indeed decoration for any one-shot, auto-explode projectile.
    It represents the projectiles Visual Range, and is capped at 448 ( = default player visual range).
    It is needed for those that hit repeatedly over time, or have a proximity trigger (actual traps).

    "Explosion Size" controls the radius of effect.
  • OlvynChuruOlvynChuru Member Posts: 3,079
    There is in fact a projectile that accomplishes what you want. If you set the explosion projectile of the fireball projectile to "Invisible Traveling," the fireball will only damage those who are reached by the flames. If a creature starts within the area of effect and then escapes it while the explosion is spreading, they won't get hit.
  • chimericchimeric Member Posts: 1,163
    edited October 2017

    There is in fact a projectile that accomplishes what you want. If you set the explosion projectile of the fireball projectile to "Invisible Traveling," the fireball will only damage those who are reached by the flames. If a creature starts within the area of effect and then escapes it while the explosion is spreading, they won't get hit.

    Perfect. @kjeron , why does that guy label it a bug? I think it's fine to be able to outrun an effect. Haven't we seen all those action heroes jumping "Aaaaaaaaaaaah!" with a big boom at their backs? Also if the spread is not instant but has some speed, we can have area spells that bounce off walls at a reasonable speed, and parties may be able to use that in close quarters for some clever extra damage. Damn, now I'm worried Beamdog will "fix" Invisible Traveling instead of putting a different projectile in that PRO. And about speed of the flames. You say it's controlled by Projectile speed, but that's the speed of the fireball itself, the blast spreads just as usual.


    Post edited by chimeric on
  • kjeronkjeron Member Posts: 2,368
    edited October 2017
    chimeric said:

    Perfect. @kjeron , why does that guy label it a bug? I think it's fine to be able to outrun an effect.

    It may well have been its originally intended function, but that's not what it's doing. More than just outrunning it, moving at all can enable you to dodge the effect, even towards the explosion.

    Speed controls both the traveling projectile and the spread rate. Compare a speed of 5 and 40, you should see a noticeable difference.
  • Son_of_ImoenSon_of_Imoen Member Posts: 1,806
    edited October 2017
    Seeing the title before I read the post, I was thinking in a completely opposite direction. Running away from the blast of the fire is something my frontliners do on a daily basis when getting out of the line of friendly fire. If I give my mage an order to launch a fireball and realise my fighter is too close for comfort, outrunning the blast following a shout of warning by the mage is very feasible.
  • ThacoBellThacoBell Member Posts: 12,235
    With explosions, there is a shockwave that hits before the flames can hit you (if there even are any).
  • chimericchimeric Member Posts: 1,163
    edited October 2017

    If I give my mage an order to launch a fireball and realise my fighter is too close for comfort, outrunning the blast following a shout of warning by the mage is very feasible.

    You are talking about getting out of where the ball will land. Not too difficult. It's what we all do, of course, but it lacks that fine can-I-make-it-in-time desperation.

    @ThacoBell , No there isn't. That's the problem. There is no shock wave - it's just instant damage within the radius. The flames are only pictures.

    @kjeron , Going anywhere with Invisible Traveling shakes off the fire damage, you say? Hmm. Well, I don't remember any times in the original BG when I moved and was caught in the flames and wasn't damaged. I would remember. So, if speed controls both the ball and the spread of the flames, how can I make a fast ball with slower flames? Secondary projectile? That flies in a good second afterwards. Also how about a bouncing AEO? For my Nova I'd like the lightning wave to bounce off walls, but no luck so far. I'm thinking of using a bouncing/pass target explosion projectile, that should do the trick. But only I.T. will peter out after a while... How about this: I'll make a custom projectile for this and include in the spell effects immunity to that projectile after 2 seconds. Creatures get caught in the radius, but if they can run fast enough to put some distance between themselves and the invisible bolt, in 2 seconds they'll be safe.

    Also, the spreading ring never seems to stop at walls - stone walls, cliff sides and so on, the whole circumference is painted out over the scene. Doesn't make much sense. What controls that?


  • ThacoBellThacoBell Member Posts: 12,235
    @chimeric You wouldn't see the shockwave. That's my point. It spreads faster than the flames, hence the instant hit.
  • kjeronkjeron Member Posts: 2,368
    edited October 2017
    chimeric said:

    @kjeron , Going anywhere with Invisible Traveling shakes off the fire damage, you say? Hmm. Well, I don't remember any times in the original BG when I moved and was caught in the flames and wasn't damaged. I would remember.

    Moving anywhere with Invisible Traveling CAN shake it off, its still rather random when it occurs, but it can occur running any direction relative to the point of origin.
    As for BG1, all projectiles were hardcoded in BG1, so I have no idea what it used. The behavior may not have even started until BG2 or even EE.
    chimeric said:

    So, if speed controls both the ball and the spread of the flames, how can I make a fast ball with slower flames? Secondary projectile? That flies in a good second afterwards.

    Secondary Projectile is the way to go.
    Base projectile:
    • Travel Speed
    • Use Secondary projectile (2ndary projectile).
    • No explosion effect(255)
    • Explosion projectile "invis trav - 79" or a custom invisible projectile with desired speed.
    • Impact/Fire sounds
    2ndary projectile:
    • Spread Speed
    • 0x2c flags BIT3(Hit Immediately)
    • Fireball explosion effect(0)
    • Explosion projectile "none - 1"
    • No impact/fire sounds
    Otherwise they should be the same.
    chimeric said:

    Also how about a bouncing AEO? For my Nova I'd like the lightning wave to bounce off walls, but no luck so far. I'm thinking of using a bouncing/pass target explosion projectile, that should so the trick.

    AoE's themselves don't bounce.
    Their explosion projectile is fired individually at every target within range. Normally these can only hit their intended target, once. Doing this with a pass target/bounce projectile would allow every one of those projectiles to hit anyone within their radius, multiple times, and that's before they bounce. It may have its uses, but not for a fireball.
    chimeric said:

    Also, the spreading ring never seems to stop at walls - stone walls, cliff sides and so on, the whole circumference is painted out over the scene. Doesn't make much sense. What controls that?

    I don't think that can be achieved without altering the area's Search Map.
    Post edited by kjeron on
  • [Deleted User][Deleted User] Posts: 0
    edited October 2017
    The user and all related content has been deleted.
  • chimericchimeric Member Posts: 1,163
    edited October 2017
    kjeron said:

    Moving anywhere with Invisible Traveling CAN shake it off, its still rather random when it occurs, but it can occur running any direction relative to the point of origin.

    I've done it a few times just now and unless I walk outside, I get burned. So if the no-damage effect only happens some of the time, and only when people are walking, thus being active, I vote on the side of letting this happen. It's more interesting to have lucky or unlucky avoidance every once in a while than a fail-safe bazooka.

    I'll try your secondary projection advice for sure... I should at least make the bloody Nova after I bother people for these details so much. Maybe release it separately, for penitence.
    kjeron said:

    Doing this with a pass target/bounce projectile would allow every one of those projectiles to hit anyone within their radius, multiple times, and that's before they bounce.

    Eh, no. I tested with magic missile for the projectile. One MM flies out to each target caught in range, runs through and bounces off the wall behind. It can come flying back and catch the creature again, and again if it's a tight spot, but that's how bouncing works, nothing special or multiple here. All in all, this works just as a reflecting wave would. The Nova's is going to use the bouncing to be similar to the lightning bolt and more useful than the base spell, Sunfire, if the player is clever; but I'm going to add a little fine detail - the original AOE ignores center, but there is no immunity to the bounding projectiles. :neutral:
    kjeron said:

    I don't think that can be achieved without altering the area's Search Map.

    Why alter it? A wall is a wall. Those fireball spreads ignore everything, possibly except buildings. Otherwise they blossom over steep cliffs, over the sea, everything. I don't think those areas can be made more solid. Also I remember the "Not covered by wall" option for VVC effects. It works, too. So it's possible to switch for VVCs, maybe for projectiles too?
  • kjeronkjeron Member Posts: 2,368
    chimeric said:

    Eh, no. I tested with magic missile for the projectile. One MM flies out to each target caught in range, runs through and bounces off the wall behind.

    If you line up the creatures, each one's projectile will run through and hit each creature.
    chimeric said:

    Why alter it? A wall is a wall. Those fireball spreads ignore everything, possibly except buildings. Otherwise they blossom over steep cliffs, over the sea, everything. I don't think those areas can be made more solid. Also I remember the "Not covered by wall" option for VVC effects. It works, too. So it's possible to switch for VVCs, maybe for projectiles too?

    There are 2 basic types of walls, those that block movement, and those that also block LOS.
    Explosion projectiles ignore those that block movement(cliffs,water), but not those that block line of sight(buildings, indoor walls). Bouncing projectiles work the same.
    Icewind dale often uses the wrong one for indoor walls, resulting in projectiles continuing on past the map boundary.

    "Not covered by wall" just switches which animation is displayed on top, the wall never actually blocks the animation - it will show through on the other side if its big enough (which isn't often).
  • chimericchimeric Member Posts: 1,163
    edited October 2017
    kjeron said:

    chimeric said:

    Eh, no. I tested with magic missile for the projectile. One MM flies out to each target caught in range, runs through and bounces off the wall behind.

    If you line up the creatures, each one's projectile will run through and hit each creature.

    Yeah, but there is no other way to simulate a shock wave. I'm also adding a 1-second immunity to the projectile to the damage.

    Post edited by chimeric on
  • kjeronkjeron Member Posts: 2,368
    @chimeric Give this a try. It can be outrun, but not sidestepped like #79, no random avoidance.
    FIRETRV.PRO - main projectile
    * Ray Count, Cone width: 30*12 = 360, fires in all directions independent of targets
    FIRETRV1.PRO - Explosion projectile, Speed determines spread rate and radius).
    * Radius is (Speed * #Frames / 2), Slower/smaller, faster/larger, otherwise altering the radius requires added/deleting frames from the animation, "SPFLAMES.BAM". 32 * 16 / 2 = 256
    * 96 width, so no one can slip between the projectiles, larger radii may require higher width, lower radii less
    * Optional - Add Bounce if you want.
    * Optional - Flag BIT29 "Limited Path Count" will set the radius to 30 * #Frames. Speed would still control spread rate. Would require very few frame animation to be practical.
    FIRETRV2.PRO - Visual FX only (central explosion - "SPFIREPI.VVC")
    * Using ray count disables the 2ndary projectile and explosion animation functions in the main projectile, so this had to be done separately.

    SPWI304.SPL - Main projectile
    * Added cast visual fx subspell
    * Added 1-second immunity to itself, so a single creature is only hit once.
    SPWI304B.SPL - Visual FX projectile
    * No effects, sound, name, etc...
  • chimericchimeric Member Posts: 1,163
    You should release it as a separate tweak of the fireball.
Sign In or Register to comment.