Anyway I'm now convinced combat is broken just from me playing on PD. I'll explain how it is meant to work. I haven't done a full analysis on what is actually happening tho.
Firstly it is based on dnd 3rd ed d20.
ThAC0 (AS) is based on your skill in the weap of choice, + other factors like lvl, purple pots etc etc. Details.
AC (Def) for players is primarily based on armour. Def from med & heavy is scaled down to your % in fighter skills. This is a bit of a leap but it works.
Attack roll works the same: roll 1-20. BUT (read on!)
... there is no 'missing'. Instead of a chance to hit (based on thac0 (AS in EUO)) minus AC (defense) - there is always a hit and the damage done is scaled down to (as-def)/20.
actual euo source code below
Code: Select all
// now scale the damage down according to def-as
int diff=defender->get_ac()-attacker->get_thaco();
float scale=1.1-diff/20;
if(scale>1.1)scale=1.1f;
else if(scale<0.1)scale=0.1f;
damage=ROUND(damage*scale);
if(damage==0) damage=1;
attacker AS is 20
defender ac is 10
diff is 10. 10/20 means damage is 50%.
Isn't it true that you need the same AS as the defence of the target to get a >1dmg hit in? That is meant to be the idea. If you have more than 20AS than the target's AC then you should do 100% damage (110% dmg actually if you look at the rotten code).
I honestly can't remember why I took out missing and made it hit all the time.
I think this is the main flaw:
Damage is calculated independently of skill in weapon. AND damage gets bonus from high stats. So you might be up for really high damage anyway.