Page 1 of 3

Baldur's Gate: Arcane Spells List

Posted: Wed Jan 04, 2017 8:54 am
by Magus
Article

Interesting, I was pretty sure that saving throw bonuses weren't in the original. Too bad there's no option to print the throws like to hit rolls, we could've known that long time ago.

Baldur's Gate: Arcane Spells List

Posted: Wed Jan 04, 2017 9:47 am
by Flashburn
According to that Beamdog forum post by Dee, its been there the whole time. It would be nice if saving throws were printed out NWN- or IWD2-style.

Baldur's Gate: Arcane Spells List

Posted: Sun Jan 15, 2017 2:19 am
by Magus
I tried to batch upload images, but noticed they were on scroll background instead of plain one, so I had to roll it back. How do you produce the images?

Baldur's Gate: Arcane Spells List

Posted: Sun Jan 15, 2017 2:30 am
by Flashburn
I'm using NearInfinity to extract them from vanilla BG2 because they're actually higher quality than BG1EE/2EE. They're the SPWIXXXB.BAM images converted to .PNG also using NearInfinity. I do not need help with it because I've got all of them extracted already up to level 7, which is where I got to when the old PIH site went down.

Also I want permission to delete things, I can't upload the correct version of Minor Spell Deflection for some reason because it always defaults back to the scroll version even when I try to revert it.

Baldur's Gate: Arcane Spells List

Posted: Sun Jan 15, 2017 2:49 am
by Magus
Yes, found it. I already uploaded a hundred or so, leaving it now. There's mass uploader you can use.
I'm pretty sure you have the permission to delete. Might be some caching issue, try fresh browser.

Some relevant code snippets, for the record:
1. proper names for pngs exported by NI

Code: Select all

time while read line; do echo ${line}; code=$(echo "$line" | awk '{print $1}'); name=$(echo "$line" | cut -d ' ' -f 2-); n1=$(echo "$name" | cut -c1 | tr [a-z] [A-Z]); n2=$(echo $name | cut -c2- | tr '[A-Z]' '[a-z]'); name2="${n1}${n2}"; echo $code; echo $name2; cp "${code}B/${code}B00000.png" "../png/${name2}.PNG"; done < <(cat ~/vb-shared/bg2_t1/8 | grep -A1 SPWI | sed 's|SRC: ||' | tr '\n' '\r' | sed 's|\.SPL\r| |g' | tr '\r' '\n' | grep -v '^--$')
2. Weidu: generate log with spell descriptions

Code: Select all

BACKUP ~dummy/backup~
NO_IF_EVAL_BUG
AUTO_EVAL_STRINGS
VERSION ~v0~
BEGIN ~s1~
COPY_EXISTING_REGEXP GLOB ~^spwi[1-9][0-9][0-9].spl$~ ~override~
  READ_LONG 0x8 name_rr
  GET_STRREF name_rr name
  READ_LONG 0x50 desc_rr
  GET_STRREF desc_rr desc
  PATCH_PRINT ~
SRC: %SOURCE_FILE%
%desc%
~
BUT_ONLY
3. Python: parse weidu output into mediawiki format

Code: Select all

def print_spells(fn):
  with open(fn) as spell_file:
    i = 0
    name = ''
    school = ''
    level = ''
    srange = ''
    duration = ''
    cast_time = ''
    aoe = ''
    save = ''
    desc = ''
    for line in spell_file:
      if line.startswith('SRC'):
        i = 1
        print '== [[File:', name.lower().capitalize() + '.PNG]]', name, '==', \
        '\n{|class="wikitable zebra"', \
        '\n!School', \
        '\n!Range', \
        '\n!Duration' \
        '\n!Casting Time', \
        '\n!Area of Effect', \
        '\n!Saving Throw', \
        '\n|-', \
        '\n|' + school, \
        '|' + srange, \
        '|' + duration, \
        '|' + cast_time, \
        '|' + aoe, \
        '|' + save, \
        '|}\n'
        print "'''Description:''' " + desc
        print "'''Comments:'''\n"
        desc = ''
      if i == 2:
        name = line.rstrip()
      if i == 3:
        school = line.replace("(","").replace(")","")
      if i == 4:
        level = line.replace("Level: ","") # line.split()[1]
      if i == 5:
        srange = line.replace("Range: ","") #line.split(' ', 1)[1]
      if i == 6:
        duration = line.replace("Duration: ","") #line.split(' ', 1)[1]
      if i == 7:
        cast_time = line.replace("Casting Time: ","") # line.split(' ', 1)[1]
      if i == 8:
        aoe = line.replace("Area of Effect: ","") #line.split(' ', 3)[1]
      if i == 9:
        save = line.replace("Saving Throw: ","") #line.split(' ', 3)[1]
      if i > 9:
        desc = desc + line
      i+=1

print_spells("log")

Baldur's Gate: Arcane Spells List

Posted: Sun Jan 15, 2017 3:47 am
by Flashburn
Yeah, I needed to clear my browser cache for the images to show up properly. Sorry about all the deletions and reverts and re-uploads.

Its good to know that there's a mass uploader too, but doing it one at a time helps me remember where I'm at in the editing process.

Baldur's Gate: Arcane Spells List

Posted: Thu Jan 26, 2017 2:49 am
by Magus
I don't think otiluke's sphere requires a save when cast on party.

Baldur's Gate: Arcane Spells List

Posted: Fri Mar 03, 2017 7:37 am
by Magus
Protection from Evil doesn't really distinguish between good and evil, it's plain +2 AC and saves. At least in Classic, not sure if that was fixed in EE.

Baldur's Gate: Arcane Spells List

Posted: Sat Jun 03, 2017 1:54 am
by Flashburn
A bit late but yes, Protection from Evil properly checks alignment in the EEs if you turn on the "Extra Combat Info" option in Baldur.lua.

Baldur's Gate: Arcane Spells List

Posted: Sat Jun 03, 2017 11:35 am
by Magus
Congrats on completing the list. Awesome work!
Later I'll go through the page and maybe add some comments here and there.
Also, I think of adding "EE" and "Classic" badges/labels, so that the differences in content are more visible (to be used on all pages, not just spells page).