StendhalRefactoringRP: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Danter
imported>Danter
Line 38: Line 38:


if risk to hit > 0:
if risk to hit > 0:
attacker part = 0.8 * (roll 1D100 / 100) * source[ATK]^2 + 4 * source[ATK] * weapon
attacker_part = 0.8 * (roll 1D100 / 100) * source[ATK]^2 + 4 * source[ATK] * weapon
maxdamage = 0.8 * source[ATK]^2 + 4 * weapon
maxdamage = 0.8 * source[ATK]^2 + 4 * weapon
defender part = 0.6 * (roll 1D100 / 100) * target[DEF]^2 + 4 * target[DEF] * shield + 2 * target[DEF] *
defender_part = 0.6 * (roll 1D100 / 100) * target[DEF]^2 + 4 * target[DEF] * shield + 2 * target[DEF] *
armor + target[DEF]* helmet + target[DEF] * legs + target[DEF] * boots
armor + target[DEF]* helmet + target[DEF] * legs + target[DEF] * boots


damage = ((attacker part - defender part) / maxdamage) * (maxdamage/source[ATK])
damage = ((attacker_part - defender_part) / maxdamage) * (maxdamage/source[ATK])
</pre>
</pre>


Line 59: Line 59:
So a nice formula would be:
So a nice formula would be:
<pre>
<pre>
rangedamage = damage * ( actual distance / max range of weapon )
range_damage = damage * ( actual_distance / max range of weapon )


if actual distance < min range:
if actual_distance < min_range:
damage = damage / 20
damage = damage / 20
if actual distance > max range:
if actual_distance > max_range:
damage = 0
damage = 0
</pre>
</pre>
Line 70: Line 70:


<pre>
<pre>
attacker part = 0.8 * (roll 1D100 / 100) * source[ATK]^2 + 4 * source[ATK] * (weapon + arrow)
attacker_part = 0.8 * (roll 1D100 / 100) * source[ATK]^2 + 4 * source[ATK] * (weapon + arrow)
maxdamage = 0.8 * source[ATK]^2 + 4 * (weapon + arrow)
maxdamage = 0.8 * source[ATK]^2 + 4 * (weapon + arrow)


rangedamage = damage * ( 1 - (actual_distance / max_range) ) + ( damage - damage * ( 1 - (min_range / max_range) ) )
range_damage = damage * ( 1 - (actual_distance / max_range) ) + ( damage - damage * ( 1 - (min_range / max_range) ) )
* ( 1 - (actual_distance / max_range) )
* ( 1 - (actual_distance / max_range) )
</pre>
</pre>