 # WoTMUD Archives

A player-run forum for the Wheel of Time MUD
 It is currently Sat Dec 04, 2021 3:33 am

 All times are UTC - 5 hours [ DST ]

 Print view Previous topic | Next topic
Author Message
 Post subject: How OB, DB, and PB are Calculated Posted: Mon Feb 02, 2015 11:18 am Joined: Tue May 08, 2012 11:08 am
Posts: 51
Most of the following information can be found by viewing the source coding for the Equipment Trainer. This post is designed to present the information in a somewhat more user-friendly form, so that all who wish may have a better understanding of how these things work.

April 1, 2016: As promised, status ailments and Position effects (standing/sitting/resting/sleeping) have now been incorporated.

Terms
Code:
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

Offensive Bonus
Code:
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)

Dodge Bonus
Code:
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)

Parry Bonus
Code:
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)

Top Post subject: Re: How OB, DB, and PB are Calculated Posted: Fri Apr 01, 2016 9:43 pm Joined: Tue May 08, 2012 11:08 am
Posts: 51
Updated to show effects of Status ailments and Position on OB/DB/PB.

Top Display posts from previous: All posts1 day7 days2 weeks1 month3 months6 months1 year Sort by AuthorPost timeSubject AscendingDescending

 All times are UTC - 5 hours [ DST ]

#### Who is online

Users browsing this forum: No registered users and 2 guests

 You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forum

Search for:
 Jump to:  Select a forum ------------------ Announcements    Archives Announcements General    Game    Trading Post Help    General    zMUD    cMUD    Mudlet    TinTin/WinTin Wiki    Wiki General    Wiki Help    Wiki Map Project 