April 1, 2016: As promised, status ailments and Position effects (standing/sitting/resting/sleeping) have now been incorporated.
Terms
Code: Select all
Race = Human or Trolloc
Ride = Ride Level (0-7)
Lvl = Character's Level (1-30)
Str = Strength stat
Dex = Dexterity stat
Con = Constitution stat
Weight = Total worn and carried weight
MaxW = Max weight allowance = ((8.5 * Str) + (3.5 * Con))
Wper = Weapon practice % (IF Wper < 5%, Wper = 5%) <-This is why wielding a weapon with no pracs still gives OB and PB->
Dper = Dodge practice %
Sper = Shield parry practice % (IF Sper < 5%, Sper = 5%) <-This is why wearing a shield with no pracs still gives PB->
Wpn_ob = Weapon's base OB value
Wpn_pb = Weapon's base PB value
Shield_db = Shield's DB malus
Shield_pb = Shield's base PB value
Eq_DB = Net total value of DB provided by all worn equipment and trinkets
Eq_PB = Net total value of PB provided by all worn equipment and trinkets
Lvl_ob_mood = Mood values used to modify Lvl
Wimpy = 7/3
Normal = 77/30
Brave = 161/60
Berserk = 35/12
W_ob_mood = Mood values used to modify Ride and weapon OB
Wimpy = 1
Normal = 11/10
Brave = 23/20
Berserk = 5/4
PB_mood = Mood values used for various PB modifications
Wimpy = 71/50
Normal = 13/10
Brave = 23/20
Berserk = 1
Posture_ob = Added offensive bonus based on Master posture
Non-master = 0
Defensive = 0
Normal = 5
Offensive = 10
Posture_pb = Added parry bonus based on Master posture
Non-master = 0
Defensive = 15
Normal = 10
Offensive = 0
Position_ob = Position does not modify OB except when sleeping - handled during OB calcs
Position_db = Position values used to modify DB
Standing = 1
Sitting = 1/4
Resting = 1/4
Sleeping = handled during DB calcs
Position_pb = Position values used to modify PB
Standing = 1
Sitting = 3/4
Resting = 3/4
Sleeping = 1/2
Code: Select all
IF (Hardened weapon) THEN
Wpn_ob = Wpn_ob + 5 <- Honing adds damage but no OB. Hardening adds 5 OB directly to the weapon's base OB ->
OB = Lvl * Lvl_ob_mood
OB = OB + ((Wper / 100) * (Str / 19) * (Wpn_ob * W_ob_mood))
IF (Race = Human and Ride > 0) THEN
OB = OB + ((Ride + 4) * W_ob_mood)
OB = OB * (1 - ((5 * Weight) / (25 * MaxW))) <- OB is affected the least by total weight ->
OB = OB + Posture_ob <- Add master posture bonus, if any ->
IF (Blind Status) THEN
OB = OB / 2 <- Blind status reduces OB by 50% ->
IF (Race = Human and Blind = 0) <- Darkness only affects humans, but not if blind ->
OB = OB * 3 / 4 <- Darkness reduces OB by 25% ->
IF (Chill Status) THEN
OB = OB * 9 / 10 <- Chill status reduces OB by 10% ->
IF (Contagion Status) THEN
OB = OB / 2 <- Contagion status reduces OB by 50% ->
IF (Position = Sleeping) THEN
OB = 1 <- Sleeping position reduces OB to 1 ->
OB = OB + 1 <- All races get a +1 to OB ->
IF (Race = Trolloc) THEN
OB = OB + 4 <- Trollocs get a +4 OB boost ->
OB = Round(OB)
Code: Select all
DB = (Lvl * 2 / 3)
DB = DB + ((Dper / 99) * (Dex / 19) * 70)
DB = DB + Shield_DB <- All shields impose a DB malus before weight effects and rounding. ->
<- This is assigned and not a function of shield weight.->
IF (Race = Human and Ride > 0) THEN
DB = DB + Ride - 11
DB = DB * (1 - ((5 * Weight) / (8 * MaxW))) <- DB is the most sensitive to total weight->
DB = DB + Eq_DB
IF (Blind Status) THEN
DB = DB * 4 / 5 <- Blind status reduces DB by 20% ->
IF (Race = Human and Blind = 0) <- Darkness only affects humans, but not if blind ->
DB = DB * 9 / 10 <- Darkness reduces DB by 10% ->
IF (Armor_Weave) THEN
DB = DB + 10 <- Armor status adds 10 to DB ->
IF (Chill Status) THEN
DB = DB * 9 / 10 <- Chill status reduces DB by 10% ->
IF (Contagion Status) THEN
DB = DB * 4 / 5 <- Contagion status reduces DB by 20% ->
DB = DB * Position_DB <- Position calcs ->
IF (Position = Sleeping) THEN
DB = 1 <- Sleeping position reduces DB to 1 ->
DB = Round(DB)
Code: Select all
IF (Lvl > 20) THEN
Lvl = 20 <- Naked PB does not increase after level 20 ->
PB = Lvl * PB_mood
PB = PB + ((Wper / 100) * (Str / 19) * (Wpn_pb * PB_mood)) <- PB from weapons is modified by Str only, and is the same whether 1 or 2-handed ->
PB = PB + ((Sper / 100) * (Dex / 19) * (Shield_pb * PB_mood)) <- PB from shields is modified by Dex only ->
PB = PB * (1 - ((5 * Weight) / (16 * MaxW))) <- PB is more sensitive to weight than OB, but less than DB ->
PB = PB + (Eq_PB * PB_mood) <- PB from equipment is subject to mood modifiers. ->
<- This is why some items seem to have fractional PB values in moods other than Berserk ->
PB = PB + Posture_pb <- Add master posture bonus, if any ->
IF (Blind Status) THEN
PB = PB / 2 <- Blind status reduces PB by 50% ->
IF (Race = Human and Blind = 0) <- Darkness only affects humans, but not if blind ->
PB = PB * 3 / 4 <- Darkness reduces PB by 25% ->
IF (Chill Status) THEN
PB = PB * 9 / 10 <- Chill status reduces PB by 10% ->
IF (Contagion Status) THEN
PB = PB / 2 <- Contagion status reduces PB by 50% ->
PB = PB * Position_PB <- Position calcs ->
PB = Round(PB)