From 8d6b3835b1e2d0db6f2c0d801b35c44e7fd4ed43 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Fri, 24 May 2019 21:46:32 -0400 Subject: [PATCH] v0.7.3a: fixed all darts incorrect being consumed when tipping all --- .../src/main/java/com/watabou/noosa/Tilemap.java | 12 +++++++++++- .../items/weapon/missiles/darts/Dart.java | 6 +++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java index 644717075..c5d86f4d1 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java @@ -85,6 +85,16 @@ public class Tilemap extends Visual { updateMap(); } + + public Image image(int x, int y){ + if (!needsRender(x + mapWidth*y)){ + return null; + } else { + Image img = new Image(texture); + img.frame(tileset.get(data[x + mapWidth * y])); + return img; + } + } //forces a full update, including new buffer public synchronized void updateMap(){ @@ -254,6 +264,6 @@ public class Tilemap extends Visual { } protected boolean needsRender(int pos){ - return true; + return data[pos] >= 0; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/Dart.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/Dart.java index 138acdcc9..c7df2af55 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/Dart.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/darts/Dart.java @@ -189,7 +189,11 @@ public class Dart extends MissileWeapon { item.quantity(item.quantity() - maxSeedsToUse); } - curItem.detachAll( curUser.belongings.backpack ); + if (maxToTip < curItem.quantity()){ + curItem.quantity(curItem.quantity() - maxToTip); + } else { + curItem.detachAll(curUser.belongings.backpack); + } TippedDart newDart = TippedDart.getTipped((Plant.Seed) item, maxToTip); if (!newDart.collect()) Dungeon.level.drop(newDart, curUser.pos).sprite.drop();