v0.2.4: refactored handling the quickslot when equipping.

This commit is contained in:
Evan Debenham 2015-02-12 15:28:10 -05:00
parent d94847af4c
commit e4cfe7586a
5 changed files with 8 additions and 17 deletions

View File

@ -38,7 +38,14 @@ public abstract class EquipableItem extends Item {
@Override
public void execute( Hero hero, String action ) {
if (action.equals( AC_EQUIP )) {
doEquip( hero );
//In addition to equipping itself, item reassigns itself to the quickslot
//This is a special case as the item is being removed from inventory, but is staying with the hero.
int slot = Dungeon.quickslot.getSlot( this );
doEquip(hero);
if (slot != -1) {
Dungeon.quickslot.setSlot( slot, this );
updateQuickslot();
}
} else if (action.equals( AC_UNEQUIP )) {
doUnequip( hero, true );
} else {

View File

@ -49,11 +49,7 @@ public class KindOfWeapon extends EquipableItem {
@Override
public boolean doEquip( Hero hero ) {
int slot = Dungeon.quickslot.getSlot( this );
detachAll( hero.belongings.backpack );
if (slot != -1) Dungeon.quickslot.setSlot( slot, this );
if (hero.belongings.weapon == null || hero.belongings.weapon.doUnequip( hero, true )) {

View File

@ -92,13 +92,9 @@ public class Armor extends EquipableItem {
@Override
public boolean doEquip( Hero hero ) {
int slot = Dungeon.quickslot.getSlot( this );
detach( hero.belongings.backpack );
if (slot != -1) Dungeon.quickslot.setSlot( slot, this );
if (hero.belongings.armor == null || hero.belongings.armor.doUnequip( hero, true, false )) {
hero.belongings.armor = this;

View File

@ -80,12 +80,8 @@ public class Artifact extends KindofMisc {
hero.belongings.misc2 = this;
}
int slot = Dungeon.quickslot.getSlot( this );
detach( hero.belongings.backpack );
if (slot != -1) Dungeon.quickslot.setSlot( slot, this );
activate( hero );
cursedKnown = true;

View File

@ -126,11 +126,7 @@ public class Ring extends KindofMisc {
hero.belongings.misc2 = this;
}
int slot = Dungeon.quickslot.getSlot( this );
detach( hero.belongings.backpack );
if (slot != -1) Dungeon.quickslot.setSlot( slot, this );
activate( hero );