@Override public ArrayList<String> actions( Hero hero ) { ArrayList<String> actions = super.actions( hero ); if (isEquipped( hero ) && level() < 3 && !cursed) actions.add(AC_FEED); if (isEquipped( hero ) && charge > 0) actions.add(AC_ROOT); return actions; }
@Override public void execute( Hero hero, String action ) { super.execute(hero, action); if (action.equals(AC_FEED)){ GameScene.selectItem(itemSelector, mode, Messages.get(this, "prompt")); } else if (action.equals(AC_ROOT) && level() > 0){ if (!isEquipped( hero )) GLog.i( Messages.get(Artifact.class, "need_to_equip") ); else if (charge == 0) GLog.i( Messages.get(this, "no_charge") ); else { Buff.prolong(hero, Roots.class, 5); Buff.affect(hero, Earthroot.Armor.class).level(charge); CellEmitter.bottom(hero.pos).start(EarthParticle.FACTORY, 0.05f, 8); Camera.main.shake(1, 0.4f); charge = 0; updateQuickslot(); } } }
@Override public void onSelect( Item item ) { if (item != null && item instanceof Plant.Seed) { if (seeds.contains(item.getClass())){ GLog.w( Messages.get(SandalsOfNature.class, "already_fed") ); } else { seeds.add(item.getClass()); Hero hero = Dungeon.hero; hero.sprite.operate( hero.pos ); Sample.INSTANCE.play( Assets.SND_PLANT ); hero.busy(); hero.spend( 2f ); if (seeds.size() >= 3+(level()*3)){ seeds.clear(); upgrade(); if (level() >= 1 && level() <= 3) { GLog.p( Messages.get(SandalsOfNature.class, "levelup") ); } } else { GLog.i( Messages.get(SandalsOfNature.class, "absorb_seed") ); } item.detach(hero.belongings.backpack); } } } };
@Override public Item upgrade() { if (level() < 0) image = ItemSpriteSheet.ARTIFACT_SANDALS; else if (level() == 0) image = ItemSpriteSheet.ARTIFACT_SHOES; else if (level() == 1) image = ItemSpriteSheet.ARTIFACT_BOOTS; else if (level() >= 2) image = ItemSpriteSheet.ARTIFACT_GREAVES; name = Messages.get(this, "name_" + (level()+1)); return super.upgrade(); }
@Override public void execute( Hero hero, String action ) { super.execute(hero, action); if (action.equals(AC_FEED)){ GameScene.selectItem(itemSelector, mode, Messages.get(this, "prompt")); } else if (action.equals(AC_ROOT) && level() > 0){ if (!isEquipped( hero )) GLog.i( Messages.get(Artifact.class, "need_to_equip") ); else if (charge == 0) GLog.i( Messages.get(this, "no_charge") ); else { Buff.prolong(hero, Roots.class, 5); Buff.affect(hero, Earthroot.Armor.class).level(charge); CellEmitter.bottom(hero.pos).start(EarthParticle.FACTORY, 0.05f, 8); Camera.main.shake(1, 0.4f); charge = 0; updateQuickslot(); } } }
@Override public void onSelect( Item item ) { if (item != null && item instanceof Plant.Seed) { if (seeds.contains(item.getClass())){ GLog.w( Messages.get(SandalsOfNature.class, "already_fed") ); } else { seeds.add(item.getClass()); Hero hero = Dungeon.hero; hero.sprite.operate( hero.pos ); Sample.INSTANCE.play( Assets.SND_PLANT ); hero.busy(); hero.spend( 2f ); if (seeds.size() >= 3+(level()*3)){ seeds.clear(); upgrade(); if (level() >= 1 && level() <= 3) { GLog.p( Messages.get(SandalsOfNature.class, "levelup") ); } } else { GLog.i( Messages.get(SandalsOfNature.class, "absorb_seed") ); } item.detach(hero.belongings.backpack); } } } };
@Override public Item upgrade() { if (level() < 0) image = ItemSpriteSheet.ARTIFACT_SANDALS; else if (level() == 0) image = ItemSpriteSheet.ARTIFACT_SHOES; else if (level() == 1) image = ItemSpriteSheet.ARTIFACT_BOOTS; else if (level() >= 2) image = ItemSpriteSheet.ARTIFACT_GREAVES; name = Messages.get(this, "name_" + (level()+1)); return super.upgrade(); }
@Override public ArrayList<String> actions( Hero hero ) { ArrayList<String> actions = super.actions( hero ); if (isEquipped( hero ) && level() < 3 && !cursed) actions.add(AC_FEED); if (isEquipped( hero ) && charge > 0) actions.add(AC_ROOT); return actions; }
@Override public String desc() { String desc = Messages.get(this, "desc_" + (level()+1)); if ( isEquipped ( Dungeon.hero ) ){ desc += "\n\n"; if (!cursed) desc += Messages.get(this, "desc_hint"); else desc += Messages.get(this, "desc_cursed"); if (level() > 0) desc += "\n\n" + Messages.get(this, "desc_ability"); } if (!seeds.isEmpty()){ desc += "\n\n" + Messages.get(this, "desc_seeds", seeds.size()); } return desc; }
@Override public String desc() { String desc = Messages.get(this, "desc_" + (level()+1)); if ( isEquipped ( Dungeon.hero ) ){ desc += "\n\n"; if (!cursed) desc += Messages.get(this, "desc_hint"); else desc += Messages.get(this, "desc_cursed"); if (level() > 0) desc += "\n\n" + Messages.get(this, "desc_ability"); } if (!seeds.isEmpty()){ desc += "\n\n" + Messages.get(this, "desc_seeds", seeds.size()); } return desc; }
@Override public void restoreFromBundle( Bundle bundle ) { super.restoreFromBundle(bundle); if (level() > 0) name = Messages.get(this, "name_" + level()); if (bundle.contains(SEEDS)) Collections.addAll(seeds , bundle.getClassArray(SEEDS)); if (level() == 1) image = ItemSpriteSheet.ARTIFACT_SHOES; else if (level() == 2) image = ItemSpriteSheet.ARTIFACT_BOOTS; else if (level() >= 3) image = ItemSpriteSheet.ARTIFACT_GREAVES; }
@Override public void restoreFromBundle( Bundle bundle ) { super.restoreFromBundle(bundle); if (level() > 0) name = Messages.get(this, "name_" + level()); if (bundle.contains(SEEDS)) Collections.addAll(seeds , bundle.getClassArray(SEEDS)); if (level() == 1) image = ItemSpriteSheet.ARTIFACT_SHOES; else if (level() == 2) image = ItemSpriteSheet.ARTIFACT_BOOTS; else if (level() >= 3) image = ItemSpriteSheet.ARTIFACT_GREAVES; }