diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java
index 7df9d711b..c246a280f 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Item.java
@@ -30,7 +30,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag;
-import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Boomerang;
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@@ -246,7 +245,7 @@ public class Item implements Bundlable {
} else
if (quantity == 1) {
- if (stackable || this instanceof Boomerang){
+ if (stackable){
Dungeon.quickslot.convertToPlaceholder(this);
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java
index 8e694aad7..7a45f60bb 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/DriedRose.java
@@ -44,7 +44,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.armor.glyphs.AntiMagic;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRetribution;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfPsionicBlast;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
-import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Boomerang;
import com.shatteredpixel.shatteredpixeldungeon.levels.Level;
import com.shatteredpixel.shatteredpixeldungeon.messages.Languages;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@@ -861,9 +860,9 @@ public class DriedRose extends Artifact {
GameScene.selectItem(new WndBag.Listener() {
@Override
public void onSelect(Item item) {
- if (!(item instanceof MeleeWeapon || item instanceof Boomerang)) {
+ if (!(item instanceof MeleeWeapon)) {
//do nothing, should only happen when window is cancelled
- } else if (item.unique || item instanceof Boomerang) {
+ } else if (item.unique) {
GLog.w( Messages.get(WndGhostHero.class, "cant_unique"));
hide();
} else if (!item.isIdentified()) {
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Boomerang.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Boomerang.java
deleted file mode 100644
index 60f29379d..000000000
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/missiles/Boomerang.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Pixel Dungeon
- * Copyright (C) 2012-2015 Oleg Dolya
- *
- * Shattered Pixel Dungeon
- * Copyright (C) 2014-2019 Evan Debenham
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see
- */
-
-package com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles;
-
-import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
-import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
-import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
-import com.shatteredpixel.shatteredpixeldungeon.items.Item;
-import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
-import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
-import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
-import com.shatteredpixel.shatteredpixeldungeon.sprites.MissileSprite;
-
-import java.util.ArrayList;
-
-public class Boomerang extends MissileWeapon {
-
- {
- image = ItemSpriteSheet.BOOMERANG;
-
- stackable = false;
-
- unique = true;
- bones = false;
-
- tier = 1;
- }
-
- @Override
- public ArrayList actions(Hero hero) {
- ArrayList actions = super.actions( hero );
- if (!isEquipped(hero)) actions.add(AC_EQUIP);
- return actions;
- }
-
- @Override
- public int min(int lvl) {
- return 1 +
- lvl;
- }
-
- @Override
- public int max(int lvl) {
- return 6 + //half the base damage of a tier-1 weapon
- 2 * lvl;//scales the same as a tier 1 weapon
- }
-
- @Override
- public boolean isIdentified() {
- return levelKnown && cursedKnown;
- }
-
- @Override
- public Item upgrade( boolean enchant ) {
- super.upgrade( enchant );
-
- updateQuickslot();
-
- return this;
- }
-
- @Override
- protected float durabilityPerUse() {
- return 0;
- }
-
- @Override
- public void rangedHit( Char enemy, int cell ) {
- circleBack(cell, curUser);
- }
-
- @Override
- protected void rangedMiss( int cell ) {
- circleBack( cell, curUser );
- }
-
- private void circleBack( int from, Hero owner ) {
-
- ((MissileSprite)curUser.sprite.parent.recycle( MissileSprite.class )).
- reset( from, owner.sprite, curItem, null );
-
- if (throwEquiped) {
- owner.belongings.weapon = this;
- owner.spend( -TIME_TO_EQUIP );
- Dungeon.quickslot.replacePlaceholder(this);
- updateQuickslot();
- } else
- if (!collect( curUser.belongings.backpack )) {
- Dungeon.level.drop( this, owner.pos ).sprite.drop();
- }
- }
-
- private boolean throwEquiped;
-
- @Override
- public void cast( Hero user, int dst ) {
- throwEquiped = isEquipped( user ) && !cursed;
- if (throwEquiped) Dungeon.quickslot.convertToPlaceholder(this);
- super.cast( user, dst );
- }
-
- @Override
- public String desc() {
- String info = super.desc();
- switch (augment) {
- case SPEED:
- info += "\n\n" + Messages.get(Weapon.class, "faster");
- break;
- case DAMAGE:
- info += "\n\n" + Messages.get(Weapon.class, "stronger");
- break;
- case NONE:
- }
-
- return info;
- }
-}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/CursingTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/CursingTrap.java
index 5b9169023..6a9578628 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/CursingTrap.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/CursingTrap.java
@@ -33,7 +33,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.KindOfWeapon;
import com.shatteredpixel.shatteredpixeldungeon.items.KindofMisc;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
-import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Boomerang;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@@ -77,7 +76,7 @@ public class CursingTrap extends Trap {
ArrayList- canCurse = new ArrayList<>();
KindOfWeapon weapon = hero.belongings.weapon;
- if (weapon instanceof Weapon && !weapon.cursed && !(weapon instanceof Boomerang)){
+ if (weapon instanceof Weapon && !weapon.cursed){
if (((Weapon) weapon).enchantment == null)
priorityCurse.add(weapon);
else
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java
index d6ac6bf76..0f8acda4e 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/MissileSprite.java
@@ -26,8 +26,8 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Crossbow;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Bolas;
-import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Boomerang;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.FishingSpear;
+import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.HeavyBoomerang;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Javelin;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Kunai;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Shuriken;
@@ -95,7 +95,7 @@ public class MissileSprite extends ItemSprite implements Tweener.Listener {
//720 is default
- ANGULAR_SPEEDS.put(Boomerang.class, 1440);
+ ANGULAR_SPEEDS.put(HeavyBoomerang.class,1440);
ANGULAR_SPEEDS.put(Bolas.class, 1440);
ANGULAR_SPEEDS.put(Shuriken.class, 2160);
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java
index a90886a3e..df5ca0f4d 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndBag.java
@@ -45,7 +45,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.spells.Recycle;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.SpiritBow;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MeleeWeapon;
-import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Boomerang;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant.Seed;
@@ -390,7 +389,7 @@ public class WndBag extends WndTabbed {
mode == Mode.UNCURSABLE && ScrollOfRemoveCurse.uncursable(item) ||
mode == Mode.CURSABLE && ((item instanceof EquipableItem && !(item instanceof MissileWeapon)) || item instanceof Wand) ||
mode == Mode.QUICKSLOT && (item.defaultAction != null) ||
- mode == Mode.WEAPON && (item instanceof MeleeWeapon || item instanceof Boomerang) ||
+ mode == Mode.WEAPON && (item instanceof MeleeWeapon) ||
mode == Mode.ARMOR && (item instanceof Armor) ||
mode == Mode.ENCHANTABLE && (item instanceof MeleeWeapon || item instanceof SpiritBow || item instanceof Armor) ||
mode == Mode.WAND && (item instanceof Wand) ||