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[]
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.