@Override public ArrayList<String> actions( Hero hero ) { ArrayList<String> actions = super.actions( hero ); if (isEquipped( hero ) && charge > 0) actions.add(AC_EAT); if (isEquipped( hero ) && level() < levelCap && !cursed) actions.add(AC_STORE); return actions; }
public void gainFoodValue( Food food ){ if (level() >= 10) return; storedFoodEnergy += food.energy; if (storedFoodEnergy >= Hunger.HUNGRY){ int upgrades = storedFoodEnergy / (int)Hunger.HUNGRY; upgrades = Math.min(upgrades, 10 - level()); upgrade(upgrades); storedFoodEnergy -= upgrades * Hunger.HUNGRY; if (level() == 10){ storedFoodEnergy = 0; GLog.p( Messages.get(this, "maxlevel") ); } else { GLog.p( Messages.get(this, "levelup") ); } } else { GLog.i( Messages.get(this, "feed") ); } }
@Override public void level(int value) { super.level(value); chargeCap = 10 + level(); }
if (!isEquipped(hero)) GLog.i( Messages.get(Artifact.class, "need_to_equip") ); else if (charge == 0) GLog.i( Messages.get(this, "no_food") ); else { else image = ItemSpriteSheet.ARTIFACT_HORN1; updateQuickslot();
@Override public void onSelect( Item item ) { if (item != null && item instanceof Food) { if (item instanceof Blandfruit && ((Blandfruit) item).potionAttrib == null){ GLog.w( Messages.get(HornOfPlenty.class, "reject") ); } else { Hero hero = Dungeon.hero; hero.sprite.operate( hero.pos ); hero.busy(); hero.spend( Food.TIME_TO_EAT ); ((HornOfPlenty)curItem).gainFoodValue(((Food)item)); item.detach(hero.belongings.backpack); } } } };
@Override public void charge(Hero target) { if (charge < chargeCap){ partialCharge += 0.25f; if (partialCharge >= 1){ partialCharge--; charge++; updateQuickslot(); if (charge == chargeCap){ GLog.p( Messages.get(HornOfPlenty.class, "full") ); partialCharge = 0; } } } }
infos.add(changes); changes.addButton( new ChangeButton( new HornOfPlenty(), "The Horn of Plenty was providing a bit too much value in the earlygame, especially without upgrades:\n\n" + "_-_ Charge Speed reduced, primarily at lower levels:\n-20% at +0\n-7.5% at +10\n\n" + "_-_ 31 days after Shattered v0.1.1")); changes.addButton( new ChangeButton(new ItemSprite(new HornOfPlenty()), "Artifacts!", "Added artifacts to the game!\n\n" + "Artifacts are unique items which offer new gameplay opportunities and grow stronger through unique means.\n\n" +
@Override public Item upgrade() { super.upgrade(); chargeCap = 10 + level(); return this; }
if (!isEquipped(hero)) GLog.i( Messages.get(Artifact.class, "need_to_equip") ); else if (charge == 0) GLog.i( Messages.get(this, "no_food") ); else { else image = ItemSpriteSheet.ARTIFACT_HORN1; updateQuickslot();
@Override public void onSelect( Item item ) { if (item != null && item instanceof Food) { if (item instanceof Blandfruit && ((Blandfruit) item).potionAttrib == null){ GLog.w( Messages.get(HornOfPlenty.class, "reject") ); } else { Hero hero = Dungeon.hero; hero.sprite.operate( hero.pos ); hero.busy(); hero.spend( Food.TIME_TO_EAT ); ((HornOfPlenty)curItem).gainFoodValue(((Food)item)); item.detach(hero.belongings.backpack); } } } };
@Override public void charge(Hero target) { if (charge < chargeCap){ partialCharge += 0.25f; if (partialCharge >= 1){ partialCharge--; charge++; updateQuickslot(); if (charge == chargeCap){ GLog.p( Messages.get(HornOfPlenty.class, "full") ); partialCharge = 0; } } } }
infos.add(changes); changes.addButton( new ChangeButton( new HornOfPlenty(), "The Horn of Plenty was providing a bit too much value in the earlygame, especially without upgrades:\n\n" + "_-_ Charge Speed reduced, primarily at lower levels:\n-20% at +0\n-7.5% at +10\n\n" + "_-_ 31 days after Shattered v0.1.1")); changes.addButton( new ChangeButton(new ItemSprite(new HornOfPlenty()), "Artifacts!", "Added artifacts to the game!\n\n" + "Artifacts are unique items which offer new gameplay opportunities and grow stronger through unique means.\n\n" +
@Override public ArrayList<String> actions( Hero hero ) { ArrayList<String> actions = super.actions( hero ); if (isEquipped( hero ) && charge > 0) actions.add(AC_EAT); if (isEquipped( hero ) && level() < levelCap && !cursed) actions.add(AC_STORE); return actions; }
@Override public void level(int value) { super.level(value); chargeCap = 10 + level(); }
public void gainFoodValue( Food food ){ if (level() >= 10) return; storedFoodEnergy += food.energy; if (storedFoodEnergy >= Hunger.HUNGRY){ int upgrades = storedFoodEnergy / (int)Hunger.HUNGRY; upgrades = Math.min(upgrades, 10 - level()); upgrade(upgrades); storedFoodEnergy -= upgrades * Hunger.HUNGRY; if (level() == 10){ storedFoodEnergy = 0; GLog.p( Messages.get(this, "maxlevel") ); } else { GLog.p( Messages.get(this, "levelup") ); } } else { GLog.i( Messages.get(this, "feed") ); } }
@Override public String desc() { String desc = super.desc(); if ( isEquipped( Dungeon.hero ) ){ if (!cursed) { if (level() < levelCap) desc += "\n\n" +Messages.get(this, "desc_hint"); } else { desc += "\n\n" +Messages.get(this, "desc_cursed"); } } return desc; }
@Override public Item upgrade() { super.upgrade(); chargeCap = 10 + level(); return this; }
@Override public String desc() { String desc = super.desc(); if ( isEquipped( Dungeon.hero ) ){ if (!cursed) { if (level() < levelCap) desc += "\n\n" +Messages.get(this, "desc_hint"); } else { desc += "\n\n" +Messages.get(this, "desc_cursed"); } } return desc; }
@Override public void restoreFromBundle(Bundle bundle) { super.restoreFromBundle(bundle); if (bundle.contains(STORED)){ storedFoodEnergy = bundle.getInt(STORED); //logic for pre-0.6.1 saves } else { //keep partial levels storedFoodEnergy = (int)(level()%3 * Hunger.HUNGRY/3); level(level()/3); } if (charge >= 15) image = ItemSpriteSheet.ARTIFACT_HORN4; else if (charge >= 10) image = ItemSpriteSheet.ARTIFACT_HORN3; else if (charge >= 5) image = ItemSpriteSheet.ARTIFACT_HORN2; }
@Override public void restoreFromBundle(Bundle bundle) { super.restoreFromBundle(bundle); if (bundle.contains(STORED)){ storedFoodEnergy = bundle.getInt(STORED); //logic for pre-0.6.1 saves } else { //keep partial levels storedFoodEnergy = (int)(level()%3 * Hunger.HUNGRY/3); level(level()/3); } if (charge >= 15) image = ItemSpriteSheet.ARTIFACT_HORN4; else if (charge >= 10) image = ItemSpriteSheet.ARTIFACT_HORN3; else if (charge >= 5) image = ItemSpriteSheet.ARTIFACT_HORN2; }