Table of Contents

Defense Mechanic

Defense is a core combat mechanic in Remixed Dungeon that determines the chance to successfully evade incoming attacks.

Defense Skill Formula

The defense skill is calculated in the Char.java file as part of the defenseSkill method:

public int defenseSkill(Char enemy) {
 
    int defenseSkill = baseDefenseSkill + lvl();
 
    final int[] bf = {0};
    forEachBuff(b -> bf[0] += b.defenceSkillBonus(this));
 
    int bonus = bf[0];
 
    float evasion = (float) Math.pow(1.2, bonus);
    if (paralysed) {
        evasion /= 2;
    }
 
    int aEnc = getItemFromSlot(Belongings.Slot.ARMOR).requiredSTR() - effectiveSTR();
 
    if (aEnc > 0) {
        return (int) (defenseSkill * evasion / Math.pow(1.5, aEnc));
    } else {
 
        if (getHeroClass() == HeroClass.ROGUE) {
 
            if (getCurAction() != null && getSubClass() == HeroSubClass.FREERUNNER && !isStarving()) {
                evasion *= 2;
            }
 
            return (int) ((defenseSkill - aEnc) * evasion);
        } else {
            return (int) (defenseSkill * evasion);
        }
    }
}

Defense Skill Components

Base Defense Skill

Level Bonus

Buff Bonuses

Paralysis Penalty

Armor Encumbrance

Class-Specific Mechanics

Combat Calculation

Hero Defense Skill Enhancement

The Hero class has a special defense skill calculation:

// In Hero.java
public int defenseSkill(Char enemy) {
    float skillFactor = 1;
 
    if (getSubClass() == HeroSubClass.BRIGAND) {
        skillFactor *= 1.2;
    }
 
    return (int) (super.defenseSkill(enemy) * skillFactor);
}

Defense in Combat

Code References