Here is the first proper draft for the new soul stealing class for Gerband

Name: Soul Harvester (Thanks to MCKelly for suggesting this)

Races that can play as one:

Human 
Half-elf
Orc
Elemental
Kobold
Mindflayer
Half I/S
Yeek
Spider
Lizardfolk

Class description: The Soul Harvester can trap the souls of sentinent monsters in magical soul gems at the time of the monsters death.

List of soul gems (again thanks to MCKelly for this):

Petty - Capacity of 1  
Lesser - Capacity of 2 
Average - Capacity of 3 
Grand - Capacity of 4 
Ultimate - Capacity of 5 

Petty soul gems can only store the souls of weak monsters, while ultimate soul gems can store the souls of the most powerful monsters.

When the Soul Harvester class is chosen the player will have a "soul steal" skill. When he uses this skill, if he is successful in killing the monster, there is a chance he can capture the monster's soul. If he is successful then the soul is automatically stored in a soul gem (providing the gem is of high enough quality to capture the monster that has been killed).

Souls can be imbued into weapons. This makes the weapon sentinent and gives it certain flags, depending on what kind of soul is stored in the weapon.

This is as far as I have got ;) What I need to decide is:

Should the Soul Harvester be able to store souls in any weapons, or should I create special "soul weapons"?

How will the soul gem system work? Having ultimate soul gems as the only gems capable of storing unique monsters' souls seems a good idea, but would it be balanced? I mean both Boldor and Morgoth are uniques... ;)

A Soul Harvester will start the game with a petty soul gem, but where will other gems come from? The magic store? A special soul gem store? Will the soul gems only be found in the dungeon?

Should other races be able to play as a Soul Harvester? Any suggestions on which races, if you think yes.

Any ideas and suggestions for the above points would be very welcome :)

Sorgath If all the player can do with soul gems is make special weapons you might as well just skip the soul gems completely and go straight from monster death to enchanting a weapon.

CosmicGerbil Hmmm...that's a good point. I'm not really sure what else the player could do with a soul gem. Maybe the gem itself could have special powers. For example a soul gem with a Novice wizard's soul inside could be worn to increase the player's mana capacity and could be activated for restore mana.

Sorgath That again could be handled by enchanting an item straight from the monster, just expand the enchantment process to items other than weapons. In order for the soul gems to have a purpose they need either a themeatic reason for being there or you need to make a reason why the player would want to have a monster's soul in the gem because that's what it comes down to in the end, does the player want to put a monster's soul into a soul gem? If not then is there a reason why soul gems are needed?

JohnGilmore: I would think it interesting to require demonicly-themed classes to consume souls. Not nessessarily for food, but perhaps use souls eaten instead of time passed for regenerating mana. Or instead of XP. Or a little of several. For instance, that novice mages' soul might be great to add to your mana supply (having it around causes you to regenerate your mana, or adds 15 to your maximum mana) or to eat, regenerating your mana instantly. I novice warrior soul would probably do the same thing, but not work as quite as well, since they don't cast spells. Or perhaps the same sorts of effects on HP? I can see a system where only a relatively few monsters' souls are any good.

Or even have the demonic start with permenantly low stats - which can be increased primarily through collecting souls, and keeping them around. Or eating them for a large temporary boost to the stat of your choice. (speed? Int? Max HP?) I'm actually thinking of Raymond E. Feists' descriptions of the demonic on the latest riftwar series. Cool stuff. You'd probably want to make the chance of collecting a particular monster's soul less than %100. Especially for low-level characters capturing a powerful monster's soul.

CosmicGerbil Hmmm...the reason the Soul Harvester wants to store souls in a Soul Gem is because he is EVIL and it would be an incredibly evil thing to do, lol :D

That is a good idea about the Soul Gems regenerating mana, XP, etc. And about some souls not being any good. After all most players would not find much use for, say, a large orange bug's soul. It is hard trying to decide which monsters' souls would be more useful and also how many different soul types should I include. So I have made a partial table.

Monster name            Soul type (1 to 5)   Effect of soul in Soul Gem                Effect of imbuing weapon 
   Kobolds                            2         Resist poison                             Poison brand
   Yeeks                              1         Resist acid                               Acid brand
   Novice warrior                     2         Increase HP while wearing                 Increase to hit and to dam
   Novice priest                      2         Increase piety while wearing              Detect evil maybe?
   Novice rogue                       2         Increase stealth while wearing            Added stealth?  Detect traps?
   Novice wizard                      2         Increase mana while wearing               Increase mana capacity by 10%
   Snotling                           2         Decrease HP while wearing                 Decrease to hit and to dam
   Mindcrafter                        3         Activate for restore sanity               Precognition and ESP
   Mature blue dragon                 4         Immunity to electricity, ability to fly   Brand lightning, increased DEX by 2
   Ancient white dragon               5         Immunity to cold, fly, added speed        Brand cold, increase CON by 5   
   Vargo, Tyrant of Fire              5         Immunity to fire, fiery sheath            Brand fire, increase INT and STR by 2

