Wizardry: Proving Grounds of the Mad Overlord

Wizardry: Proving Grounds of the Mad Overlord

View Stats:
Anti-Undead Ring
Does this ring protect against level draining?
< >
Showing 1-10 of 10 comments
Bugog Feb 7, 2024 @ 8:07am 
iirc it doesn't protect you from the drain as in giving you resistance to it, but it gives you indirect protection because a lot of the baddies who level drain are undead.
Last edited by Bugog; Feb 7, 2024 @ 8:07am
greygriffin Feb 7, 2024 @ 2:58pm 
So just an increase in AC against Undead or something along those lines?
Zatarra Feb 7, 2024 @ 3:53pm 
I'll search through the pascal code later to find it's exact purpose but much of the original old code is cryptically challenging to decipher. They wrote it intentionally difficult.
Bugog Feb 8, 2024 @ 12:34am 
Originally posted by greygriffin:
So just an increase in AC against Undead or something along those lines?

I'll tell you the way I've heard it works, but this is from memory and it's been a long time since I looked it up.

The mechanics under the hood is that protection from undead makes it so that half of the actions against the person with the ring fail if the attacker is undead. So an undead who targets you will only get to attack half the time. This can also affect spells, but if it's a group wide spell it will actually target someone at random and if that person has the correct item it will roll to see if the entire party is affected.

There are different rules for elemental protections (like the fire chain, rod, etc).
Zatarra Feb 8, 2024 @ 3:13pm 
Ok, so yes your correct that normal saving throws vs "special damage" cause that damage to be 1/2 its normal value. So naturally 'mace pro poison' would ensure you take 1/2 poison damage. That made me wonder what that undead ring was coded for because 1/2 a level drain wouldn't make sense really, did you lose a level or didn't you? I mean I guess you could lose "X amount of experience" and that could be cut in half, but then you might not LOSE A LEVEL which, if you're drained you always DO!

Here is how the code works for something like BREATH (I omitted MOST of the procedure and only showing the line we are concerned with).

[This line says, if you make your LUCK saving throw, you take 1/2 dmg]
IF (RANDOM MOD 20) >= CHARACTR[ CHARX].LUCKSKIL[ 3] THEN
HITDAM := (HITDAM + 1) DIV 2;

[this line says if you have an "item VS special attack type breath" then you take 1/2 dmg.]
IF CHARACTR[ CHARX].WEPVSTY3[ 1][ BATTLERC[ BATG].B.BREATHE] THEN
HITDAM := (HITDAM + 1) DIV 2;

So that's typical of other saving throws, but lets look at level drain procedure!

[this line says if you are victim of level drain and have an items VS special attack type drain then EXIT the level drain procedure! Thus avoiding level drain]
IF CHARACTR[ MYVICTIM].WEPVSTY3[ 1][ 4] THEN
EXIT( DRAINLEV);

So It would seem that ring would stop you from being level drained.

I'm going to patch the code so that I have a full party all with undead protection rings and roam around until I find a bunch of vampires. Then I'll just parry for about 5 or 6 rounds and see if anyone gets drained.
I believe that will put this to rest.

Thanks for the quest!
Enjoy.
Last edited by Zatarra; Feb 8, 2024 @ 3:46pm
Bugog Feb 8, 2024 @ 3:49pm 
The level drain protection is what the shuriken has, not what the ring has. The ring is a class protection. I did some google searching at worked today and I found an article Data Driven Gamer [datadrivengamer.blogspot.com] which is where I got the information originally.
Zatarra Feb 8, 2024 @ 4:46pm 
Originally posted by Bugog:
The level drain protection is what the shuriken has, not what the ring has. The ring is a class protection. I did some google searching at worked today and I found an article Data Driven Gamer [datadrivengamer.blogspot.com] which is where I got the information originally.

I do believe the PASCAL code disagrees with that analysis. I'll admit, I'm leaving a bit of room here that I could be mistaken and that's why I wanted to run the test. The code where undead attacks occur determine first if they can hit you at all. If they can't hit you, then you skip the whole level drain routine. But its very weird, because it seems to target 2 characters at a time and if one resists it might default to hit the other one. Even if the first character avoids it due to having a protection of some sort.
Its very confusing the way they wrote the code, and it almost seems they wrote it like that on purpose because it would have been much simpler to case loops. But they didn't and there are weird calls to variables in memory that aren't even used!

I'll test it when I get a bit more free time. I have 5 kids so free time is at a minimum.
Bugog Feb 8, 2024 @ 7:37pm 
That's actually covered in the link that I posted. Under the "protection - class protection" section:
Protection: Class protection
When monsters of the protected type(s) target you, there's a 50% chance that it silently fails, causing them to lose their turn. Note that all monster actions, including breath attacks, party-hitting spells, and actions without obvious targets like running or calling, always target a random living party member. Class protection will not protect you from breath attacks or group spells that targeted a non-protected character.

Melee attacks are a special case, due to some strange programming. Melee attacks technically target two party members - the first can be any living member, and the second is someone in the first three ranks. This means two separate class protection checks, and either one may nullify the attack. It's possible for the same party member to be targeted both times, in which case if they have protection there is a 75% chance of nullifying it.

What you said about drain protection lines up with his assessment of the "Protection: elemental protection"
Protection: Elemental protection
Breath attacks and group-targeting spells of the indicated element(s) do half damage. In addition,
Physical – You are immune to paralysis effects from hits. You will also never suffer critical hits.
Poison – You are immune to poison effects from hits.
Drain – You are immune to level drain.
Stone – You are immune to stone effects from hits.
Magic – When a monster targets you with any spell, the spell is silently nullified. Note that spells cast by monsters always target a randomly chosen living character, even if it's a group-affecting spell like Mahalito. Magic protection will not protect you if a group-affecting spell targets a non-protected character.

Later in the article he identified that the Ring of undead protection had "Class protection: undead", while they list the shuriken as "Elemental protection: Poison Drain".

I think what you're saying lines up with what he's saying, except what kind of protection the ring itself falls under.
Zatarra Feb 9, 2024 @ 4:58am 
It's difficult to identify where these properties are referred and extracted sometimes. Like the lords garb which has properties designed to increase your damage against certain classes of monsters. Yet the combat routines never check ARMOR for such values, only weapons.
I think their vision of the initial design of wizardry exceeded the disk space available on the apple platform at that time and thus unused or needlessly convoluted code.
Meepichi Aug 26, 2024 @ 11:40am 
Well, my priest who was wearing that ring got hit and lost 2 levels so I'm assuming it doesn't protect from level drain. It was a solo Life Stealer too who surprised us. Bad luck.
< >
Showing 1-10 of 10 comments
Per page: 1530 50