Jump to content

Recommended Posts

I don't recall seeing that list, but it's not hard to make one by looking at the source code.


For mage spells:

short caster_array[7][18] = {
   {1,1,1,2,2, 2,1,3,4,4, 1,1,1,2,2, 2,3,4},
   {5,5,5,6,7, 8,9,10,11,11, 2,2,2,5,7, 10,10,5},
   {5,5,2,9,11, 12,12,12,14,13, 13,12,12,2,2, 2,2,2},
   {15,15,16,17,17, 5,12,12,13,13, 17,17,16,17,16, 2,2,2},
   {15,18,19,19,20, 20,21,21,16,17, 18,18,18,18,19, 19,19,20},
   {23,23,22,22,21, 21,20,24,19,18, 18,18,18,18,18, 23,23,19},
   {23,23,24,25,26, 27,19,22,19,18, 18,18,18,18,26, 24,24,23}};
short emer_spells[7][4] = {

These are the mage spells a monster will cast at a given level; only the list for the monster's level is used, it looks like. The spells in the emer_spells list are used in very specific situations; in order, I think these are "I'm not hasted" (or possibly "I'm slowed"), "There are no friends nearby", "the party is very high level", and "my health is low", but I could be misreading the code a bit. The numbers of the spells are:

1 spark

2 minor haste

3 strength

4 flame cloud

5 flame

6 minor poison

7 slow

8 dumbfound

9 scloud (Sleep Cloud, I think)

10 summon beast

11 conflagration

12 fireball

13 summon (Minor Summoning)

14 web

15 poison

16 ice bolt

17 slow gp (Not sure what "gp" means here)

18 major haste

19 firestorm

20 summon (Medium Summoning)

21 shockstorm

22 m. poison (Major Poison, I assume)

23 kill!!!

24 daemon

25 major bless

26 summon (Major Summoning)

27 shockwave


For priest spells:

short caster_array[7][10] = {
short emer_spells[7][4] = {

The spells in the emer_spells list are used in very specific situations; it looks like the same situations as for mage spells. The numbers of the spells are:

1 Blesses

2 heals

3 wrack (I think this is a weaker version of Wound)

4 stumble

5 Blesses

6 curse

7 wound

8 summon spirit

9 disease

10 heals

11 holy scourge

12 smite

13 curse all

14 sticks to snakes

15 martyr's shield

16 bless all

17 heals

18 Flamestrike

19 summon host

20 heals

21 holy ravaging (damage, poison, and slow one target)

22 summon guardian

23 pestilence

24 revive all

25 avatar

26 divine thud

Link to post
Share on other sites

Thank you so much!


I think I can fill in the gaps here:

The "slow gp" is almost certainly Slow Group.

"M. poison" is definitely Major Poison, I've been on the receiving end of that one all too often...

"S cloud" is, I think, Stinking Cloud. I mean, I don't remember using the Awaken spell all that often heh.


Also if I recall correctly, a few of the spells are different to the player's (e.g. major blessing doesn't give the monsters poison attacks)

Link to post
Share on other sites

That's quite possible, as the monster spells are implemented separately from the PC spells (Wrack and Holy Ravaging aren't even available to PCs). That specific case could also be a result of monsters not honouring the poison weapon status; I'm not going to investigate right now to see which is the case, though, as I'm busy trying to get UI to work properly.

Link to post
Share on other sites

One thing I would like to do (in the long term) is create a standardized spell/ability structure/class so that we can manipulate spells with ease. It would make interchanging spells between PCs/NPCs easier, plus it'd open the door to custom spell implementation (a custom spell could be assigned a scenario special kind of like (iirc) how special item abilities are currently handled. maybe put target coords in a couple "special" SDFs for good measure. I dunno)

Link to post
Share on other sites
  • 2 weeks later...

Just a quickie - "S. cloud" is indeed Stinking Cloud, just had a monster cast it at me.


Also, I don't ever recall someone using Shockwave against me - Indeed, it would be an odd choice, since the high level monster mages often hide behind screens of cannon fodder, and that spell would do massive damage to such a screen.

Link to post
Share on other sites

There's code specifically to check if Shockwave is a good idea, if it was picked by the random number generator (or emergency criteria). If it determines it's not a good idea, the monster will cast Major Summoning instead. It decides it's not a good idea if it's friendly to the party or if it has less than 45 levels worth of allies (at least, I think that's how the count_levels function works, though it has some odd stuff in it, so that might not be quite right).

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...