Heh, as you can see, some souls are actually bad. The player won't know which souls are bad until he attempts to activate his soul gem. I reckon because of this, a "Release Soul" skill would also be useful, so as to prevent wasting a Soul Gem if it contains a useless or harmful soul. Any thoughts and suggestion on this, especially on the table...

Sorgath How were you planning to determine what flags/spells etc should be given for what monster? You've stated that Ancient white dragons should give immunity to cold, fly and added speed to the soul gem but how will you get from killing monster m_idx to determening what bonuses to give? Will you be using a function that will examine every aspect of the monster killed to determine what to give or will you simply look up the monsters name or r_idx in an enormous table containing an entry for every monster to determine what to give. You should decide on this as soon as possible because it will influence every aspect of this magic system and most importantly it will determine what will and wont be possible with this new magic system.

CosmicGerbil Lol, I'm not sure. I like the idea of an enormous table because I am the sort of rodent who loves to design tables. I probably won't use every monster though, that'd be too much even for me ;) I thought about putting the monsters into 4 different catergories:

1 = Each monster is represented individually.  E.g. dragons, people, humanoids. 
2 = The monsters are just represented by their letter.  E.g. insects (I), Xorns and Xarens (X)
3 = Some monsters are grouped, others are represented individually.  E.g. yeeks.  The blue and brown yeeks would be classed 
together, but Orfax and Boldor would be seperate
4 = Monsters without a soul.  E.g. zombies, mummies, golems and sweets

BTW, should the player have a change to capture Morgoth's soul ;)

Sorgath I probably wouldn't let them capture morgoth's soul.

As for the tables. If you wanted to do it that way above then you would probably be best doing it like this.

r_idx_table = { 
[orfax r_idx] = whatever you want orfax to give
[novice mage r_idx] = whatever you want novice mage to give
etc...
}

char_table = {
[strbyte("y")] = whatever you want yeeks in general to give
[strbyte("I")] = whatever you want insects to give
}

then when you kill monster m_idx you use this code....

