v2.3.0: refactored transmute usable on item code, added a pickace check

This commit is contained in:
Evan Debenham
2023-11-15 12:22:19 -05:00
parent b0f37db830
commit b94425b2c4
@@ -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.brews.Brew;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.Elixir; import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.Elixir;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.exotic.ExoticPotion; 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.rings.Ring;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ExoticScroll;
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone; 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.Dart;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.TippedDart; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.darts.TippedDart;
import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog; import com.shatteredpixel.shatteredpixeldungeon.journal.Catalog;
import com.shatteredpixel.shatteredpixeldungeon.levels.MiningLevel;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant; import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@@ -65,16 +67,27 @@ public class ScrollOfTransmutation extends InventoryScroll {
@Override @Override
protected boolean usableOnItem(Item item) { protected boolean usableOnItem(Item item) {
return item instanceof MeleeWeapon || //all melee weapons, except pickaxe when in a mining level
(item instanceof MissileWeapon && (!(item instanceof Dart) || item instanceof TippedDart)) || if (item instanceof MeleeWeapon){
(item instanceof Potion && !(item instanceof Elixir || item instanceof Brew || item instanceof AlchemicalCatalyst)) || return !(item instanceof Pickaxe && Dungeon.level instanceof MiningLevel);
//the extra check here prevents a single scroll being used on itself
(item instanceof Scroll && (!(item instanceof ScrollOfTransmutation) || item.quantity() > 1)) || //all missile weapons except untipped darts
item instanceof Ring || } else if (item instanceof MissileWeapon){
item instanceof Wand || return item.getClass() != Dart.class;
item instanceof Plant.Seed ||
item instanceof Runestone || //all regular or exotic potions. No brews, elixirs, or catalysts
item instanceof Artifact; } 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 @Override