v0.3.4: externalized food strings
This commit is contained in:
parent
c1aca208b4
commit
861fa34420
|
@ -379,7 +379,7 @@ public class Item implements Bundlable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String desc() {
|
public String desc() {
|
||||||
return "";
|
return Messages.get(this, "desc");
|
||||||
}
|
}
|
||||||
|
|
||||||
public int quantity() {
|
public int quantity() {
|
||||||
|
|
|
@ -20,50 +20,33 @@
|
||||||
*/
|
*/
|
||||||
package com.shatteredpixel.shatteredpixeldungeon.items.food;
|
package com.shatteredpixel.shatteredpixeldungeon.items.food;
|
||||||
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Assets;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Badges;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Barkskin;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Bleeding;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.EarthImbue;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.EarthImbue;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FireImbue;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FireImbue;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Recharging;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ToxicImbue;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ToxicImbue;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.*;
|
import com.shatteredpixel.shatteredpixeldungeon.items.potions.*;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.plants.*;
|
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant.Seed;
|
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant.Seed;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.audio.Sample;
|
|
||||||
import com.watabou.utils.Bundle;
|
import com.watabou.utils.Bundle;
|
||||||
import com.watabou.utils.Random;
|
|
||||||
|
|
||||||
public class Blandfruit extends Food {
|
public class Blandfruit extends Food {
|
||||||
|
|
||||||
public String message = "You eat the Blandfruit, bleugh!";
|
|
||||||
public String info = "So dry and insubstantial, perhaps stewing it with another ingredient would improve it.";
|
|
||||||
|
|
||||||
public Potion potionAttrib = null;
|
public Potion potionAttrib = null;
|
||||||
public ItemSprite.Glowing potionGlow = null;
|
public ItemSprite.Glowing potionGlow = null;
|
||||||
|
|
||||||
{
|
{
|
||||||
name = "Blandfruit";
|
|
||||||
stackable = true;
|
stackable = true;
|
||||||
image = ItemSpriteSheet.BLANDFRUIT;
|
image = ItemSpriteSheet.BLANDFRUIT;
|
||||||
energy = (Hunger.STARVING - Hunger.HUNGRY)/2;
|
|
||||||
hornValue = 6; //only applies when blandfruit is cooked
|
//only applies when blandfruit is cooked
|
||||||
|
energy = Hunger.STARVING;
|
||||||
|
hornValue = 6;
|
||||||
|
|
||||||
bones = true;
|
bones = true;
|
||||||
}
|
}
|
||||||
|
@ -85,90 +68,28 @@ public class Blandfruit extends Food {
|
||||||
@Override
|
@Override
|
||||||
public void execute( Hero hero, String action ) {
|
public void execute( Hero hero, String action ) {
|
||||||
if (action.equals( AC_EAT )){
|
if (action.equals( AC_EAT )){
|
||||||
|
|
||||||
if (potionAttrib == null) {
|
if (potionAttrib == null) {
|
||||||
|
|
||||||
detach(hero.belongings.backpack);
|
GLog.w( Messages.get(this, "raw"));
|
||||||
|
|
||||||
((Hunger) hero.buff(Hunger.class)).satisfy(energy);
|
|
||||||
GLog.i(message);
|
|
||||||
|
|
||||||
hero.sprite.operate(hero.pos);
|
|
||||||
hero.busy();
|
|
||||||
SpellSprite.show(hero, SpellSprite.FOOD);
|
|
||||||
Sample.INSTANCE.play(Assets.SND_EAT);
|
|
||||||
|
|
||||||
hero.spend(1f);
|
|
||||||
|
|
||||||
Statistics.foodEaten++;
|
|
||||||
Badges.validateFoodEaten();
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
((Hunger) hero.buff(Hunger.class)).satisfy(Hunger.HUNGRY);
|
super.execute(hero, action);
|
||||||
|
|
||||||
detach(hero.belongings.backpack);
|
|
||||||
|
|
||||||
hero.spend(1f);
|
|
||||||
hero.busy();
|
|
||||||
|
|
||||||
if (potionAttrib instanceof PotionOfFrost) {
|
if (potionAttrib instanceof PotionOfFrost) {
|
||||||
GLog.i("the Icefruit tastes a bit like Frozen Carpaccio.");
|
GLog.i(Messages.get(this, "ice_msg"));
|
||||||
switch (Random.Int(5)) {
|
FrozenCarpaccio.effect(hero);
|
||||||
case 0:
|
|
||||||
GLog.i("You see your hands turn invisible!");
|
|
||||||
Buff.affect(hero, Invisibility.class, Invisibility.DURATION);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
GLog.i("You feel your skin harden!");
|
|
||||||
Buff.affect(hero, Barkskin.class).level(hero.HT / 4);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
GLog.i("Refreshing!");
|
|
||||||
Buff.detach(hero, Poison.class);
|
|
||||||
Buff.detach(hero, Cripple.class);
|
|
||||||
Buff.detach(hero, Weakness.class);
|
|
||||||
Buff.detach(hero, Bleeding.class);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
GLog.i("You feel better!");
|
|
||||||
if (hero.HP < hero.HT) {
|
|
||||||
hero.HP = Math.min(hero.HP + hero.HT / 4, hero.HT);
|
|
||||||
hero.sprite.emitter().burst(Speck.factory(Speck.HEALING), 1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else if (potionAttrib instanceof PotionOfLiquidFlame){
|
} else if (potionAttrib instanceof PotionOfLiquidFlame){
|
||||||
GLog.i("You feel a great fire burning within you!");
|
GLog.i(Messages.get(this, "fire_msg"));
|
||||||
Buff.affect(hero, FireImbue.class).set(FireImbue.DURATION);
|
Buff.affect(hero, FireImbue.class).set(FireImbue.DURATION);
|
||||||
} else if (potionAttrib instanceof PotionOfToxicGas) {
|
} else if (potionAttrib instanceof PotionOfToxicGas) {
|
||||||
GLog.i("You are imbued with vile toxic power!");
|
GLog.i(Messages.get(this, "toxic_msg"));
|
||||||
Buff.affect(hero, ToxicImbue.class).set(ToxicImbue.DURATION);
|
Buff.affect(hero, ToxicImbue.class).set(ToxicImbue.DURATION);
|
||||||
} else if (potionAttrib instanceof PotionOfParalyticGas) {
|
} else if (potionAttrib instanceof PotionOfParalyticGas) {
|
||||||
GLog.i("You feel the power of the earth coursing through you!");
|
GLog.i(Messages.get(this, "para_msg"));
|
||||||
Buff.affect(hero, EarthImbue.class, EarthImbue.DURATION);
|
Buff.affect(hero, EarthImbue.class, EarthImbue.DURATION);
|
||||||
} else
|
} else
|
||||||
potionAttrib.apply(hero);
|
potionAttrib.apply(hero);
|
||||||
|
|
||||||
Sample.INSTANCE.play( Assets.SND_EAT );
|
|
||||||
SpellSprite.show(hero, SpellSprite.FOOD);
|
|
||||||
hero.sprite.operate(hero.pos);
|
|
||||||
|
|
||||||
switch (hero.heroClass) {
|
|
||||||
case WARRIOR:
|
|
||||||
if (hero.HP < hero.HT) {
|
|
||||||
hero.HP = Math.min( hero.HP + 5, hero.HT );
|
|
||||||
hero.sprite.emitter().burst( Speck.factory(Speck.HEALING), 1 );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MAGE:
|
|
||||||
//1 charge
|
|
||||||
Buff.affect(hero, Recharging.class, 4f);
|
|
||||||
ScrollOfRecharging.charge(hero);
|
|
||||||
break;
|
|
||||||
case ROGUE:
|
|
||||||
case HUNTRESS:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
super.execute(hero, action);
|
super.execute(hero, action);
|
||||||
|
@ -176,8 +97,9 @@ public class Blandfruit extends Food {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String info() {
|
public String desc() {
|
||||||
return info;
|
if (potionAttrib== null) return super.desc();
|
||||||
|
else return Messages.get(this, "desc_cooked");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -202,76 +124,39 @@ public class Blandfruit extends Food {
|
||||||
|
|
||||||
potionAttrib.image = ItemSpriteSheet.BLANDFRUIT;
|
potionAttrib.image = ItemSpriteSheet.BLANDFRUIT;
|
||||||
|
|
||||||
|
|
||||||
info = "The fruit has plumped up from its time soaking in the pot and has even absorbed the properties "+
|
|
||||||
"of the seed it was cooked with.\n\n";
|
|
||||||
|
|
||||||
if (potionAttrib instanceof PotionOfHealing){
|
if (potionAttrib instanceof PotionOfHealing){
|
||||||
|
name = Messages.get(this, "sunfruit");
|
||||||
name = "Sunfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0x2EE62E );
|
potionGlow = new ItemSprite.Glowing( 0x2EE62E );
|
||||||
info += "It looks delicious and hearty, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfStrength){
|
} else if (potionAttrib instanceof PotionOfStrength){
|
||||||
|
name = Messages.get(this, "rotfruit");
|
||||||
name = "Rotfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0xCC0022 );
|
potionGlow = new ItemSprite.Glowing( 0xCC0022 );
|
||||||
info += "It looks delicious and powerful, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfParalyticGas){
|
} else if (potionAttrib instanceof PotionOfParalyticGas){
|
||||||
|
name = Messages.get(this, "earthfruit");
|
||||||
name = "Earthfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0x67583D );
|
potionGlow = new ItemSprite.Glowing( 0x67583D );
|
||||||
info += "It looks delicious and firm, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfInvisibility){
|
} else if (potionAttrib instanceof PotionOfInvisibility){
|
||||||
|
name = Messages.get(this, "blindfruit");
|
||||||
name = "Blindfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0xE5D273 );
|
potionGlow = new ItemSprite.Glowing( 0xE5D273 );
|
||||||
info += "It looks delicious and shiny, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfLiquidFlame){
|
} else if (potionAttrib instanceof PotionOfLiquidFlame){
|
||||||
|
name = Messages.get(this, "firefruit");
|
||||||
name = "Firefruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0xFF7F00 );
|
potionGlow = new ItemSprite.Glowing( 0xFF7F00 );
|
||||||
info += "It looks delicious and spicy, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfFrost){
|
} else if (potionAttrib instanceof PotionOfFrost){
|
||||||
|
name = Messages.get(this, "icefruit");
|
||||||
name = "Icefruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0x66B3FF );
|
potionGlow = new ItemSprite.Glowing( 0x66B3FF );
|
||||||
info += "It looks delicious and refreshing, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfMindVision){
|
} else if (potionAttrib instanceof PotionOfMindVision){
|
||||||
|
name = Messages.get(this, "fadefruit");
|
||||||
name = "Fadefruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0xB8E6CF );
|
potionGlow = new ItemSprite.Glowing( 0xB8E6CF );
|
||||||
info += "It looks delicious and shadowy, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfToxicGas){
|
} else if (potionAttrib instanceof PotionOfToxicGas){
|
||||||
|
name = Messages.get(this, "sorrowfruit");
|
||||||
name = "Sorrowfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0xA15CE5 );
|
potionGlow = new ItemSprite.Glowing( 0xA15CE5 );
|
||||||
info += "It looks delicious and crisp, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfLevitation) {
|
} else if (potionAttrib instanceof PotionOfLevitation) {
|
||||||
|
name = Messages.get(this, "stormfruit");
|
||||||
name = "Stormfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0x1C3A57 );
|
potionGlow = new ItemSprite.Glowing( 0x1C3A57 );
|
||||||
info += "It looks delicious and lightweight, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfPurity) {
|
} else if (potionAttrib instanceof PotionOfPurity) {
|
||||||
|
name = Messages.get(this, "dreamfruit");
|
||||||
name = "Dreamfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0x8E2975 );
|
potionGlow = new ItemSprite.Glowing( 0x8E2975 );
|
||||||
info += "It looks delicious and clean, ready to be eaten!";
|
|
||||||
|
|
||||||
} else if (potionAttrib instanceof PotionOfExperience) {
|
} else if (potionAttrib instanceof PotionOfExperience) {
|
||||||
|
name = Messages.get(this, "starfruit");
|
||||||
name = "Starfruit";
|
|
||||||
potionGlow = new ItemSprite.Glowing( 0xA79400 );
|
potionGlow = new ItemSprite.Glowing( 0xA79400 );
|
||||||
info += "It looks delicious and glorious, ready to be eaten!";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -306,36 +191,9 @@ public class Blandfruit extends Food {
|
||||||
super.restoreFromBundle(bundle);
|
super.restoreFromBundle(bundle);
|
||||||
if (bundle.contains(POTIONATTRIB)) {
|
if (bundle.contains(POTIONATTRIB)) {
|
||||||
imbuePotion((Potion) bundle.get(POTIONATTRIB));
|
imbuePotion((Potion) bundle.get(POTIONATTRIB));
|
||||||
|
|
||||||
//TODO: legacy code for pre-v0.2.3, remove when saves from that version are no longer supported.
|
|
||||||
} else if (bundle.contains("name")) {
|
|
||||||
name = bundle.getString("name");
|
|
||||||
|
|
||||||
if (name.equals("Healthfruit"))
|
|
||||||
cook(new Sungrass.Seed());
|
|
||||||
else if (name.equals("Powerfruit"))
|
|
||||||
cook(new Rotberry.Seed());
|
|
||||||
else if (name.equals("Paralyzefruit"))
|
|
||||||
cook(new Earthroot.Seed());
|
|
||||||
else if (name.equals("Invisifruit"))
|
|
||||||
cook(new Blindweed.Seed());
|
|
||||||
else if (name.equals("Flamefruit"))
|
|
||||||
cook(new Firebloom.Seed());
|
|
||||||
else if (name.equals("Frostfruit"))
|
|
||||||
cook(new Icecap.Seed());
|
|
||||||
else if (name.equals("Visionfruit"))
|
|
||||||
cook(new Fadeleaf.Seed());
|
|
||||||
else if (name.equals("Toxicfruit"))
|
|
||||||
cook(new Sorrowmoss.Seed());
|
|
||||||
else if (name.equals("Floatfruit"))
|
|
||||||
cook(new Stormvine.Seed());
|
|
||||||
else if (name.equals("Purefruit"))
|
|
||||||
cook(new Dreamfoil.Seed());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemSprite.Glowing glowing() {
|
public ItemSprite.Glowing glowing() {
|
||||||
return potionGlow;
|
return potionGlow;
|
||||||
|
|
|
@ -31,11 +31,6 @@ public class ChargrilledMeat extends Food {
|
||||||
hornValue = 1;
|
hornValue = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String info() {
|
|
||||||
return "It looks like a decent steak.";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int price() {
|
public int price() {
|
||||||
return 5 * quantity;
|
return 5 * quantity;
|
||||||
|
|
|
@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
|
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.noosa.audio.Sample;
|
import com.watabou.noosa.audio.Sample;
|
||||||
|
@ -44,7 +45,7 @@ public class Food extends Item {
|
||||||
public static final String AC_EAT = "EAT";
|
public static final String AC_EAT = "EAT";
|
||||||
|
|
||||||
public float energy = Hunger.HUNGRY;
|
public float energy = Hunger.HUNGRY;
|
||||||
public String message = "That food tasted delicious!";
|
public String message = Messages.get(this, "eat_msg");
|
||||||
|
|
||||||
public int hornValue = 3;
|
public int hornValue = 3;
|
||||||
|
|
||||||
|
@ -68,7 +69,7 @@ public class Food extends Item {
|
||||||
|
|
||||||
detach( hero.belongings.backpack );
|
detach( hero.belongings.backpack );
|
||||||
|
|
||||||
((Hunger)hero.buff( Hunger.class )).satisfy( energy );
|
(hero.buff( Hunger.class )).satisfy( energy );
|
||||||
GLog.i( message );
|
GLog.i( message );
|
||||||
|
|
||||||
switch (hero.heroClass) {
|
switch (hero.heroClass) {
|
||||||
|
@ -105,13 +106,6 @@ public class Food extends Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String info() {
|
|
||||||
return
|
|
||||||
"Nothing fancy here: dried meat, " +
|
|
||||||
"some biscuits - things like that.";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isUpgradable() {
|
public boolean isUpgradable() {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -33,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
@ -51,18 +52,26 @@ public class FrozenCarpaccio extends Food {
|
||||||
super.execute( hero, action );
|
super.execute( hero, action );
|
||||||
|
|
||||||
if (action.equals( AC_EAT )) {
|
if (action.equals( AC_EAT )) {
|
||||||
|
effect(hero);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int price() {
|
||||||
|
return 10 * quantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void effect(Hero hero){
|
||||||
switch (Random.Int( 5 )) {
|
switch (Random.Int( 5 )) {
|
||||||
case 0:
|
case 0:
|
||||||
GLog.i( "You see your hands turn invisible!" );
|
GLog.i( Messages.get(FrozenCarpaccio.class, "invis") );
|
||||||
Buff.affect( hero, Invisibility.class, Invisibility.DURATION );
|
Buff.affect( hero, Invisibility.class, Invisibility.DURATION );
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
GLog.i( "You feel your skin harden!" );
|
GLog.i( Messages.get(FrozenCarpaccio.class, "hard") );
|
||||||
Buff.affect( hero, Barkskin.class ).level( hero.HT / 4 );
|
Buff.affect( hero, Barkskin.class ).level( hero.HT / 4 );
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
GLog.i( "Refreshing!" );
|
GLog.i( Messages.get(FrozenCarpaccio.class, "refresh") );
|
||||||
Buff.detach( hero, Poison.class );
|
Buff.detach( hero, Poison.class );
|
||||||
Buff.detach( hero, Cripple.class );
|
Buff.detach( hero, Cripple.class );
|
||||||
Buff.detach( hero, Weakness.class );
|
Buff.detach( hero, Weakness.class );
|
||||||
|
@ -72,7 +81,7 @@ public class FrozenCarpaccio extends Food {
|
||||||
Buff.detach( hero, Vertigo.class);
|
Buff.detach( hero, Vertigo.class);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
GLog.i( "You feel better!" );
|
GLog.i( Messages.get(FrozenCarpaccio.class, "better") );
|
||||||
if (hero.HP < hero.HT) {
|
if (hero.HP < hero.HT) {
|
||||||
hero.HP = Math.min( hero.HP + hero.HT / 4, hero.HT );
|
hero.HP = Math.min( hero.HP + hero.HT / 4, hero.HT );
|
||||||
hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 );
|
hero.sprite.emitter().burst( Speck.factory( Speck.HEALING ), 1 );
|
||||||
|
@ -80,18 +89,6 @@ public class FrozenCarpaccio extends Food {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String info() {
|
|
||||||
return
|
|
||||||
"It's a piece of frozen raw meat. The only way to eat it is " +
|
|
||||||
"by cutting thin slices of it. And this way it's suprisingly good.";
|
|
||||||
}
|
|
||||||
|
|
||||||
public int price() {
|
|
||||||
return 10 * quantity;
|
|
||||||
};
|
|
||||||
|
|
||||||
public static Food cook( MysteryMeat ingredient ) {
|
public static Food cook( MysteryMeat ingredient ) {
|
||||||
FrozenCarpaccio result = new FrozenCarpaccio();
|
FrozenCarpaccio result = new FrozenCarpaccio();
|
||||||
|
|
|
@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
|
||||||
import com.watabou.utils.Random;
|
import com.watabou.utils.Random;
|
||||||
|
@ -37,7 +38,6 @@ public class MysteryMeat extends Food {
|
||||||
{
|
{
|
||||||
image = ItemSpriteSheet.MEAT;
|
image = ItemSpriteSheet.MEAT;
|
||||||
energy = Hunger.STARVING - Hunger.HUNGRY;
|
energy = Hunger.STARVING - Hunger.HUNGRY;
|
||||||
message = "That food tasted... strange.";
|
|
||||||
hornValue = 1;
|
hornValue = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,34 +47,32 @@ public class MysteryMeat extends Food {
|
||||||
super.execute( hero, action );
|
super.execute( hero, action );
|
||||||
|
|
||||||
if (action.equals( AC_EAT )) {
|
if (action.equals( AC_EAT )) {
|
||||||
|
effect(hero);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int price() {
|
||||||
|
return 5 * quantity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void effect(Hero hero){
|
||||||
switch (Random.Int( 5 )) {
|
switch (Random.Int( 5 )) {
|
||||||
case 0:
|
case 0:
|
||||||
GLog.w( "Oh it's hot!" );
|
GLog.w( Messages.get(MysteryMeat.class, "hot") );
|
||||||
Buff.affect( hero, Burning.class ).reignite( hero );
|
Buff.affect( hero, Burning.class ).reignite( hero );
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
GLog.w( "You can't feel your legs!" );
|
GLog.w( Messages.get(MysteryMeat.class, "legs") );
|
||||||
Buff.prolong( hero, Roots.class, Paralysis.duration( hero ) );
|
Buff.prolong( hero, Roots.class, Paralysis.duration( hero ) );
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
GLog.w( "You are not feeling well." );
|
GLog.w( Messages.get(MysteryMeat.class, "not_well") );
|
||||||
Buff.affect( hero, Poison.class ).set( Poison.durationFactor( hero ) * hero.HT / 5 );
|
Buff.affect( hero, Poison.class ).set( Poison.durationFactor( hero ) * hero.HT / 5 );
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
GLog.w( "You are stuffed." );
|
GLog.w( Messages.get(MysteryMeat.class, "stuffed") );
|
||||||
Buff.prolong( hero, Slow.class, Slow.duration( hero ) );
|
Buff.prolong( hero, Slow.class, Slow.duration( hero ) );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String info() {
|
|
||||||
return "Eat at your own risk!";
|
|
||||||
}
|
|
||||||
|
|
||||||
public int price() {
|
|
||||||
return 5 * quantity;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -28,15 +28,9 @@ public class OverpricedRation extends Food {
|
||||||
{
|
{
|
||||||
image = ItemSpriteSheet.OVERPRICED;
|
image = ItemSpriteSheet.OVERPRICED;
|
||||||
energy = Hunger.STARVING - Hunger.HUNGRY;
|
energy = Hunger.STARVING - Hunger.HUNGRY;
|
||||||
message = "That food tasted ok.";
|
|
||||||
hornValue = 1;
|
hornValue = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String info() {
|
|
||||||
return "It looks exactly like a standard ration of food but smaller.";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int price() {
|
public int price() {
|
||||||
return 20 * quantity;
|
return 20 * quantity;
|
||||||
|
|
|
@ -99,10 +99,9 @@ public class Pasty extends Food {
|
||||||
public String info() {
|
public String info() {
|
||||||
switch(holiday){
|
switch(holiday){
|
||||||
case NONE: default:
|
case NONE: default:
|
||||||
return "This is authentic Cornish pasty with traditional filling of beef and potato.";
|
return Messages.get(this, "pasty_desc");
|
||||||
case XMAS:
|
case XMAS:
|
||||||
return "A huge sugary sweet candy cane! It's big enough to fill you up, " +
|
return Messages.get(this, "cane_desc");
|
||||||
"and the sugar might give your wands a tiny bit of extra charge too.\n\nHappy Holidays!";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -447,14 +447,50 @@ items.bags.scrollholder.name=scroll holder
|
||||||
items.bags.seedpouch.name=seed pouch
|
items.bags.seedpouch.name=seed pouch
|
||||||
items.bags.wandholster.name=wand holster
|
items.bags.wandholster.name=wand holster
|
||||||
|
|
||||||
#items.food.blandfruit.name=
|
items.food.blandfruit.name=blandfruit
|
||||||
|
items.food.blandfruit.sunfruit=sunfruit
|
||||||
|
items.food.blandfruit.rotfruit=rotfruit
|
||||||
|
items.food.blandfruit.earthfruit=earthfruit
|
||||||
|
items.food.blandfruit.blindfruit=blindfruit
|
||||||
|
items.food.blandfruit.firefruit=firefruit
|
||||||
|
items.food.blandfruit.icefruit=icefruit
|
||||||
|
items.food.blandfruit.fadefruit=fadefruit
|
||||||
|
items.food.blandfruit.sorrowfruit=sorrowfruit
|
||||||
|
items.food.blandfruit.stormfruit=stormfruit
|
||||||
|
items.food.blandfruit.dreamfruit=dreamfruit
|
||||||
|
items.food.blandfruit.starfruit=starfruit
|
||||||
|
items.food.blandfruit.raw=You can't bear to eat it raw.
|
||||||
|
items.food.blandfruit.ice_msg=The icefruit tastes a bit like Frozen Carpaccio.
|
||||||
|
items.food.blandfruit.fire_msg=You feel a great fire burning within you!
|
||||||
|
items.food.blandfruit.toxic_msg=You are imbued with vile toxic power!
|
||||||
|
items.food.blandfruit.para_msg=You feel the power of the earth coursing through you!
|
||||||
|
items.food.blandfruit.desc=So dry and insubstantial, perhaps stewing it with another ingredient would improve it.
|
||||||
|
items.food.blandfruit.desc_cooked=The fruit has plumped up from its time soaking in the pot and has even absorbed the properties of the seed it was cooked with.\n\nIt looks ready to be eaten!
|
||||||
items.food.chargrilledmeat.name=chargrilled meat
|
items.food.chargrilledmeat.name=chargrilled meat
|
||||||
|
items.food.chargrilledmeat.desc=It looks like a decent steak.
|
||||||
items.food.food.name=ration of food
|
items.food.food.name=ration of food
|
||||||
|
items.food.food.eat_msg=That food tasted delicious!
|
||||||
|
items.food.food.desc=Nothing fancy here: dried meat, some biscuits - things like that.
|
||||||
items.food.frozencarpaccio.name=frozen carpaccio
|
items.food.frozencarpaccio.name=frozen carpaccio
|
||||||
|
items.food.frozencarpaccio.invis=You see your hands turn invisible!
|
||||||
|
items.food.frozencarpaccio.hard=You feel your skin harden!
|
||||||
|
items.food.frozencarpaccio.refresh=Refreshing!
|
||||||
|
items.food.frozencarpaccio.better=You feel better!
|
||||||
|
items.food.frozencarpaccio.desc=It's a piece of frozen raw meat. The only way to eat it is by cutting thin slices of it. And this way it's suprisingly good.
|
||||||
items.food.mysterymeat.name=mystery meat
|
items.food.mysterymeat.name=mystery meat
|
||||||
|
items.food.mysterymeat.eat_msg=That food tasted... strange.
|
||||||
|
items.food.mysterymeat.hot=Oh it's hot!
|
||||||
|
items.food.mysterymeat.legs=You can't feel your legs!
|
||||||
|
items.food.mysterymeat.not_well=You are not feeling well.
|
||||||
|
items.food.mysterymeat.stuffed=You are stuffed.
|
||||||
|
items.food.mysterymeat.desc=Eat at your own risk!
|
||||||
items.food.overpricedration.name=overpriced food ration
|
items.food.overpricedration.name=overpriced food ration
|
||||||
|
items.food.overpricedration.eat_msg=That food tasted ok.
|
||||||
|
items.food.overpricedration.desc=It looks exactly like a standard ration of food but smaller.
|
||||||
items.food.pasty.pasty=pasty
|
items.food.pasty.pasty=pasty
|
||||||
items.food.pasty.cane=candy cane
|
items.food.pasty.cane=candy cane
|
||||||
|
items.food.food.pasty_desc=This is authentic Cornish pasty with traditional filling of beef and potato.
|
||||||
|
items.food.food.cane_desc=A huge sugary sweet candy cane! It's big enough to fill you up, and the sugar might give your wands a tiny bit of extra charge too.\n\nHappy Holidays!
|
||||||
|
|
||||||
items.keys.GoldenKey.name=golden key
|
items.keys.GoldenKey.name=golden key
|
||||||
items.keys.IronKey.name=iron key
|
items.keys.IronKey.name=iron key
|
||||||
|
|
Loading…
Reference in New Issue
Block a user