if not r_idx_table[monster(m_idx).r_idx] then
    if char_table[the variable that stores a monsters character as a number which i can't remember right now] then
        do_stuff_variable = char_table[the variable that stores a monsters character as a number which i can't remember right now]
    else
        do_stuff_variable = -1 (no soul)
    end
else
    do_stuff_variable = r-idx_table[monster(m_idx).r_idx]
end

that way it will check for a specific set of data for the slain monster first then if it finds nothing it will check for a generic data set for the monster type

JohnGilmore: Are you planning this for 2.x or 3.x? It'd be more fun under 3.x - just add a flag to the monster in the monster list for the actions to take when eaten/imbuded/activated/worn, plus a "default" action under the letter.

Under 2.x, I'd think you'd want several tables - letter, flags, m_idx (should actually be name - initialize it with test_monster_name("Barachiel, Keeper of the Bastion") type things.

Put the general, weak stuff under letter, stronger stuff under flags (EVIL, UNDEAD, GOOD, IMMORTAL, BR_POIS) and the strong stuff under specific m_idx via the monster's name. This way, most things are edible (Uh... I mean useful...) and some things are extraordinary. This'll keep the player guessing and trying things out.

What does a GWoP's soul taste like? You can tell that I'm really leaning toward a demonic racial ability or somesuch. Demonologist? Maybe a corruption? I mean seriously - the theft, confinement, and subsequent misuse of another living creatures soul is pure evil, and has historically been confined to The Devil, demons, and suchlike. Who in story eat them, enslave them, and torture them.

Eat - recharge mana, basic food, etc. Chance of permenantly boosting a stat (like a potion of strength) Enslave - wear them, and your HP/mana/whatever recharges faster! Or +3 INT! cool... Torture - Do you think it'd be comfortable to be confined inside a flaming sword?

CosmicGerbil Hey Sorgath, thanks for the table dude :D That's really useful...it'll help me loads.

Hey, JohnGilmore, I was origianlly planning the Soul Harvester for T3, but Sorgath suggested it could be done for T2, so I am trying to do it for both. Lol, I think I. S. Norden would slay me if I tried to capture Barachiel, Keeper of the Bastion's soul ;) I was going to put weak monsters under letters, after all most I's are not very versatile in term of bonuses they could give you. I guess they could improve your love life (the multiply flag) rofl :D

I see what you mean that Soul Harvester should be demon related, but the problem is I only have one demon race in Gerband, so it would be quite restricted. I was thinking of allowing evil races (or races with the capacity to be evil) to play as a Soul Harvester. Hmmm...maybe worshipping Melkor should also be a requirement?

You wrote (about torturing souls)...

Do you think it'd be comfortable to be confined inside a flaming sword? 

Does the Soul Harvester care...he is EVIL ;)

JohnGilmore: Of course he cares! That's part of the reason he enjoys doing it. I.E. When embuing a weapon (and perhaps occasionally thereafter) you should get messages of torture:

You hear faint screaming from your fiery long sword +7.

Please, kill me!

I don't deserve this!

I swear, I really do know where the one ring is!

Release me, and I can grant you a wish! I swear it!

Your long sword seems to be groaning in agony.

Aaaaauuuughhh!

Etc.

Get creative, it's part of the fun!

Note that messages which don't referance you equipment should probably be preceded by a message to the effect of "You hear a voice from your leather gloves:" or such. The more color the better, right?

As for Barachiel, I did a search for "m_idx.*name" and that's the first name that came up with the correct call in my copy of 2.x lib directory. I often don't remember what to call, or the exact syntax for calling something, and solve it by searching throught the source for a half-remembered referance to something or other. Usually works quite well, but I guess it does make for rather odd examples...

I have no problem with anybody being able to learn how to steal souls. But they need to make the appropriate bargain first. I don't know what that might be. Some ritual involving the fresh corpse of a demon? Or an innocent? Something done with demonic equipment? Read a special scroll that begining soul stealers start with? That might work. Have it describe a ritual, and then prompt: Perform ritual dedicating your soul to the demon Azorthrogal? [y/N]

We could even give them a mark (corruption):

You have a demonic mark (smiley face) in the middle of your forhead:
-2 charisma
It gives the ability to steal souls.

or something.

One side effect might be that the blood of life doesn't work, and no god will ressurect you. Undead form should still work, I would think, but anything else your soul is dragged down to an endless hell. We could even add that message to the tombstone:

             Vorn
              the
           Sorcerer
          Necromancer
           Level: 40
         Exp: 2842375
          AU: 275563
      Killed on Level 63
  by an Ancient blue dragon.
And his soul dragged down to an
         Endless Hell,
     enslaved by the demon
         Azorthrogal.

   Sat Jul 22 00:17:34 2006

Ok, so maybe I'm getting a little too enthusiastic about this...

CosmicGerbil Lol, I love the description of the soul's voice inside the sword ;) And the smiley face mark, that's class!

I was laughing at the suggestion of Barachiel because he is a good angel...I think stealing his soul would be incredibly naughty ;)

I like the idea of a special scroll best. I also reckon that if you read the scroll and you worship a god (other than Melkor) your god should abandon you. I reckon Melkor would be delighted if you were capturing and torturing souls.

The new death message on the tombstone is cool too. I don't think I can do that for T2, but I'm pretty sure it can be done in T3 :)

CosmicGerbil This is an update of what I am planning to design for the powers for the Soul Harvester class.

The Soul Harvester's powers will be a set of powers accessed by the "m" key.

The first power is called Soul Steal. This power attacks a monster, although I haven't yet decided on the actual type of attack. The attack will drain the life force from a monster. If you try to attack a monster without a soul, it should return the message "This monster doesn't have a soul; it is immune to your attack".

This attack may not kill a monster outright (it depends on the level of the monster you are attacking and also your level of soul mastery skill). However if it does kill a monster, then you have a chance to steal its soul. This chance is random. If you are unsuccessful, the message will read something like "The blue yeek's soul flees before you can capture it". However if you are successful then you will capture the soul *if* you are carrying a suitable soul cage amulet. So if you are successful at capturing a GWoP's soul, but all you are carrying is a minor soul cage amulet, then the GWoP will still escape ;)

I will post up more when I begin trying to script this :) Feel free to add on any more ideas and suggestions.

Sorgath Perhapse it would be better to have steal soul toggle a boolean variable and then when a monster is killed if the variable is TRUE then ask the player if they want to capture that soul. If no then do nothing but if yes then set the variable to FALSE and run code to catch the soul.

