Jump to content

Elin:Combat: Difference between revisions

4,047 bytes removed ,  8 December 2024
→‎Weapon Hit Mechanics: Since this section is a repeat of the code analysis section, and is not appropriate for main wiki content, remove content and add reference.
mNo edit summary
(→‎Weapon Hit Mechanics: Since this section is a repeat of the code analysis section, and is not appropriate for main wiki content, remove content and add reference.)
Line 98: Line 98:




==Weapon Hit Mechanics==
''See: [[Elin:Code_Analysis/Combat]]''
 
<div class="mw-collapsible mw-collapsed" style="overflow:auto;">
<div style="font-weight:bold;line-height:1.6;">Expand on the right</div>
<div class="mw-collapsible-content">
'''Updated EA23.46'''
 
"Curve" refers to the game's method for adding a sliding curve to the effectiveness of skill values
<nowiki>
CURVE( input, start, step, rate)
if input <= start
return input
 
repeat x10
{
num = start + repeatindex * step
if input <= num
return input
else
input = num = (input - num) * rate /100
}
return input</nowiki>
 
First the system evaluates the attacker's 'TO HIT' and the target's 'EVASION'
 
The TO HIT value will be calculated differently depending on the type of weapon used (thrown, range, melee, martial) and style
 
{| class="wikitable"
|+ TO HIT
! Weapon Type
! Calculation
|-
| Thrown
| Curve([attacker's DEX]/4 + [attacker's STR]/2 + [attacker's weapon skill], 50, 25, 75) + 75 (250 if not PC Faction)
|-
| Martial (No Shield)
| Curve([attacker's DEX]/3 + [attacker's STR]/3 + [attacker's weapon skill], 50, 25, 75) + 50
|-
|Martial (With Shield)
| 75% of Curve([attacker's DEX]/3 + [attacker's STR]/3 + [attacker's weapon skill], 50, 25, 75) + 50
|-
| Cane
| Curve([attacker's WIL]/4 + [attacker's weapon's primary attribute]/3 [attacker's weapon skill], 50, 25, 75) + 100
|-
| All Others
| Curve([attacker's DEX]/4 + [attacker's weapon's primary attribute]/3 [attacker's weapon skill], 50, 25, 75) + 50
|}
Your Hit modifier from gear and the weapon are then added to the above
(a distance modifier is then applied for Ranged weapons)
 
EVASION is calculated on a Curve([target's PER] / 3 + [target's evasion skill], 50, 10, 75) + [target's DV] + 25
 
 
These values are then modified in the following order with compounding effect:
 
{| class="wikitable"
|+ MODIFIERS
! Condition
! Effect
|-
| Attacker has Bane
| TO HIT = 75%
|-
| Attacker has HigherGround
| TO HIT +20%
|-
| Attacker is Riding
| TO HIT = TO HIT * 100 / (100 + 500 / higher of(5 or 10 + [attacker's riding skill]))
|-
| Attacker is Hosting
| TO HIT = TO HIT * 100 / (100 + 1000 / higher of(5 or 10 + [attacker's symbiosis skill]))
|-
| Attacker is Being Ridden
| TO HIT = TO HIT * 100 / (100 + 1000 / higher of(5 or 10 + [attacker's STR]))
|-
| Attacker is a Parasite
| TO HIT = TO HIT * 100 / (100 + 1000 / higher of(5 or 10 + [attacker's DEX]))
|-
| Attack is Two Handed
| TO HIT = TO HIT + 25 + sqrt([attacker's two handed skill] * 2)
|-
| Attack is Dual Wield
| TO HIT = TO HIT * 100 / (115 * 15 * (2000 / (20 + [attacker's DualWield skill])[Clamped to 0-100])
|-
| Attacker is Blind
| TO HIT = 33.33% (or 10% if ranged/throwing)
|-
| Target is Blind
| EVASION = 50%
|-
| Target is Dim
| EVASION = 50%
|-
| Target has Higher Ground
| EVASION + 20%
|}
 
Now the system has the TO HIT and EVASION values, it uses these to calculate if an attack was a hit, miss, or crit in this order
 
<nowiki>
IF Target is Dim & 1 in 4 chance
  CRIT</nowiki>
 
<nowiki>
IF Target is Dead or Sleeping
  CRIT</nowiki>
 
<nowiki>
IF [target's Greater Evasion] * 10 > TO HIT
  num = EVASION * 100 / TO HIT
  IF 'num2' > 300 & random 0 to ([target's Greater Evasion]+250) > 100
MISS
  IF 'num2' > 200 & random 0 to ([target's Greater Evasion]+250) > 150
MISS
  IF 'num2' > 150 & random 0 to ([target's Greater Evasion]+250) > 200
MISS</nowiki>
 
<nowiki>
IF [target's Perfect Evasion] > random 0 - 99
  MISS</nowiki>
 
<nowiki>
IF 1 in 20
  HIT</nowiki>
 
<nowiki>
IF 1 in 20
  MISS</nowiki>
 
<nowiki>
IF TO HIT < 1
  MISS</nowiki>
 
<nowiki>
IF EVASION < 1
  HIT</nowiki>
 
<nowiki>
IF random 0 - TO HIT < random 0 - (EVASION * 125 (150 if ranged attack) / 100)
  MISS</nowiki>
 
<nowiki>
IF random 0 - 5000 < [attacker's PER]
  CRIT</nowiki>
 
<nowiki>
IF [attacker's Critical skill] + sqrt([attacker's Eye of Mind skill]) > random 0 -200
  CRIT</nowiki>
 
<nowiki>
IF attacker has [Heart of Death]
  num = 100 - [attacker's current HP] * 100 / [attacker's Max HP]
  IF num >= 50 & (num^3 / 3) > random 0 - 100000000
      CRIT</nowiki>
 
<nowiki>
HIT</nowiki>
 
</div></div>


[[Category:EN]]
[[Category:EN]]
[[Category:Elin Mechanics]]
[[Category:Elin Mechanics]]
426

edits