Jump to content

DavidW

Gibberlings
  • Posts

    7,922
  • Joined

  • Last visited

Posts posted by DavidW

  1. 14 hours ago, subtledoctor said:

    In the unmodded game, how do enemy mages deal with a player who uses II + SI:Div?

    I think you may be forgetting just how dumb enemy mages are in the unmodded game. Never mind working out how to deal with II+SI:Div - most mages can't even deal with II alone. Hardly any mage in the vanilla game tries to take it down; hell, hardly any mage in the vanilla game checks for it before targetting a single-target spell. You can paralyze most of them just by standing next to them with II running. 

    The more interesting question would be: how *could* a mage, using the unmodded spell system, deal with II+SI:Div? And there I agree, they can't, basically. Add SI:Abj and the logical circle pretty much closes. I realized that very early in the evolution of SCS; Wes Weimer realised it too, which is why every single Tactics mage of level 16+ uses II+Si:Abj+Si:Div in their Spell Trigger. I looked for the minimal set of changes that I could find to the spell system that made mage combat functional, and ended up with the antimagic-bypasses-II trick. SR, of course, has a very different design goal and is happy to make much more sweeping changes - which is fine, but not what I was (or am) interested in, though I have gone a long way towards supporting SR for those who do like it that way

    16 hours ago, subtledoctor said:

    in a game with SI:Div as a spell protection, which can be removed by Ruby Ray (or, presumably, Spell Thrust?  Spell Thrust can dispel 5th-level spell protections, no?), isn't it just another spell protection? That doesn't seem very interesting. 

    It's in practice slightly different, because there are counters to invisibility other than divination spells - noticeably thieves' Detect Illusion ability and the fact that liches/dragons/fiends can see through invisibility. (Also, it protects your other illusions, like Mirror Image).

    16 hours ago, subtledoctor said:

    Of course there is also SI:Abj... I don't recall whether that stops Breach, and I don't remember if you can have multiple SI variants active at the same time

    It stops Breach on SCS but not on unmodded games (the unmodded game treats Breach as an anti-spell-defense attack, so it bypasses everything. That's something else that's basically not counterable - hence, again, SCS's tweak.) There is no constraint on having multiple SI variants active, in the unmodded game or in SCS, though there is a perennial myth that there is.

    16 hours ago, subtledoctor said:

    It all needs simplifying.

    It doesn't need simplifying, in that it's perfectly possible to have an effective and enjoyable mage-battle AI inside the system as is. One might have a fun play experience using a mod that simplifies it; that's a different question.

  2. 2 hours ago, subtledoctor said:

    I mean, you cannot use II + Nondetection the way you could use II + SI:Div in the vanilla game to become entirely immune to being targeted by enemies.  That is by design; in my opinion and I believe in Demi's opinion, being easily able to entirely thwart SCS mages is a dumb game mechanic - tantamount to just hitting ctrl-Y.  With SR, to be protected, you actually need to use things like Spell Deflection and Dispelling Screen. 

    Unless I'm missing something, SCS isn't so easily thwarted. Ruby Ray to bring down the SI:Div, then Truesight to penetrate II.

  3. 43 minutes ago, Luke said:

    OK, sorry, I don't own them so I cannot play / mod them 🙃...

    Fair enough!

    The 'ds_make_detectable' function that entropy_shield_abjuration uses has quite a lot of processing built into it. Firstly it checks if 'id' (the stat in question, e.g. PRIORITY_DISPEL) is present in STATS.ids in a legal place (i.e. in the shortish range of stats that opcodes 233 and 282 can handle, or - on a classical game, if ToBEx is installed - the longer range that ToBEx opcode 318 can handle). If it's not, and if you're on an Enhanced-Edition game, it checks SPLSTATE,  adds the stat if it's not present, and adds it via opcode 328. If you're not on Enhanced edition, it checks for ToBex, and if it finds it, it adds the stat as a new stat in STATS.ids, and applies it with opcode 318. If it doesn't find ToBEx, it gives up. See ds/ds.tph if you want the gory details!

  4. Incidentally, the existing ENTROPY_SHIELD spellstate is already assigned to Entropy Shield (it gets assigned by the main Detectable Spells run, before the spellsystem modifications are installed - look at ds/ds_iwd.tpa). Since that spellstate uniquely identifies Entropy Shield, it's of course right in principle that my AI scripting could work with that spellstate, either by modifying its checks according to whether the Entropy Shield changes are present, or just assuming they are on the grounds that SCS assumes the standard shifts. Applying the SI_ABJURATION spellstate is a relatively quick-and-dirty alternative: since for the most part the AI should react to someone protected by modified Entropy Shield as if they were protected by a combination of original Entropy Shield and SI:Abjuration, setting that spellstate goes most of the way to allowing properly for Entropy Shield's modifications, without any need to tweak things at the script level. At the time that SCS v32 was released, that was of particular significance, because the changes to Entropy Shield were new and might have needed modification, and it was helpful to be able to do that without having to unpick a collection of script changes.

  5. If you want to patch all of them, detecting them isn't a problem. Just do GET_OFFSET_ARRAY and then loop through with PHP_EACH, as demonstrated in the WEIDU tutorial (except that the offsets for triggers are prelisted - ARE_V10_REGIONS - and so you don't need to enter them manually).

  6. Quote

    You don't need to. As I've already told you, what about using the existing entry "ENTROPY_SHIELD – 30" (at least on EE games)?

    Then the AI would need to be sensitive to whether this modification to Entropy Shield is present. Admittedly, it would be in keeping with SCS design principles just to assume it is, but in my judgement the advantages of doing so aren't large enough to justify the inconvenience of not just relying on the existing detect-SI-abjuration code.

    3 hours ago, Luke said:

    You might want to use op#282 just on classic games since they're not compatible with op#328...

    It gets installed as 318 on classic games. (Give me some credit for intelligence, please.)

     

    3 hours ago, Luke said:
    16 hours ago, DavidW said:

    Why wouldn't PRIORITY_DISPEL be set here?

    What if I just install "Smarter General AI"? Guess PRIORITY_DISPEL and the like aren't used at all in this case...?

    What if I just install "Initialize AI"? I know, it doesn't make any sense and shouldn't happen, but still, it's a possibility, so..

    Then, in either case, it's harmless. 

  7. 1. It's being flagged as equivalent to Spell Immunity: Abjuration because from a combat AI point of view, it's very nearly equivalent, and I don't want to needlessly use up real estate in splstate.ids. But it's a bug that it's labelled with SPELL_IMMUNITY_ABJURATION, not SI_ABJURATION. I must have misremembered the name, and a downside of ds_resolve_stat is that it can't warn you if the spellstate doesn't exist. (I should probably have a must_exist variable in it.)

    2. I'm not sure I understand. The point of the initialise component is (inter alia) to install the detectability system that all other AI components rely on. Why wouldn't PRIORITY_DISPEL be set here?

  8. Can you say more about the use case you have in mind? In cases I can think of, you'd get weird behaviour if you dispelled the previous instance, e.g. if both party and enemies used a spell or if the new one and the old one only slightly overlap.

    That said, if you do want to do it, I think you can just use the Zone of Sweet Air opcode, but with a custom 2da in place of CLEARAIR.2da. At least, the IESDP thinks you can (I don't think I've ever tried it myself).

  9. Come to think of it, how about General Sovaalidaas?

    (I generally assume Throne of Bhaal is the redheaded stepchild that no-one wants to mod, so you can have free reign, but I don't want to break anyone's content gratuitously.)

  10. I haven't really played with Divine Remix, but (many years ago) I played quite a lot of pen-and-paper AD&D using the sphere system. In my experience it's extremely difficult to balance it properly - the spheres are in no way equal in power, and so creating two equivalently effective cleric kits has to be done manually and is very hard to get right. There is a reason why it got entirely abandoned in third edition D&D.

    I think the DR mod is a pretty faithful implementation of the AD&D second edition system - and, as such, suffers from a lot of the same problems. They're probably made a bit worse by the smaller number of spells in BG(2), but the basic issue comes from the AD&D system, not from its CRPG implementation.

×
×
  • Create New...