use of com.watabou.pixeldungeon.items.Item in project pixel-dungeon by watabou.
the class Burning method act.
@Override
public boolean act() {
if (target.isAlive()) {
if (target instanceof Hero) {
Buff.prolong(target, Light.class, TICK * 1.01f);
}
target.damage(Random.Int(1, 5), this);
if (target instanceof Hero) {
Item item = ((Hero) target).belongings.randomUnequipped();
if (item instanceof Scroll) {
item = item.detach(((Hero) target).belongings.backpack);
GLog.w(TXT_BURNS_UP, item.toString());
Heap.burnFX(target.pos);
} else if (item instanceof MysteryMeat) {
item = item.detach(((Hero) target).belongings.backpack);
ChargrilledMeat steak = new ChargrilledMeat();
if (!steak.collect(((Hero) target).belongings.backpack)) {
Dungeon.level.drop(steak, target.pos).sprite.drop();
}
GLog.w(TXT_BURNS_UP, item.toString());
Heap.burnFX(target.pos);
}
} else if (target instanceof Thief && ((Thief) target).item instanceof Scroll) {
((Thief) target).item = null;
target.sprite.emitter().burst(ElmoParticle.FACTORY, 6);
}
} else {
detach();
}
if (Level.flamable[target.pos]) {
GameScene.add(Blob.seed(target.pos, 4, Fire.class));
}
spend(TICK);
left -= TICK;
if (left <= 0 || Random.Float() > (2 + (float) target.HP / target.HT) / 3 || (Level.water[target.pos] && !target.flying)) {
detach();
}
return true;
}
use of com.watabou.pixeldungeon.items.Item in project pixel-dungeon by watabou.
the class Frost method attachTo.
@Override
public boolean attachTo(Char target) {
if (super.attachTo(target)) {
target.paralysed = true;
Burning.detach(target, Burning.class);
if (target instanceof Hero) {
Hero hero = (Hero) target;
Item item = hero.belongings.randomUnequipped();
if (item instanceof MysteryMeat) {
item = item.detach(hero.belongings.backpack);
FrozenCarpaccio carpaccio = new FrozenCarpaccio();
if (!carpaccio.collect(hero.belongings.backpack)) {
Dungeon.level.drop(carpaccio, target.pos).sprite.drop();
}
}
}
return true;
} else {
return false;
}
}
use of com.watabou.pixeldungeon.items.Item in project pixel-dungeon by watabou.
the class Belongings method charge.
public int charge(boolean full) {
int count = 0;
for (Item item : this) {
if (item instanceof Wand) {
Wand wand = (Wand) item;
if (wand.curCharges < wand.maxCharges) {
wand.curCharges = full ? wand.maxCharges : wand.curCharges + 1;
count++;
wand.updateQuickslot();
}
}
}
return count;
}
use of com.watabou.pixeldungeon.items.Item in project pixel-dungeon by watabou.
the class Belongings method observe.
public void observe() {
if (weapon != null) {
weapon.identify();
Badges.validateItemLevelAquired(weapon);
}
if (armor != null) {
armor.identify();
Badges.validateItemLevelAquired(armor);
}
if (ring1 != null) {
ring1.identify();
Badges.validateItemLevelAquired(ring1);
}
if (ring2 != null) {
ring2.identify();
Badges.validateItemLevelAquired(ring2);
}
for (Item item : backpack) {
item.cursedKnown = true;
}
}
use of com.watabou.pixeldungeon.items.Item in project pixel-dungeon by watabou.
the class Belongings method discharge.
public int discharge() {
int count = 0;
for (Item item : this) {
if (item instanceof Wand) {
Wand wand = (Wand) item;
if (wand.curCharges > 0) {
wand.curCharges--;
count++;
wand.updateQuickslot();
}
}
}
return count;
}
Aggregations