CosmicGerbil That's a good idea...I like that :) Would it run something like this? This is just a flow diagram I have drawn to help me understand how to begin doing the code.

Use Soul Steal power 
Does it kill the monster?
If No, then do nothing.
If Yes then...
Does the monster have a soul?
If No then display message "This monster has no soul"
If Yes then...
Are you carring a suitable Soul Cage Amulet?
If No then display message "You do not have a suitable recepticle to store this soul in"
If Yes then display message "Do you want to steal this monster's soul y/n?"
If No then display message "The Blue yeek's soul flees to the afterlife".
If Yes then...
Run random check.  Are you successful?
If No then display message "The Blue yeek's soul flees to the afterlife".
If Yes then capture the soul and display suitable message :)

Sorgath Yes, that's similar to what i was proposing the only difference with my idea was the that Soul Steal power wouldn't actually be an attack. When activated it would simply try and steal the soul of the next monster killed regardless of how they died.

JohnGilmore: I really prefer the idea of the toggle, otherwise you have to deal with the issue of "how much damage does it deal?" and all of those silly "balance" questions. I'd much rather it was like "absorb soul" in that once cast, it lasts for a certian duration (or until the next monster death) and tries to steal the soul of any monster that dies. If you go with that, then I think that the death of a monster without a soul should have no effect at all - not even a message. After all, if there is no soul, then this magic has no effect, and can't even really "see" that monster at all. Which also implies that soulless monsters should be completely immune to the "attack" form of the spell.

Another option would be to make it a "trapkit" like ability - you cast the spell, and create a "soul stealing" symbol on the floor. Maybe you even have to "load" it with the soulgem you intend to use. And then you have to manuver the monster to die on that particular square. This would be just like the endgame of nethack - you have to kill the four horsemen exactly on top of the alter to your God, and then offer thier body as a sacrifice. I think this method would be the best. In fact, it would be best of it requires as many steps as possible to prepare the trap - engrave something, cast a spell, and then drop the soulgem on that square. No other objects permitted (can't break the circle!) That way it takes three turns to prepare the grid, and then you have to kill the monster while they're standing in exactly that spot.

CosmicGerbil Hey Sorgath, you mean more like this...

Monster dies. 
Use Soul Steal.
Does the monster have a soul?
If No then display message "This monster does not have a soul".
If Yes then ...
Display message "Do you want to steal this monster's soul y/n?"
If No then display message "The Blue yeek's soul flees to the afterlife".
If Yes then...
Are you carring a suitable Soul Cage Amulet?
If No then display message "You do not have a suitable recepticle to store this soul in"
If Yes then...
Run random check.  Are you successful?
If No then display message "Death appears, takes the blue yeek's soul and says to you 'Not this time mortal'".
If Yes then capture the soul and display suitable message :)

Hey JohnGilmore, I like the trapkit idea, but I have no idea how I would code it :( I have never tried to do anything with traps or floor symbols before. I don't even think I've ever set a trap as a player, lol :)

I did want to give a message even if the monster has no soul, because I reckon that'd be more helpful to the player. I didn't want the player thinking "Did my spell fail, or did the monster just not have a soul?" I have put some weird monsters into Gerband and they may confuse the player a bit when it comes to soul stealing ;)

CosmicGerbil I've started doing the monster list and my origianl system of classification doesn't work. So now the classification contains groups of similar monsters. For example, the Novice Warrior and the Apprentice Warrior can be classified together.

BTW, what does anyone think about which monsters should not have souls. Obviously I have included zombies, mummies, golems and sweets. What other monsters should I include? I wasn't going to include ghosts, because they are souls. However what about vampires, wraiths, wights and liches. Should these monsters be on the list of monsters that the Soul Harvester cannot capture?

Another (silly) thought. Should the Soul Harvester be allowed to capture Fumble Fingers' soul ;)

BucketMan Hello! Sorry...coming into the discussion late. Here's a thought: how about make it a timed effect? Say...you activate the soulgem, target the monster, and you have until the effect wears off to kill the monster. If you don't kill it in time, the gem is either discharged(and has to be recharged somehow) or destroyed(you missed your chance, go get a new gem.) You can hook into monster pre-death to check for the presence of the timed effect before it's killed. The bigger the soulgem, the longer effect lasts, and the less *close* you have to cut it. (Since people will hurt the monster as much as possible before activating the gem.) As to valid monster types...personally, I'd probably keep it simple and exclude all undead. Probably animals too...I'd say they have collective "spirits" instead of souls. Hmm. What does that leave? Humanoids and demons, mostly. Fumble fingers? Personally, as a player I'd MUCH rather soultrap kidnapped princesses. :) Just think...you could hear her whine for help every time you hit a monster with the sword you put her in. "You hit it. The poor priness screams for help. -more- You hit it. The princess begs for mercy."

