en:rpd:accuracy_mechanic
Table of Contents
Accuracy Mechanic
Accuracy is a combat mechanic in Remixed Pixel Dungeon that determines the chance to successfully hit a target with attacks. Higher accuracy increases the probability of landing hits on enemies.
Accuracy Formula
In the game's code, accuracy is calculated in the Char.java file as part of the attackSkill method:
public int attackSkill(Char target) { int[] bf = {0}; forEachBuff(b -> bf[0] += b.attackSkillBonus(this)); int bonus = bf[0]; float accuracy = (float) Math.pow(1.4, bonus); if (target == null) { // Mainly to mask bug in Remixed RPG target = CharsList.DUMMY; } if (rangedWeapon.valid() && level().distance(getPos(), target.getPos()) == 1) { accuracy *= 0.5f; } float mainAccuracyFactor = getActiveWeapon().accuracyFactor(this); float secondaryAccuracyFactor = getSecondaryWeapon().accuracyFactor(this); float skillFactor = Utils.min(20f, mainAccuracyFactor, secondaryAccuracyFactor); int aSkill = (int) ((baseAttackSkill + lvl()) * accuracy * skillFactor); GLog.debug("%s attacking %s with factor %2.2f, resulting skill %d", getEntityKind(), target.getEntityKind(), skillFactor, aSkill); return aSkill; }
Key Factors Affecting Accuracy
- Attack Skill: The primary factor determining hit probability
- Buff Bonuses: Each bonus point increases accuracy exponentially using the formula
Math.pow(1.4, bonus)(fromRingOfAccuracyor similar items) - Weapon Accuracy Factor: Different weapons have different
accuracyFactorvalues (e.g.,RingOfAccuracyprovides a bonus) - Ranged Penalty: When using a ranged weapon at melee distance (distance = 1), accuracy is halved (0.5f multiplier)
- Weapon Enchantments: Some enchantments affect accuracy
- Status Effects: Negative effects like blindness can reduce accuracy
Equipment with Accuracy Benefits
- Ring of Accuracy: Increases attack skill bonus equal to the ring's level (directly improving accuracy)
- Weightstone: Can be used to imbue weapons with accuracy at the cost of speed
- Weapon Imbue ACCURACY: Using a weightstone with the “For accuracy” option will imbue a weapon with accuracy (+1.5x multiplier)
- Compound Bow: Has improved accuracy over a wooden bow at the cost of some speed
Related Strings
RingOfAccuracy_Name: “Ring of Accuracy”RingOfAccuracy_Info: “This ring increases your chance to hit the enemy.”Weightstone_WndAccuracy: “For accuracy”CompoundBow_Info: “Arrows launched from this compound bow deal a great amount of damage and have improved accuracy over a wooden bow at the cost of some speed.”
Class Considerations
- Warrior: Benefits from high accuracy to land consistent hits
- Mage: Important for ensuring wand shots connect
- Rogue: High accuracy helps with stealth-based attacks
- Huntress: Essential for ranged weapons effectiveness
- Plague Doctor: Suffers accuracy penalties without the Bone Saw equipped (string:
HeroClass_PlagueDoctorPerks_4)
Code References
- Java: Char.java
- Java: RingOfAccuracy.java
- Java: Weightstone.java
Related
en/rpd/accuracy_mechanic.txt · Last modified: by 127.0.0.1
