Skip to content

"Linear warriors, quadratic mages?"

The user and all related content has been deleted.

Comments

  • KamigoroshiKamigoroshi Member Posts: 5,870
    Why only nerfing arcane magic? I'd say spell failure due to wearing armor/shields should also be extending towards the divine spellcasters. Armor made Clerics more powerful than Mages either way.

    But back to the topic at hand. Easiest way for nerfing the spell schools would simply to reduce all damage output and durations by ~50%. Which means editing every single arcane spell. This alone would modify Baldur's Gate enough to call it a game of the Sword & Suckery subgenre. :p
  • Grond0Grond0 Member Posts: 7,457
    Here's a few quick thoughts to throw into the mix.
    - change saving throws for individual spells or just give enemies something like the LoB bonus to them.
    - reduce the number of spells you can cast per day.
    - definitely reduce the number of wands/charges/damage to make them rare and special.
    - restrict the amount of resting possible (potentially linked to real time), to give more of an incentive to save spells for when they're really needed.
    - reduce the strength of summons (say to 60% to fit in with the treatment of simulacra).
    - not allow sequencers (or at least make them more difficult to use, e.g. by requiring them to take a round to cast and allowing the cast to be interrupted).
  • PaulaMigratePaulaMigrate Member Posts: 1,201
    edited June 2017
    Brainstorming I
    During the Time of Trouble and the Spellplague the use of magic had some limits. The spellcaster had to be within some distance of some source for his magic (could be a person, object, artifact or whatever.) Let's say the protagonist has some crystal or lens that is required to bundle the energy of the Weave to cast a spell. Only a spellcaster in some distance to the PC can cast spells and only if the PC has the item and is !StateCheck(Player1,CD_STATE_NOTVALID) and the (optional) daily loads of the item are not used yet.

    Brainstorming II
    Harry Potter, spellcasters need a magic wand to cast. Only if the item is equipped in the weapon slot they can cast. The item only has basic quarterstaff combat abilities. Or they need to wear Elminster-like hats that reduce their movement rate while worn.

    Brainstorming III
    Again Spellplague - reduced resources.
    Each spell has a higher failure possibility. The probability to miscast and waste spells increases with the level of the spell. Spell scrolls cannot be bought anymore, you can only find them on defeated enemies. Enemies have only scrolls up to the level they use against you, i.e. you need to defeat a guy casting level 5 spells at you in the hope to find a level 1-5 scroll on him that you can learn.

    A combination of the above:
    Option I applies to clerics - the item required is some symbol of their deity
    Option III applies to mages
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,368
    I run something similar in effect by utilizing a stamina-based system.
    Every spell and ability can be used at-will, but fails if the user is fatigued, while fatigue is recovered at a rate of 1 per round.
    Every spell(or similar innate) increases fatigue by (Level + 1). Innates without an equivalent spells are based on their effect and rate of acquisition.
    Any innate that can be is converted into a modal ability which either stops or reverses fatigue recovery while active depending on how strong it is: Poison Weapon, Frozen Fists, Flaming Fists, Offensive/Defensive Spin, Defensive Stance, Shapeshifts, along with several 3E inspired modal abilities.
    Spell slots are shared among all spell levels but heavily reduced in number (done through the UI, max of 12 slots for full casters). Resting still required to change spells.
    Luck penalties for Fatigue are left in place.
    Miscellaneous balance changes here and there.

    A spell-caster can maintain casting an average of 10 spell-levels worth of spells per turn(10 rounds) at level 1 and level 50.

    Enemy AI simply cannot function with at-will spellcasting and/or functions better without it, so these changes are entirely party-only.
  • The user and all related content has been deleted.
  • bob_vengbob_veng Member Posts: 2,308
    what about material components?
  • Contemplative_HamsterContemplative_Hamster Member Posts: 844
    edited June 2017
    @bob_veng Hehe, like a Lynx Eye gem for every Fireball, and so on? There'll be a run on the stores.

    "If you care to step this way, goodsir, I can show you our range of gem bags."
    "How many 'ave ya got?"
    "Ooh we stock more than twenty in assorted colours and fabrics. Here, notice the fine stitching on thi-"
    (Through gritted teeth) "I'll take every. Single. One. Oh, and a tower shield to hide behind while my friends take out some xvart villages and plunder their belongings. Can't do much until I find me some Lynx Eyes."

  • PokotaPokota Member Posts: 858
    I have long wondered why Divine Foci aren't required implements for divine magic in the infinity engine but are in older engines...

    One thing I would love to see implemented is Universal Surging. Per the FR Wiki,
    Cosmic disasters like the Time of Troubles caused the emergence of severe wild magic zones after the Weave was heavily damaged. After the Time of Troubles, most wild magic zone disappeared but some remained.
    Since the BG games happen before the assassination of Mystra (and the subsequent Spellplague/Rebuilding of the Weave) it stands to reason that someone as world-changing as the Ward of Gorion would come across at least ONE wild/dead magic zone.

    To my knowledge, only Arcane magic can surge, not Divine.
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,368

    That is... some heavy changes. I thought fatigue cannot be decremented? Can it be applied with temporary timing?

    Temporary only works with SET. Increment is still flaky even with permanent timing modes. Since I need to detect Fatigue level in the first place, I just run a check against all fatigue values 0-15 and 16+, then SET the value based on the spell and current fatigue level. It may have worked using a negative Increment in IWDEE (I don't remember using SET back then), but due to other changes in v2.0 I had to fully switch to this method. However, it is possible that it only works because the mod is constantly adjusting and controlling fatigue levels, but it never has lost control of fatigue.

    In limited doses it's okay. I've been finding that the AI can handle our "level 1 cantrips" mod, which makes 1st-level spells (and only 1st-level spells) castable at will.

    Limited yes, the lower the spell level the later it is usually checked by a script to cast, so at worst they will end up spamming an attack cantrip instead of making physical attacks, not necessarily an undesired result in that case.
  • The user and all related content has been deleted.
  • bob_vengbob_veng Member Posts: 2,308
    i've got a terrible idea: assisted casting...required for level 9 spells. you need a simulacrum or something like that to co-cast the spell with you, and both of you must not be interrupted
  • tbone1tbone1 Member Posts: 1,985

    Why only nerfing arcane magic? I'd say spell failure due to wearing armor/shields should also be extending towards the divine spellcasters. Armor made Clerics more powerful than Mages either way.

    I disagree with this. Is there any point in the game where the cleric is the strongest class? Early in BG, it's the warrior types. By Chapter 4 of SoA it's mages, hands down. But clerics? I think they are under appreciated, but never are they top dog, except situationally, so I don't see why they would need holding back
  • ArdanisArdanis Member Posts: 1,736
    kjeron said:


    In limited doses it's okay. I've been finding that the AI can handle our "level 1 cantrips" mod, which makes 1st-level spells (and only 1st-level spells) castable at will.

    Limited yes, the lower the spell level the later it is usually checked by a script to cast, so at worst they will end up spamming an attack cantrip instead of making physical attacks, not necessarily an undesired result in that case.
    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.
  • kjeronkjeron Member Posts: 2,368
    Ardanis said:

    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

    I did this for the PC's (manually written) scripts, I just never found an efficient way to mass-patch script blocks individually per spell.
  • [Deleted User][Deleted User] Posts: 0
    edited June 2017
    The user and all related content has been deleted.
  • Grond0Grond0 Member Posts: 7,457
    edited June 2017

    Grond0 said:


    - not allow sequencers (or at least make them more difficult to use, e.g. by requiring them to take a round to cast and allowing the cast to be interrupted).

    Again, I sort of go the other way: as spell slots will become scarcer, I think sequencers actually become more important, and more special, by comparison. These will be more of a crutch for mages. Also note that you can only load sequencers with spells you have memorized, so reducing spell slots does (sort of, a tiny bit) reduce the capabilities of sequencers.

    If we were really evil we might make sequencers disappear out of your spellbook after you cast them, so you can only use as many sequencers as there are scrolls in the game. (This would be especially hard on sorcerers!)
    I still think sequencers are OP, but if you want to make them more special then how about linking them to specialist mages (who generally need to be made a bit more attractive to use anyway - particularly if your mod will make fighter mixes even more the power gaming option). You could have something like the following (though I don't know if this is doable):
    minor sequencer - usable by all mages
    sequencer - all mages can put 2 spells in one. The third has to be the specialist spell category of a mage.
    trigger - only specialist spells can be used.

    You could also delete or nerf the chain contingency spell - given that's pretty much always used not to deal with contingencies, but for cheese (the standard contingency spell seems fine to me).
  • ArdanisArdanis Member Posts: 1,736
    kjeron said:


    I did this for the PC's (manually written) scripts, I just never found an efficient way to mass-patch script blocks individually per spell.

    You could inspect AI block by block and patch in a timer if it contained HaveSpell(X) trigger and Spell(X) action. But with occasional at-will castings, forced castings, prebuffs, multiblock targeting etc. it might fail at about 10%-20% of times, I imagine. Though if you were to gather and review enough AI, a more precise solution may be possible to find. For comparison, I believe it took me a couple weeks to complete IR's weapon description patching code.

    Ardanis said:


    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

    Wait - can do his be done? I've had an idea for another mod for a while, which would take caster's off the "one spell per round" rails and make casting speed bonuses let you cast more, as well as faster. So low-level wizards could only cast once every 7-8 seconds, but at higher levels and with good equipment you could cast once every 3-4 seconds.

    I figured on approximating it with the AI by simply doing a level check, and setting the casting interval to 7, 6, 5, or 4 seconds at levels 1/6/12/18. But I didn't think this was possible, so I dropped the idea.
    Most advanced AI scripts already run on one-round timer (and sometimes on individual spell timers in addition), so definitely yes. However, I do believe you still can't go under 6 seconds without forced casting or aura cleansing and its hardcoded feedback.
  • RaduzielRaduziel Member Posts: 4,714
    You only need two things to nerf wizards:

    1) limited rest. No rest in dungeons and only one rest every 24 hours. Did this in a IWD run and things became much more interesting.

    2) give wizards a grimoire that may be destroyed by area damage.
  • AasimAasim Member Posts: 591
    Raduziel said:


    1) limited rest. No rest in dungeons and only one rest every 24 hours. Did this in a IWD run and things became much more interesting.


    Say hello to my little friend.


    For as long as you leave this as it is, you cannot really nerf the no.of spells allowed. Furthermore, whatever table you use - SCS will use. So by nerfing number of available spells per level, you'll be making the game easier - enemy non-caster thugs are generally nothing more than XP bonuses. PC fighters have better equpiment, are buffed, and are led in combat by more or less IQ-driven personel.
  • The user and all related content has been deleted.
  • ArdanisArdanis Member Posts: 1,736
    edited June 2017
    So the question is, could you reasonably check each caster's level and script, and DECOMPILE_AND_PATCH/REPLACE_TEXTUALLY to change that creature's timer to some new value instead of 6, and have that value be based on the creature's level.

    Level-dependent timers can be automated. I assume you know that timers are really just variables, yes? You can do something like
    REPLACE_EVALUATE ~SetGlobalTimer("\([^"]+\)","[Ll][Oo][Cc][Aa][Ll][Ss]",6)~ BEGIN
      SET $timer_list("%MATCH1%") = 1 // assemble a list of timer names while we're at it, may want TO_LOWER it too
    END ~SetGlobalTimer("\1","locals",6) ApplySpellRES("spltimer",Myself)~
    Not sure it's gonna compile right away, but you get the idea.

    The spltimer.spl adjusts the timers in timer_list array with 309 opcode, parameter1 scaling with caster level. Pretty sure you can use negatives, if not then replace timer in script with lower value. One second equals to either 15 or 30, but should be easy enough to determine with a few tests, or just check in a savegame.

    Since some scripts may not have any timers at all, read it block by block:
    OUTER_SPRINT space ~\([%LNL%%MNL%%WNL%%TAB% ]+\)~
    REPLACE_EVALUATE ~IF\(\(%space%[.]*$\)+\)THEN\(\(%space%[.]*$\)+\)END~ BEGIN
      SPRINT trigger ~%MATCH1%~
      SPRINT response ~%MATCH3%~
      PATCH_IF ~%trigger%~ STRING_CONTAINS ~HaveSpell([.]+)~ && ~%response%~ STRING_CONTAINS ~^%space%\(Really\)?\(Force\)?Spell([.]+)~ BEGIN
        no_timer=1
        INNER_PATCH_SAVE response ~%response%~ BEGIN
          REPLACE_EVALUATE ~SetGlobalTimer("\([^"]+\)","[Ll][Oo][Cc][Aa][Ll][Ss]",6)~ BEGIN
            SET $timer_list("%MATCH1%") = 1
            no_timer=0
          END ~SetGlobalTimer("\1","locals",6) ApplySpellRES("spltimer",Myself)~
          PATCH_IF no_timer BEGIN
            REPLACE_EVALUATE ~\(^%space%\(Really\)?\(Force\)?Spell([.]+)\)~ BEGIN
            END ~SetGlobalTimer("spltimer","locals",6) ApplySpellRES("spltimer",Myself) \1~
          END
        END
        PATCH_IF no_timer BEGIN
          SPRINT trigger ~!GlobalTimerNotExpired("spltimer","locals") %trigger%~
        END
      END
    END ~IF %trigger% THEN %response% END~
    It has even less a chance to compile, but again, you should get the general idea.
  • cherryzerocherryzero Member Posts: 129
    Do you plan to address some of the normal weapon immune creatures in BG1 if you're removing generic magic items?

    Vampiric wolves and ghasts come to mind as creatures you can run into early on that will be nearly impossible to deal with unless you've got some low level magic items...

    Or will they be hittable by masterwork items instead?
  • The user and all related content has been deleted.
Sign In or Register to comment.