en:rpd:evasion_mechanic
Differences
This shows you the differences between two versions of the page.
| en:rpd:evasion_mechanic [2026/01/01 19:45] – namespace move Mike | en:rpd:evasion_mechanic [2026/01/01 19:46] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Evasion Mechanic ====== | ||
| + | Evasion is a core combat mechanic in Remixed Dungeon that represents the ability to dodge incoming attacks, primarily determined by the character' | ||
| + | |||
| + | ==== Evasion Formula ==== | ||
| + | |||
| + | The evasion calculation is part of the defense skill system in the '' | ||
| + | |||
| + | <code java> | ||
| + | public int defenseSkill(Char enemy) { | ||
| + | // ... base calculation ... | ||
| + | | ||
| + | final int[] bf = {0}; | ||
| + | forEachBuff(b -> bf[0] += b.defenceSkillBonus(this)); | ||
| + | |||
| + | int bonus = bf[0]; | ||
| + | |||
| + | float evasion = (float) Math.pow(1.2, | ||
| + | if (paralysed) { | ||
| + | evasion /= 2; | ||
| + | } | ||
| + | |||
| + | // ... armor encumbrance calculation ... | ||
| + | int aEnc = getItemFromSlot(Belongings.Slot.ARMOR).requiredSTR() - effectiveSTR(); | ||
| + | |||
| + | if (aEnc > 0) { | ||
| + | return (int) (defenseSkill * evasion / Math.pow(1.5, | ||
| + | } else { | ||
| + | |||
| + | if (getHeroClass() == HeroClass.ROGUE) { | ||
| + | |||
| + | if (getCurAction() != null && getSubClass() == HeroSubClass.FREERUNNER && !isStarving()) { | ||
| + | evasion *= 2; | ||
| + | } | ||
| + | |||
| + | return (int) ((defenseSkill - aEnc) * evasion); | ||
| + | } else { | ||
| + | return (int) (defenseSkill * evasion); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Evasion Mechanics ==== | ||
| + | |||
| + | ==== Base Evasion ==== | ||
| + | * **Calculation**: | ||
| + | * **Effect**: Each point of defense bonus multiplies evasion by 1.2 | ||
| + | * **Exponential Growth**: The evasion bonus increases exponentially with more defense bonuses | ||
| + | |||
| + | ==== Paralysis Effect ==== | ||
| + | * **Penalty**: | ||
| + | * **Impact**: Reduces the character' | ||
| + | * **Implementation**: | ||
| + | |||
| + | ==== Armor Encumbrance ==== | ||
| + | * **Calculation**: | ||
| + | * **Effect**: If armor requires more strength than available ('' | ||
| + | * **Impact**: Heavy armor that requires more strength than available reduces evasion significantly | ||
| + | |||
| + | ==== Class-Specific Evasion ==== | ||
| + | * **Rogues**: Have the potential for additional evasion bonuses | ||
| + | * **Freerunner Subclass**: When not starving and moving, evasion is doubled ('' | ||
| + | * **Non-Rogues**: | ||
| + | |||
| + | ==== Evasion in Combat ==== | ||
| + | * **Hit Calculation**: | ||
| + | * **Success**: | ||
| + | * **Result**: The attack misses entirely, dealing no damage | ||
| + | |||
| + | ==== Factors Affecting Evasion ==== | ||
| + | * **Defense Skill Bonuses**: From buffs and equipment | ||
| + | * **Paralysis Status**: Reduces evasion by 50% | ||
| + | * **Armor Encumbrance**: | ||
| + | * **Hero Class**: Rogues have special evasion mechanics | ||
| + | * **Hero Subclass**: Freerunner gets double evasion under specific conditions | ||
| + | |||
| + | ==== Equipment with Evasion Effects ==== | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | |||
| + | ==== Related Buffs ==== | ||
| + | * Any buff that implements '' | ||
| + | * [[en: | ||
| + | |||
| + | ==== Code References ==== | ||
| + | * Java: [[https:// | ||
| + | * Java: [[https:// | ||
| + | |||
| + | ==== Related ==== | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | * [[en: | ||
| + | |||
| + | {{tag> rpd mechanics combat evasion defense }} | ||
