Pixel Dungeon Wiki
Advertisement
Bugs
Current bugs
Major bugs
Minor bugs
In-game typos
Flaws
Other
Possibly corrected bugs
Old bugs

This article lists minor bugs.
Even though they are unexpected behaviors that are very probably unexpected by Watabou; they are just annoyances that don’t prevent normal gameplay.

Two unstable Sungrass plants spawning in Garden[]

[Observed since April 1, 2014 - Update 1.6.3a/Update 1.6.4 & still present in Update 1.7.2a-1 on Desktop platform.]

Problem

Two Plants of Sungrass get generated beside each other in a Garden.
Once the Hero has stepped on one of the two plants to heal, then leaves the room/depth, then later returns, the second Plant of Sungrass disappears.

Incorrect War Hammer Damage[]

(Java division via float Rounding issue)

Problem

Being a tier-5 melee weapon, War hammer +0 has a base max damage of 10+tier×(tier-1) = 30 which, divided by accuracy = 1.2, should give a theoretical effective max of 30/1.2 = 25, hence an average damage of (5+25)/2 = 15. However Java division by a float leads to rounding issues:

    System.out.println(300 / 12); // gives 25 => OK
    System.out.println(300 / 12F); // gives 25.0 => OK
    System.out.println(30 / 1.2F); // gives 24.999998 => NOK
    System.out.println((int) (30 / 1.2F)); // gives 24 => NOK

Consequently the War hammer +0 has a max damage of 24 instead of 25, hence an average damage of 14.5 (displayed as 14) instead of 15. With accuracy = 1.2, this issue will appear for tiers 2, 5, 8, etc. (3ℕ+2). So, currently, the War hammer is the only weapon affected by this bug.

Proposed correction

Replacing

    // MeleeWeapon
    private int max() {
        return (int) ((tier * tier - tier + 10) / ACU * DLY);
    }

by

    // MeleeWeapon
    private int max() {
        return (int) ((tier * tier - tier + 10) / ACU * DLY + 0.001F);
    }

(for accuracy = 1.2, correcting value 0.001F is enough until tier-173 but not for tier-176 and following).

Stage calculation[]

Problem

The calculation for Purchase Price in Shops (in WndTradeItem#price) is using the stage value (from 1 to 5), but the calculation of that value is wrong at boss depths.

The stage calculation should be: int stage = (Dungeon.depth - 1) / 5 + 1;

Severity

As there is no shop at boss depths (where the bug happens), this bug has no impact.
It’s rather an architectural issue.

Proposed correction

Defining a factorized calculation method in Dungeon, in order to unduplicate the bugged code:

    // Dungeon
    public static int stage() {
        return (depth - 1) / 5 + 1;
    }

Of course, that method will then have to be called in Dewdrop#doPickUp, Hero#earnExp and WndTradeItem#price.

Planting seeds in an alchemy pot[]

Problem

When planting a seed on an alchemy pot, from a stack of 3, or fewer, identical seeds, the planted seed is simply lost, without plant growing.

Missing food classes[]

Problem

Overpriced food ration, chargrilled meat and frozen carpaccio standard generation probabilities (which are 0) are missing from the Java code.

Proposed correction

Replacing

        // Generator
        Category.FOOD.classes = new Class[] { Food.class, Pasty.class, MysteryMeat.class };
        Category.FOOD.probs = new float[] { 4.0F, 1.0F, 0.0F };

by

        // Generator
        Category.FOOD.classes = new Class[] { OverpricedRation.class, Food.class, Pasty.class, MysteryMeat.class, ChargrilledMeat.class, FrozenCarpaccio.class };
        Category.FOOD.probs = new float[] { 0.0F, 4.0F, 1.0F, 0.0F, 0.0F, 0.0F };

Ambitious imp reward[]

Problem

According to the code, the ring reward for the ambitious imp quest is potentially generated multiple times until its level is positive.
Then that looped generation is canceled by a superfluous call to random().

Unstable badges[]

Problem

The “Happy end” and “Challenge won” badges disappear when the game restarts.

Cause

The badge object is not added in global or local.

Wand of Disintegration zap display[]

Problem

With a non-neutral Ring of Power equipped, the level of wands is accordingly increased or decreased, which affects their effects too: So, the maximum distance of effect of the Wand of Disintegration depends on the level of the Ring of Power.
However its displayed zap distance is not affected by the Ring of Power.

Proposed correction

Replacing

    // WandOfDisintegration
    protected void fx(int cell, Callback callback) {
        … level …

by

    // WandOfDisintegration
    protected void fx(int cell, Callback callback) {
        … level() …

Sprite shifting[]

Rotting fist[]

Problem

When the Rotting fist attacks, its sprite shifts down by 1 (or 2?) pixel(s), so after many attacks, the fist’s real location is not the displayed one.

Grim effect[]

Problem

Each time the grim enchantment procs, its effect sprite shifts down by 1 (or 2?) pixel(s), so after many procs, the effect animation is well below the enemy being hit.

Items on the floor with full backpack[]

Problem

When the backpack is full, if the Hero stands on an item on the floor and continuously tries to pick that item up (by clicking the blue item box at top right), the item sprite shifts up by many pixels, so after many pick up tries, the item’s real location is not the displayed one.

Note

This only works if there are two items on top of each other.

Particle effects don't follow npc[]

Troll Blacksmith[]

Screen Shot 2016-09-25 at 8.10

If you move the Troll Blacksmith's position with a Wand of Reach, the sparkle effects that follow his hammer beat don't move.

Problem

This happens because the Troll Blacksmith isn't supposed to move, but the Wand of Reach forces it to move. However, upon exiting and reloading the game, the particles will be re-aligned with the Troll Blacksmith.

The Well of Health pseudo-resurrects the levitating Hero[]

Problem

If the Hero dies while levitating over the Well of Health, the game is considered lost, the "game over" message and the item scattering animation are displayed. However, the game behaves as though the Hero was resurrected upon falling into the well, as the enemy keeps hitting the empty well (with points of damage visible) until the item scattering animation is shown the second time.

Advertisement