CoDT Formulas
From Soloralwiki
(3 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
+ | =Accuracy Formula= | ||
+ | ==Base Accuracy== | ||
- | Accuracy | + | '''Base Facing + User's Accuracy Mod - Target's Evasion Mod + Speed Comparison + Level Comparison''' = percent chance to hit (cannot be below 0 or above 95) |
- | + | * '''Base Facing''' - front: 50, front/side: 60, side: 70, side/back: 80, back: 90. | |
- | + | * '''User's Accuracy Mod''' - the job's natural accuracy bonus or penalty + accuracy bonuses or penalties from equipment + accuracy bonus or penalties from status effects | |
- | '''Base Facing''' - front: 50, front/side: 60, side: 70, side/back: 80, back: 90. | + | * '''Target's Evasion Mod''' - the job's natural evasion bonus or penalty + evasion bonuses or penalties from equipment + evasion bonus or penalties from status effects |
- | ''' | + | * '''Speed Comparison''' - (user's speed - target's speed)/4. User being faster results in a bonus, target being faster results in a penalty. |
- | ''' | + | * '''Level Comparison''' - user's level - target's level. Each level above gives 1%, each level below gives -1%. |
- | ''' | + | |
- | ''' | + | |
Example 1: level 2 Soldier (acc mod 0, no equipment or status effects) with speed of 15 attacks a level 2 Rogue (evasion mod +10, no equipment or status effects) with speed 25 from the front. | Example 1: level 2 Soldier (acc mod 0, no equipment or status effects) with speed of 15 attacks a level 2 Rogue (evasion mod +10, no equipment or status effects) with speed 25 from the front. | ||
- | Base facing = 50 from front. | + | Base facing = 50 from front.<br /> |
- | User's Accuracy mod = 0 from job, 0 from equipment, 0 from status = 0 total | + | User's Accuracy mod = 0 from job, 0 from equipment, 0 from status = 0 total<br /> |
- | Target's Evasion mod = 10 from job, 0 from equipment, 0 from status = 10 total | + | Target's Evasion mod = 10 from job, 0 from equipment, 0 from status = 10 total<br /> |
- | Speed comparison = (15 - 25)/4 = -10/4 = -2 penalty (rounded down from a fraction) | + | Speed comparison = (15 - 25)/4 = -10/4 = -2 penalty (rounded down from a fraction)<br /> |
- | Level comparison = 2 - 2 = 0 | + | Level comparison = 2 - 2 = 0<br /> |
- | So... attack success rate is... | + | So... attack success rate is...<br /> |
- | 50 + 0 - 10 - 2 + 0, or '''38%''' | + | 50 + 0 - 10 - 2 + 0, or '''38%'''<br /> |
Which is crappy odds, and probably a waste of time trying it. | Which is crappy odds, and probably a waste of time trying it. | ||
Example 2: level 2 Soldier (acc mod 0, +5 acc ring, no status effects) with speed of 15 attacks a level 2 Rogue (evasion mod +10, no equipment or status effects) with speed 25 from the side/back. | Example 2: level 2 Soldier (acc mod 0, +5 acc ring, no status effects) with speed of 15 attacks a level 2 Rogue (evasion mod +10, no equipment or status effects) with speed 25 from the side/back. | ||
- | 80 from side/back + 5 from acc ring - 10 from Rogue's evasion - 2 from speed penalty + 0 level difference | + | 80 from side/back + 5 from acc ring - 10 from Rogue's evasion - 2 from speed penalty + 0 level difference<br /> |
- | 80 + 5 - 10 - 2 + 0 = '''73%''' | + | 80 + 5 - 10 - 2 + 0 = '''73%'''<br /> |
Which is decent enough to try, especially considering that dirty Rogue probably has very bad defense. | Which is decent enough to try, especially considering that dirty Rogue probably has very bad defense. | ||
+ | |||
+ | ==Hit Comparison== | ||
+ | |||
+ | '''If Rand() <= Hit% - ShieldMod then Hit''' | ||
+ | |||
+ | '''Rand{}''' - Random Number between 0 and 100 inclusive.<br /> | ||
+ | '''Hit%''' - Number attained through the "Accuracy Formula" above.<br /> | ||
+ | '''ShieldMod''' - Percentage that shield adds to ability to defend. | ||
+ | |||
+ | If a value is found to be between the grey area between Hit% and (Hit% - ShieldMod), then that hit is defended with a shield rather than dodged. | ||
+ | |||
+ | =Damage Formulas= | ||
+ | |||
+ | ==Base Damage Formula== | ||
+ | |||
+ | '''(Base Damage + (Attack Stat/2) - (Defense Stat/4)) *Crit Mod *Skill Mod *Slight Randomizer = Damage to defender''' | ||
+ | |||
+ | * '''Base Damage''' - varies depending on action. Normal attacks or anything that deals damage based on normal attacks use the weapon's base damage. Damage spells use a set number based on the spell. | ||
+ | * '''Attack Stat''' - the user's relevant attack stat. Physical abilities mostly use Strength. Magic abilities mostly use Magic Power. Note that any modifiers from gear or status effects are added onto the base stat at this point. HOWEVER base weapon damage is NOT added onto the stat! | ||
+ | * '''Defense Stat''' - the target's relevant defense stat. Physical abilities mostly use Defense. Magic abilities mostly use Magic Resistance. Note that any modifiers from gear or status effects are added onto the base stat at this point. | ||
+ | * '''Crit Mod''' - the entire damage is multiplied by 1.5 if a critical is scored. | ||
+ | * '''Skill Mod''' - some abilities do damage based on a normal attack. The multiplier based on the ability is multiplied in here. | ||
+ | *'''Slight Randomizer''' - the actual damage will be between 90% and 110% of the total up to this point. The randomizer makes it a little higher or lower mainly fun. Note that the non-randomized damage is shown to the user before the ability is used. | ||
+ | |||
+ | Example 1: level 3 Soldier with Strength of 30 and a sword with damage 10 hits a level 3 Rogue with Defense of 19 and Defense from armor of 3 and scores a normal hit (no critical). | ||
+ | |||
+ | Base Damage = 10 from the Soldier's sword.<br /> | ||
+ | Attack Stat = Soldier's Strength stat of 30.<br /> | ||
+ | Defense Stat = Rogue's Defense stat of 19 + 3 from armor = 22.<br /> | ||
+ | Crit Mod = 1, since the attack is not a critical hit.<br /> | ||
+ | Stat Mod = 1, because the formula is based off of normal attacks.<br /> | ||
+ | Slight Randomzier = we don't know! | ||
+ | |||
+ | So... damage dealt is...<br /> | ||
+ | (10 + 30/2 - 22/4)*1 *1 *?<br /> | ||
+ | (10 + 15 - 5)*1 *1 *? {22/4 is 5.5, but it rounded down to 5}<br /> | ||
+ | (20)*1 *1 *? For this example, the randomizer is 100%, meaning the attack does exactly what the theoretical damage should be, so the modifier is 1.<br /> | ||
+ | 20 *1 = '''20 damage to the Rogue'''<br /> | ||
+ | Ouch. That's a decent hit from a level 3 character. Preliminary stats only put a level 3 Rogue / Merchant at having 37 HP, so he'd be in trouble right from the get go. But it WAS a hit from a job with respectable strength and Rogues rely more on evasion than defense, so the damage seems balanced. | ||
+ | |||
+ | Example 2: the same soldier attacks the same rogue and hits with Muscle Strain, which does 150% damage of a physical attack and then does 1/4 of the damage done to the user. | ||
+ | |||
+ | Base of 10 + Strength of 30/2 - Defense of 22/4 *1 *1.5 from Muscle Strain abiity *? for radomizer<br /> | ||
+ | (10 + 15 - 5)*1.5 *?<br /> | ||
+ | 20*1.5 *?<br /> | ||
+ | 30 *? For this example, the randomizer is 103%, so the modifier is 1.03<br /> | ||
+ | 30*1.03 = 30.9, which still rounds down to '''30 damage to the Rogue'''. | ||
+ | |||
+ | So the Rogue takes 30 damage. HOWEVER, the Muscle Strain ability does 1/4 of this damage to the Soldier. This damage is based off the damage done to the Rogue and doesn't use the Rogue's Strength or the Soldier's defense. | ||
+ | |||
+ | 30/4 = 7.5 which rounds to '''7 damage to the Soldier'''.<br /> | ||
+ | Probably a decent price to pay, considering the Soldier's superior HP and Defense stat.<br /> | ||
+ | Note that if this attack missed entirely, neither damage to the Rogue nor the Soldier is calculated. | ||
+ | |||
+ | ==Modified Damage Formulas== | ||
+ | |||
+ | ===Fast Weapon Formula=== | ||
+ | |||
+ | '''(Base Damage + (Attack Stat+Speed Superiority/2) - (Defense Stat/4)) *Crit Mod *Skill Mod *Slight Randomizer = Damage to defender''' | ||
+ | |||
+ | * '''Speed Superiority''' - User's Speed - Target's Speed. If it's less than 0 (the user has a lower speed than the target) than it is set to 0, so this can never give a penalty. | ||
+ | |||
+ | This formula is used for fast weapons like knives or abilities that describe damage increasing with faster speed. All other variables behave normally. | ||
+ | |||
+ | ===Ranged Attack Formula=== | ||
+ | |||
+ | '''(Base Damage + (Attack Stat+Accuracy Bonus/2) - (Defense Stat/4)) *Crit Mod *Skill Mod *Height Mod *Slight Randomizer = Damage to defender''' | ||
+ | |||
+ | * '''Accuracy Bonus''' - the normal bonus accuracy from a job or accuracy from equipment. Note that this stat can be a penalty to damage if the user has poor accuracy (from blindness or really weird gear) | ||
+ | *'''Height Mod''' - Adds 10% for each level the user is above target. Subtracts 10% for each level below. Note that this only applies to ranged attacks. Normal weapon attacks made from high or low ground don't get this bonus or penalty (at least for now). | ||
+ | |||
+ | This formula is used for ranged weapons like bows or crossbows or abilites that imply something is being thrown such as Mercenary or Ninja ranged abilities. It doesn't apply to magic or any other ranged ability that doesn't involve some projectile (such as the Sword Mage's Elemental Blast) | ||
+ | |||
+ | ==Unresisted Formula== | ||
+ | |||
+ | '''(Base Effect + (Relevant Stat of User/5) *Skill Mod *Slight Randomizer = Effect on target''' | ||
+ | |||
+ | *'''Relevant Stat''' - whatever stat the move is based off of (usually Magic Power). | ||
+ | |||
+ | This formula is used for benefictial numerical abilities such as Cure spells that people wouldn't want to use defense or magic power to try to reduce. Note that the spell dosn't care if you're casting on an ally or an enemy - enemies don't automatically get the resisted version and will use this formula just like allies. | ||
+ | |||
+ | At this point 5 is pretty much an arbitrary number. It may be decreased to make cure spells scale better with stat growth. | ||
+ | [[Category:Control of Destiny Tactics]] |
Current revision as of 05:42, 30 December 2006
Contents |
Accuracy Formula
Base Accuracy
Base Facing + User's Accuracy Mod - Target's Evasion Mod + Speed Comparison + Level Comparison = percent chance to hit (cannot be below 0 or above 95)
- Base Facing - front: 50, front/side: 60, side: 70, side/back: 80, back: 90.
- User's Accuracy Mod - the job's natural accuracy bonus or penalty + accuracy bonuses or penalties from equipment + accuracy bonus or penalties from status effects
- Target's Evasion Mod - the job's natural evasion bonus or penalty + evasion bonuses or penalties from equipment + evasion bonus or penalties from status effects
- Speed Comparison - (user's speed - target's speed)/4. User being faster results in a bonus, target being faster results in a penalty.
- Level Comparison - user's level - target's level. Each level above gives 1%, each level below gives -1%.
Example 1: level 2 Soldier (acc mod 0, no equipment or status effects) with speed of 15 attacks a level 2 Rogue (evasion mod +10, no equipment or status effects) with speed 25 from the front.
Base facing = 50 from front.
User's Accuracy mod = 0 from job, 0 from equipment, 0 from status = 0 total
Target's Evasion mod = 10 from job, 0 from equipment, 0 from status = 10 total
Speed comparison = (15 - 25)/4 = -10/4 = -2 penalty (rounded down from a fraction)
Level comparison = 2 - 2 = 0
So... attack success rate is...
50 + 0 - 10 - 2 + 0, or 38%
Which is crappy odds, and probably a waste of time trying it.
Example 2: level 2 Soldier (acc mod 0, +5 acc ring, no status effects) with speed of 15 attacks a level 2 Rogue (evasion mod +10, no equipment or status effects) with speed 25 from the side/back.
80 from side/back + 5 from acc ring - 10 from Rogue's evasion - 2 from speed penalty + 0 level difference
80 + 5 - 10 - 2 + 0 = 73%
Which is decent enough to try, especially considering that dirty Rogue probably has very bad defense.
Hit Comparison
If Rand() <= Hit% - ShieldMod then Hit
Rand{} - Random Number between 0 and 100 inclusive.
Hit% - Number attained through the "Accuracy Formula" above.
ShieldMod - Percentage that shield adds to ability to defend.
If a value is found to be between the grey area between Hit% and (Hit% - ShieldMod), then that hit is defended with a shield rather than dodged.
Damage Formulas
Base Damage Formula
(Base Damage + (Attack Stat/2) - (Defense Stat/4)) *Crit Mod *Skill Mod *Slight Randomizer = Damage to defender
- Base Damage - varies depending on action. Normal attacks or anything that deals damage based on normal attacks use the weapon's base damage. Damage spells use a set number based on the spell.
- Attack Stat - the user's relevant attack stat. Physical abilities mostly use Strength. Magic abilities mostly use Magic Power. Note that any modifiers from gear or status effects are added onto the base stat at this point. HOWEVER base weapon damage is NOT added onto the stat!
- Defense Stat - the target's relevant defense stat. Physical abilities mostly use Defense. Magic abilities mostly use Magic Resistance. Note that any modifiers from gear or status effects are added onto the base stat at this point.
- Crit Mod - the entire damage is multiplied by 1.5 if a critical is scored.
- Skill Mod - some abilities do damage based on a normal attack. The multiplier based on the ability is multiplied in here.
- Slight Randomizer - the actual damage will be between 90% and 110% of the total up to this point. The randomizer makes it a little higher or lower mainly fun. Note that the non-randomized damage is shown to the user before the ability is used.
Example 1: level 3 Soldier with Strength of 30 and a sword with damage 10 hits a level 3 Rogue with Defense of 19 and Defense from armor of 3 and scores a normal hit (no critical).
Base Damage = 10 from the Soldier's sword.
Attack Stat = Soldier's Strength stat of 30.
Defense Stat = Rogue's Defense stat of 19 + 3 from armor = 22.
Crit Mod = 1, since the attack is not a critical hit.
Stat Mod = 1, because the formula is based off of normal attacks.
Slight Randomzier = we don't know!
So... damage dealt is...
(10 + 30/2 - 22/4)*1 *1 *?
(10 + 15 - 5)*1 *1 *? {22/4 is 5.5, but it rounded down to 5}
(20)*1 *1 *? For this example, the randomizer is 100%, meaning the attack does exactly what the theoretical damage should be, so the modifier is 1.
20 *1 = 20 damage to the Rogue
Ouch. That's a decent hit from a level 3 character. Preliminary stats only put a level 3 Rogue / Merchant at having 37 HP, so he'd be in trouble right from the get go. But it WAS a hit from a job with respectable strength and Rogues rely more on evasion than defense, so the damage seems balanced.
Example 2: the same soldier attacks the same rogue and hits with Muscle Strain, which does 150% damage of a physical attack and then does 1/4 of the damage done to the user.
Base of 10 + Strength of 30/2 - Defense of 22/4 *1 *1.5 from Muscle Strain abiity *? for radomizer
(10 + 15 - 5)*1.5 *?
20*1.5 *?
30 *? For this example, the randomizer is 103%, so the modifier is 1.03
30*1.03 = 30.9, which still rounds down to 30 damage to the Rogue.
So the Rogue takes 30 damage. HOWEVER, the Muscle Strain ability does 1/4 of this damage to the Soldier. This damage is based off the damage done to the Rogue and doesn't use the Rogue's Strength or the Soldier's defense.
30/4 = 7.5 which rounds to 7 damage to the Soldier.
Probably a decent price to pay, considering the Soldier's superior HP and Defense stat.
Note that if this attack missed entirely, neither damage to the Rogue nor the Soldier is calculated.
Modified Damage Formulas
Fast Weapon Formula
(Base Damage + (Attack Stat+Speed Superiority/2) - (Defense Stat/4)) *Crit Mod *Skill Mod *Slight Randomizer = Damage to defender
- Speed Superiority - User's Speed - Target's Speed. If it's less than 0 (the user has a lower speed than the target) than it is set to 0, so this can never give a penalty.
This formula is used for fast weapons like knives or abilities that describe damage increasing with faster speed. All other variables behave normally.
Ranged Attack Formula
(Base Damage + (Attack Stat+Accuracy Bonus/2) - (Defense Stat/4)) *Crit Mod *Skill Mod *Height Mod *Slight Randomizer = Damage to defender
- Accuracy Bonus - the normal bonus accuracy from a job or accuracy from equipment. Note that this stat can be a penalty to damage if the user has poor accuracy (from blindness or really weird gear)
- Height Mod - Adds 10% for each level the user is above target. Subtracts 10% for each level below. Note that this only applies to ranged attacks. Normal weapon attacks made from high or low ground don't get this bonus or penalty (at least for now).
This formula is used for ranged weapons like bows or crossbows or abilites that imply something is being thrown such as Mercenary or Ninja ranged abilities. It doesn't apply to magic or any other ranged ability that doesn't involve some projectile (such as the Sword Mage's Elemental Blast)
Unresisted Formula
(Base Effect + (Relevant Stat of User/5) *Skill Mod *Slight Randomizer = Effect on target
- Relevant Stat - whatever stat the move is based off of (usually Magic Power).
This formula is used for benefictial numerical abilities such as Cure spells that people wouldn't want to use defense or magic power to try to reduce. Note that the spell dosn't care if you're casting on an ally or an enemy - enemies don't automatically get the resisted version and will use this formula just like allies.
At this point 5 is pretty much an arbitrary number. It may be decreased to make cure spells scale better with stat growth.