v2.3.0: refactored transmute usable on item code, added a pickace check
This commit is contained in:
@@ -36,6 +36,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.brews.Brew;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.Elixir;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.Pickaxe;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.rings.Ring;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone;
|
||||
@@ -47,6 +48,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWea
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.Dart;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.TippedDart;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.MiningLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
@@ -65,16 +67,27 @@ public class ScrollOfTransmutation extends InventoryScroll {
|
||||
|
||||
@Override
|
||||
protected boolean usableOnItem(Item item) {
|
||||
return item instanceof MeleeWeapon ||
|
||||
(item instanceof MissileWeapon && (!(item instanceof Dart) || item instanceof TippedDart)) ||
|
||||
(item instanceof Potion && !(item instanceof Elixir || item instanceof Brew || item instanceof AlchemicalCatalyst)) ||
|
||||
//the extra check here prevents a single scroll being used on itself
|
||||
(item instanceof Scroll && (!(item instanceof ScrollOfTransmutation) || item.quantity() > 1)) ||
|
||||
item instanceof Ring ||
|
||||
item instanceof Wand ||
|
||||
item instanceof Plant.Seed ||
|
||||
item instanceof Runestone ||
|
||||
item instanceof Artifact;
|
||||
//all melee weapons, except pickaxe when in a mining level
|
||||
if (item instanceof MeleeWeapon){
|
||||
return !(item instanceof Pickaxe && Dungeon.level instanceof MiningLevel);
|
||||
|
||||
//all missile weapons except untipped darts
|
||||
} else if (item instanceof MissileWeapon){
|
||||
return item.getClass() != Dart.class;
|
||||
|
||||
//all regular or exotic potions. No brews, elixirs, or catalysts
|
||||
} else if (item instanceof Potion){
|
||||
return !(item instanceof Elixir || item instanceof Brew || item instanceof AlchemicalCatalyst);
|
||||
|
||||
//all regular or exotic scrolls, except itself
|
||||
} else if (item instanceof Scroll){
|
||||
return item != this || item.quantity() > 1;
|
||||
|
||||
//all rings, wands, artifacts, seeds, and runestones
|
||||
} else {
|
||||
return item instanceof Ring || item instanceof Wand || item instanceof Artifact
|
||||
|| item instanceof Plant.Seed || item instanceof Runestone;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user