CosmicGerbil I like that idea of a timed soul gem. Because it doesn't seem right that you can steal a monster's soul once it is dead...after all wouldn't its soul have already gone to the afterlife then. I don't want to destory the gem though as they are going to be rare and that would be too harsh on the player, heh :)

Having looked at the monster list and stated trying to sort through it, I realised just how many monsters there are and also a lot of them wouldn't give any useful bonuses at all. Not allowing the player to steal undead creatures' souls is a good idea (if they actually have souls that is).

Thinking about animals I could just inclucde: a) Certain powerful animals or uniques (e.g. the Wolf Chieftain, the Rat King, etc) I must include dragons, lol :D b) "Humanoid" animals (e.g. gerbils, foxan, lizardfolk and mindflayers)

Here are the monsters this would leave:

Definately use these ones...

dragons 
humanoids
kobolds
lizardfolk
nagas
orcs
people
townsfolk (yes everybody wants the chance to steal the mean-looking mercenaries soul ;) )
demons
yeeks
elementals
foxan
ogres
giant people
trolls

Maybe use these ones:

floating eyes and beholders 
molds (who wants Moldouxs' soul ;) )
quythulgs
xorns/xarens

I wonder if it is possible to steal the Princesse's soul? Oh yeeeeeeeeeeesssss!! :D

BucketMan Well, I wasn't thinking so much that you were taking their soul afte they died, so much as that you had to "liberate" their soul from their body in order to take it. Personally, either way, I'd just start building it. It should be fairly easy to change your mind later which types of creatures are relevant.

CosmicGerbil Cool, OK then :) I've edited a copy of r_info file and taken out all of the monsters that you can't steal souls from. I've left in the "maybes". Now I'm grouping the remainig monsters up, so all kobolds are classed together, except for Mugash and Vort. There are still going to be loads of monsters to steal souls from :)

CosmicGerbil I have a new idea for the Soul Mastery skill. I was going to have three powers available: Soul Steal, Release and Imbue (for imbueing souls into weapons). However I have thought of a way to make writing the code easier. I could have six seperate Soul Steal powers, each related to the type of Soul cage amulet...

Petty Soul Steal 
Lesser Soul Steal
Average Soul Steal
Grand Soul Steal
Master Soul Steal
Ultimate Soul Steal (can only be used if you have Azura's Star)

I will change the name of the Ultimate Soul cage amulet to Master Soul cage amulet.

So for example, at XP level one, the player can only use Petty Soul Steal and he needs a Petty Soul cage amulet to use it. However as he increases his Soul Mastery skill, he can learn the other powers. And finally when his Soul Mastery skill is maxed out, he can learn Ultimate Soul Steal, but he still needs to have Azura's Star to be able to steal a soul successfully.

Any thoughts/suggestions on this?

NerdanelVampire: I'm just popping in to say that this or a variant version could fit into Zothiqband. After all, Werewolf of Averoigne features a soul captured in a ring. The soul can answer questions (do divination spells). After the ring is broken the soul fights an enemy before departing forever. (Perhaps something like that could be included in your vision, in case you need ideas.) I'd been thinking of making an artifact or an ego of that, but this idea seems a lot more sophisticated.

CosmicGerbil Hey thanks, those are cool ideas :) Maybe the Soul cage amulet could have a small chance of breaking every time you activate it. Or you could choose to break it. Either way, if it is broken the amulet could do an insane amount of damage to any nearby monster, as the furious soul escapes and seeks revenge for it's imprisonment.

Divination spells sound cool...I think I will limit them to monsters that are smart and could cast such spells, or similar spells when they were alive e.g. wizards and mindflayers.

If you want to use the Soul Harvester class or any of my scripts for Zothiqband, feel free to do so :) I will post up all scripts I write (and scripts that people help me write, lol) onto the wiki. I'm not sure how useful the scripts I write for the T2 engine will be because I don't know how similar they will be to scripts for the T3 engine. (I haven't really tried writing scripts for the T3 engine yet, although I am planning on making the Soul Harvester class for both T2 and T3 engines).

Module Developers Discussion/update on new soul class for Gerband (last edited 2006-08-22 20:57:46 by host81-157-201-5)