diff --git a/core/src/main/assets/items.png b/core/src/main/assets/items.png
index 44015b8c3..a1df69abc 100644
Binary files a/core/src/main/assets/items.png and b/core/src/main/assets/items.png differ
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java
index 5aa29440b..a31c64f1c 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/Char.java
@@ -40,6 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.EarthImbue;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FireImbue;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost;
+import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FrostImbue;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Haste;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Hunger;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicalSleep;
@@ -226,6 +227,8 @@ public abstract class Char extends Actor {
buff(FireImbue.class).proc(enemy);
if (buff(EarthImbue.class) != null)
buff(EarthImbue.class).proc(enemy);
+ if (buff(FrostImbue.class) != null)
+ buff(FrostImbue.class).proc(enemy);
enemy.sprite.bloodBurstA( sprite.center(), effectiveDamage );
enemy.sprite.flash();
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java
index b0a27fae5..363443bd1 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Combo.java
@@ -281,6 +281,8 @@ public class Combo extends Buff implements ActionIndicator.Action {
target.buff(FireImbue.class).proc(enemy);
if (target.buff(EarthImbue.class) != null)
target.buff(EarthImbue.class).proc(enemy);
+ if (target.buff(FrostImbue.class) != null)
+ target.buff(FrostImbue.class).proc(enemy);
Sample.INSTANCE.play( Assets.SND_HIT, 1, 1, Random.Float( 0.8f, 1.25f ) );
enemy.sprite.bloodBurstA( target.sprite.center(), dmg );
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java
index c68651d4e..f217cf0e7 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/EarthImbue.java
@@ -28,6 +28,7 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;
+//pre-0.7.0, otherwise unused
public class EarthImbue extends FlavourBuff {
{
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java
index fe44ce6ef..a95d05b7d 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FireImbue.java
@@ -39,7 +39,7 @@ public class FireImbue extends Buff {
announced = true;
}
- public static final float DURATION = 30f;
+ public static final float DURATION = 50f;
protected float left;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java
new file mode 100644
index 000000000..c7dd10365
--- /dev/null
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/FrostImbue.java
@@ -0,0 +1,68 @@
+/*
+ * Pixel Dungeon
+ * Copyright (C) 2012-2015 Oleg Dolya
+ *
+ * Shattered Pixel Dungeon
+ * Copyright (C) 2014-2018 Evan Debenham
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see
+ */
+
+package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
+
+import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
+import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SnowParticle;
+import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
+import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
+import com.watabou.noosa.Image;
+
+public class FrostImbue extends FlavourBuff {
+
+ {
+ type = buffType.POSITIVE;
+ announced = true;
+ }
+
+ public static final float DURATION = 50f;
+
+ public void proc(Char enemy){
+ Buff.affect(enemy, Chill.class, 2f);
+ enemy.sprite.emitter().burst( SnowParticle.FACTORY, 2 );
+ }
+
+ @Override
+ public int icon() {
+ return BuffIndicator.FROST;
+ }
+
+ @Override
+ public void tintIcon(Image icon) {
+ greyIcon(icon, 5f, cooldown());
+ }
+
+ @Override
+ public String toString() {
+ return Messages.get(this, "name");
+ }
+
+ @Override
+ public String desc() {
+ return Messages.get(this, "desc", dispTurns());
+ }
+
+ {
+ immunities.add( Frost.class );
+ immunities.add( Chill.class );
+ }
+}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java
index 1bfb4063c..061350524 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Ooze.java
@@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
+import com.watabou.utils.Bundle;
import com.watabou.utils.Random;
public class Ooze extends Buff {
@@ -34,6 +35,26 @@ public class Ooze extends Buff {
announced = true;
}
+ private float left;
+ private static final String LEFT = "left";
+
+ @Override
+ public void storeInBundle( Bundle bundle ) {
+ super.storeInBundle( bundle );
+ bundle.put( LEFT, left );
+ }
+
+ @Override
+ public void restoreFromBundle( Bundle bundle ) {
+ super.restoreFromBundle(bundle);
+ //pre-0.7.0
+ if (bundle.contains( LEFT )) {
+ left = bundle.getFloat(LEFT);
+ } else {
+ left = 20;
+ }
+ }
+
@Override
public int icon() {
return BuffIndicator.OOZE;
@@ -51,7 +72,11 @@ public class Ooze extends Buff {
@Override
public String desc() {
- return Messages.get(this, "desc");
+ return Messages.get(this, "desc", dispTurns(left));
+ }
+
+ public void set(float left){
+ this.left = left;
}
@Override
@@ -66,6 +91,10 @@ public class Ooze extends Buff {
GLog.n( Messages.get(this, "ondeath") );
}
spend( TICK );
+ left -= TICK;
+ if (left <= 0){
+ detach();
+ }
} else {
detach();
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java
index 93ac05e29..d7755500f 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/ToxicImbue.java
@@ -36,7 +36,7 @@ public class ToxicImbue extends Buff {
announced = true;
}
- public static final float DURATION = 30f;
+ public static final float DURATION = 50f;
protected float left;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java
index 7db4b4a92..3522f1754 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/FetidRat.java
@@ -61,7 +61,7 @@ public class FetidRat extends Rat {
public int attackProc( Char enemy, int damage ) {
damage = super.attackProc( enemy, damage );
if (Random.Int(3) == 0) {
- Buff.affect(enemy, Ooze.class);
+ Buff.affect(enemy, Ooze.class).set( 20f );
}
return damage;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java
index a91d3e404..5ac89966c 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Goo.java
@@ -123,7 +123,7 @@ public class Goo extends Mob {
public int attackProc( Char enemy, int damage ) {
damage = super.attackProc( enemy, damage );
if (Random.Int( 3 ) == 0) {
- Buff.affect( enemy, Ooze.class );
+ Buff.affect( enemy, Ooze.class ).set( 20f );
enemy.sprite.burst( 0x000000, 5 );
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java
index 6f574aefb..e0bb8d6a5 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Yog.java
@@ -238,7 +238,7 @@ public class Yog extends Mob {
damage = super.attackProc( enemy, damage );
if (Random.Int( 3 ) == 0) {
- Buff.affect( enemy, Ooze.class );
+ Buff.affect( enemy, Ooze.class ).set( 20f );
enemy.sprite.burst( 0xFF000000, 5 );
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Recipe.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Recipe.java
index 067c0388d..f78fcbd06 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Recipe.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/Recipe.java
@@ -37,8 +37,8 @@ import com.shatteredpixel.shatteredpixeldungeon.items.potions.brews.ShockingBrew
import com.shatteredpixel.shatteredpixeldungeon.items.potions.brews.WickedBrew;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfAquaticRejuvenation;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfDragonsBlood;
-import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfEarthenPower;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfHoneyedHealing;
+import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfIcyTouch;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfMight;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfRestoration;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs.ElixirOfToxicEssence;
@@ -167,7 +167,7 @@ public abstract class Recipe {
new Bomb.EnhanceBomb(),
new ElixirOfAquaticRejuvenation.Recipe(),
new ElixirOfDragonsBlood.Recipe(),
- new ElixirOfEarthenPower.Recipe(),
+ new ElixirOfIcyTouch.Recipe(),
new ElixirOfHoneyedHealing.Recipe(),
new ElixirOfRestoration.Recipe(),
new ElixirOfToxicEssence.Recipe(),
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Corrosion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Corrosion.java
index 31de58b9b..e23f1c1b8 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Corrosion.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/armor/curses/Corrosion.java
@@ -43,7 +43,7 @@ public class Corrosion extends Armor.Glyph {
for (int i : PathFinder.NEIGHBOURS9){
Splash.at(pos+i, 0x000000, 5);
if (Actor.findChar(pos+i) != null)
- Buff.affect(Actor.findChar(pos+i), Ooze.class);
+ Buff.affect(Actor.findChar(pos+i), Ooze.class).set( 20f );
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java
index 51957b4dd..0b451ab29 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Bomb.java
@@ -234,7 +234,7 @@ public class Bomb extends Item {
public static class Fuse extends Actor{
{
- actPriority = BUFF_PRIO; //as if it were a buff
+ actPriority = BLOB_PRIO+1; //after hero, before other actors
}
private Bomb bomb;
@@ -303,7 +303,7 @@ public class Bomb extends Item {
static {
validIngredients.put(PotionOfLiquidFlame.class, Firebomb.class);
validIngredients.put(PotionOfFrost.class, FrostBomb.class);
- validIngredients.put(PotionOfHealing.class, HealingBomb.class);
+ validIngredients.put(PotionOfHealing.class, RegrowthBomb.class);
validIngredients.put(PotionOfInvisibility.class, Flashbang.class);
validIngredients.put(ScrollOfRecharging.class, ShockBomb.class);
@@ -317,18 +317,18 @@ public class Bomb extends Item {
private static final HashMap, Integer> bombCosts = new HashMap<>();
static {
- bombCosts.put(Firebomb.class, 2);
- bombCosts.put(FrostBomb.class, 1);
- bombCosts.put(HealingBomb.class, 4);
- bombCosts.put(Flashbang.class, 3);
+ bombCosts.put(Firebomb.class, 4);
+ bombCosts.put(FrostBomb.class, 3);
+ bombCosts.put(RegrowthBomb.class, 6);
+ bombCosts.put(Flashbang.class, 5);
- bombCosts.put(ShockBomb.class, 3);
- bombCosts.put(HolyBomb.class, 4);
- bombCosts.put(WoollyBomb.class, 1);
- bombCosts.put(Noisemaker.class, 2);
+ bombCosts.put(ShockBomb.class, 5);
+ bombCosts.put(HolyBomb.class, 6);
+ bombCosts.put(WoollyBomb.class, 3);
+ bombCosts.put(Noisemaker.class, 4);
- bombCosts.put(ArcaneBomb.class, 6);
- bombCosts.put(ShrapnelBomb.class, 6);
+ bombCosts.put(ArcaneBomb.class, 8);
+ bombCosts.put(ShrapnelBomb.class, 8);
}
@Override
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Flashbang.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Flashbang.java
index 189221bc5..02ab68653 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Flashbang.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Flashbang.java
@@ -59,7 +59,7 @@ public class Flashbang extends Bomb {
Level l = Dungeon.level;
for (Char ch : Actor.chars()){
if (ch.fieldOfView != null && ch.fieldOfView[cell]){
- int power = 10 - l.distance(ch.pos, cell);
+ int power = 15 - 2*l.distance(ch.pos, cell);
if (power > 0){
Buff.prolong(ch, Blindness.class, power);
Buff.prolong(ch, Cripple.class, power);
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Noisemaker.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Noisemaker.java
index fe7e60c29..a96ee94fe 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Noisemaker.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/Noisemaker.java
@@ -65,7 +65,7 @@ public class Noisemaker extends Bomb {
public void set(int cell){
floor = Dungeon.depth;
this.cell = cell;
- left = 5;
+ left = 8;
}
@Override
@@ -88,7 +88,7 @@ public class Noisemaker extends Bomb {
}
if (left > 0) {
- spend(TICK * 20f);
+ spend(TICK * 15f);
left--;
} else {
detach();
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HealingBomb.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java
similarity index 54%
rename from core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HealingBomb.java
rename to core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java
index fc9054d62..32f901853 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/HealingBomb.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/bombs/RegrowthBomb.java
@@ -25,20 +25,30 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
+import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
+import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Regrowth;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Healing;
import com.shatteredpixel.shatteredpixeldungeon.effects.Splash;
+import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHealing;
+import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
+import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain;
+import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
+import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
import com.watabou.noosa.audio.Sample;
import com.watabou.utils.PathFinder;
+import com.watabou.utils.Random;
-public class HealingBomb extends Bomb {
+import java.util.ArrayList;
+
+public class RegrowthBomb extends Bomb {
{
//TODO visuals
- image = ItemSpriteSheet.HEAL_BOMB;
+ image = ItemSpriteSheet.REGROWTH_BOMB;
}
@Override
@@ -54,16 +64,44 @@ public class HealingBomb extends Bomb {
//no regular explosion damage
+ ArrayList plantCandidates = new ArrayList<>();
+
PathFinder.buildDistanceMap( cell, BArray.not( Dungeon.level.solid, null ), 2 );
for (int i = 0; i < PathFinder.distance.length; i++) {
if (PathFinder.distance[i] < Integer.MAX_VALUE) {
Char ch = Actor.findChar(i);
if (ch != null){
- //same as a healing potion
- Buff.affect( ch, Healing.class ).setHeal((int)(0.8f*ch.HT + 14), 0.25f, 0);
- PotionOfHealing.cure( ch );
+ if (ch.alignment == Dungeon.hero.alignment) {
+ //same as a healing dart
+ Buff.affect(ch, Healing.class).setHeal((int) (0.5f * ch.HT + 30), 0.25f, 0);
+ PotionOfHealing.cure(ch);
+ }
+ } else if ( Dungeon.level.map[i] == Terrain.EMPTY ||
+ Dungeon.level.map[i] == Terrain.EMBERS ||
+ Dungeon.level.map[i] == Terrain.EMPTY_DECO ||
+ Dungeon.level.map[i] == Terrain.GRASS ||
+ Dungeon.level.map[i] == Terrain.HIGH_GRASS){
+
+ plantCandidates.add(i);
}
+ GameScene.add( Blob.seed( i, 10, Regrowth.class ) );
}
}
+
+ Integer plantPos = Random.element(plantCandidates);
+ if (plantPos != null){
+ Dungeon.level.plant((Plant.Seed) Generator.random(Generator.Category.SEED), plantPos);
+ plantCandidates.remove(plantPos);
+ }
+
+ plantPos = Random.element(plantCandidates);
+ if (plantPos != null){
+ if (Random.Int(2) == 0){
+ Dungeon.level.plant( new WandOfRegrowth.Dewcatcher.Seed(), plantPos);
+ } else {
+ Dungeon.level.plant((Plant.Seed) Generator.random(Generator.Category.SEED), plantPos);
+ }
+ plantCandidates.remove(plantPos);
+ }
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java
index e0d16ce78..c409dd3b3 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Blandfruit.java
@@ -273,7 +273,7 @@ public class Blandfruit extends Food {
@Override
public int cost(ArrayList- ingredients) {
- return 2;
+ return 3;
}
@Override
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Feast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Feast.java
index ad9410dc3..c2967645c 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Feast.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/food/Feast.java
@@ -76,7 +76,7 @@ public class Feast extends Food {
@Override
public int cost(ArrayList
- ingredients) {
- return 8;
+ return (int)Hunger.STARVING/50;
}
@Override
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/BlizzardBrew.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/BlizzardBrew.java
index ea3daec84..f1b2e3faf 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/BlizzardBrew.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/BlizzardBrew.java
@@ -55,7 +55,7 @@ public class BlizzardBrew extends Brew {
inputs = new Class[]{PotionOfSnapFreeze.class, PotionOfFrost.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 6;
output = BlizzardBrew.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java
index f64eea4e8..e444c3447 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/CausticBrew.java
@@ -46,7 +46,7 @@ public class CausticBrew extends Brew {
Char ch = Actor.findChar(cell + offset);
if (ch != null){
- Buff.affect(ch, Ooze.class);
+ Buff.affect(ch, Ooze.class).set( 20f );
}
}
@@ -58,7 +58,7 @@ public class CausticBrew extends Brew {
inputs = new Class[]{PotionOfToxicGas.class, GooBlob.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 8;
output = CausticBrew.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/FrostfireBrew.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/FrostfireBrew.java
index 3c12b6cee..73879759c 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/FrostfireBrew.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/FrostfireBrew.java
@@ -75,7 +75,7 @@ public class FrostfireBrew extends Brew {
inputs = new Class[]{PotionOfSnapFreeze.class, PotionOfLiquidFlame.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 8;
output = FrostfireBrew.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/InfernalBrew.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/InfernalBrew.java
index 396090106..761591bf6 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/InfernalBrew.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/InfernalBrew.java
@@ -56,7 +56,7 @@ public class InfernalBrew extends Brew {
inputs = new Class[]{PotionOfDragonsBreath.class, PotionOfLiquidFlame.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 6;
output = InfernalBrew.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/ShockingBrew.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/ShockingBrew.java
index 4f1484ce7..e9665b70e 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/ShockingBrew.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/brews/ShockingBrew.java
@@ -60,7 +60,7 @@ public class ShockingBrew extends Brew {
inputs = new Class[]{PotionOfParalyticGas.class, PotionOfStormClouds.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 8;
output = ShockingBrew.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java
index a42a6a5e1..a72173bec 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfAquaticRejuvenation.java
@@ -120,7 +120,7 @@ public class ElixirOfAquaticRejuvenation extends Elixir {
inputs = new Class[]{PotionOfHealing.class, GooBlob.class};
inQuantity = new int[]{1, 1};
- cost = 3;
+ cost = 4;
output = ElixirOfAquaticRejuvenation.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java
index e518d7473..43af1c973 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfDragonsBlood.java
@@ -56,7 +56,7 @@ public class ElixirOfDragonsBlood extends Elixir {
inputs = new Class[]{PotionOfLiquidFlame.class, PotionOfPurity.class};
inQuantity = new int[]{1, 1};
- cost = 4;
+ cost = 6;
output = ElixirOfDragonsBlood.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfHoneyedHealing.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfHoneyedHealing.java
index 298d9e89d..89f20b3b9 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfHoneyedHealing.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfHoneyedHealing.java
@@ -71,7 +71,7 @@ public class ElixirOfHoneyedHealing extends Elixir {
inputs = new Class[]{PotionOfHealing.class, Honeypot.ShatteredPot.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 4;
output = ElixirOfHoneyedHealing.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfEarthenPower.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java
similarity index 76%
rename from core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfEarthenPower.java
rename to core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java
index 7949170ab..60000aa65 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfEarthenPower.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfIcyTouch.java
@@ -22,40 +22,40 @@
package com.shatteredpixel.shatteredpixeldungeon.items.potions.elixirs;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
-import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.EarthImbue;
+import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.FrostImbue;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
-import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EarthParticle;
-import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfHaste;
-import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfParalyticGas;
+import com.shatteredpixel.shatteredpixeldungeon.effects.particles.SnowParticle;
+import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfFrost;
+import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfPurity;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
-public class ElixirOfEarthenPower extends Elixir {
+public class ElixirOfIcyTouch extends Elixir {
{
//TODO finish visuals
- image = ItemSpriteSheet.ELIXIR_EARTH;
+ image = ItemSpriteSheet.ELIXIR_ICY;
}
@Override
public void apply(Hero hero) {
- Buff.affect(hero, EarthImbue.class, EarthImbue.DURATION);
- hero.sprite.emitter().burst(EarthParticle.FACTORY, 5);
+ Buff.affect(hero, FrostImbue.class, FrostImbue.DURATION);
+ hero.sprite.emitter().burst(SnowParticle.FACTORY, 5);
}
@Override
protected int splashColor() {
- return 0xFF603913;
+ return 0xFF18C3E6;
}
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
- inputs = new Class[]{PotionOfParalyticGas.class, PotionOfHaste.class};
+ inputs = new Class[]{PotionOfFrost.class, PotionOfPurity.class};
inQuantity = new int[]{1, 1};
- cost = 4;
+ cost = 6;
- output = ElixirOfEarthenPower.class;
+ output = ElixirOfIcyTouch.class;
outQuantity = 1;
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java
index d02631c1c..50b8d6e8e 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfMight.java
@@ -59,7 +59,7 @@ public class ElixirOfMight extends Elixir {
inputs = new Class[]{PotionOfStrength.class};
inQuantity = new int[]{1};
- cost = 12;
+ cost = 15;
output = ElixirOfMight.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java
index c8afd80e4..13adc3e85 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/potions/elixirs/ElixirOfToxicEssence.java
@@ -53,7 +53,7 @@ public class ElixirOfToxicEssence extends Elixir {
inputs = new Class[]{PotionOfToxicGas.class, PotionOfPurity.class};
inQuantity = new int[]{1, 1};
- cost = 4;
+ cost = 6;
output = ElixirOfToxicEssence.class;
outQuantity = 1;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Alchemize.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Alchemize.java
index 384bfdafd..82a8cb633 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Alchemize.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Alchemize.java
@@ -64,10 +64,10 @@ public class Alchemize extends Spell implements AlchemyScene.AlchemyProvider {
inputs = new Class[]{ScrollOfRecharging.class, PotionOfLiquidFlame.class};
inQuantity = new int[]{1, 1};
- cost = 6;
+ cost = 10;
output = Alchemize.class;
- outQuantity = 3;
+ outQuantity = 5;
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/AquaBlast.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/AquaBlast.java
index 9e3fe5caa..20db503c9 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/AquaBlast.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/AquaBlast.java
@@ -77,7 +77,7 @@ public class AquaBlast extends TargetedSpell {
inputs = new Class[]{ScrollOfIdentify.class, PotionOfStormClouds.class};
inQuantity = new int[]{1, 1};
- cost = 4;
+ cost = 3;
output = AquaBlast.class;
outQuantity = 8;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/BeaconOfReturning.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/BeaconOfReturning.java
index f8bcb3611..05095e6d9 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/BeaconOfReturning.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/BeaconOfReturning.java
@@ -184,7 +184,7 @@ public class BeaconOfReturning extends Spell {
cost = 12;
output = BeaconOfReturning.class;
- outQuantity = 4;
+ outQuantity = 3;
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/CurseInfusion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/CurseInfusion.java
index 5f120c735..09d9a1654 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/CurseInfusion.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/CurseInfusion.java
@@ -68,7 +68,7 @@ public class CurseInfusion extends InventorySpell {
inputs = new Class[]{ScrollOfRemoveCurse.class, MetalShard.class};
inQuantity = new int[]{1, 1};
- cost = 2;
+ cost = 1;
output = CurseInfusion.class;
outQuantity = 3;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/FeatherFall.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/FeatherFall.java
index 0cff96dfc..170824dfe 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/FeatherFall.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/FeatherFall.java
@@ -61,7 +61,7 @@ public class FeatherFall extends Spell {
inputs = new Class[]{ScrollOfLullaby.class, PotionOfLevitation.class};
inQuantity = new int[]{1, 1};
- cost = 8;
+ cost = 6;
output = FeatherFall.class;
outQuantity = 2;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/MagicalPorter.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/MagicalPorter.java
index 1af7cda94..cb8dddf53 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/MagicalPorter.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/MagicalPorter.java
@@ -25,7 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.MerchantsBeacon;
-import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMirrorImage;
+import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfIdentify;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
@@ -66,13 +66,13 @@ public class MagicalPorter extends InventorySpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
- inputs = new Class[]{ScrollOfMirrorImage.class, MerchantsBeacon.class};
+ inputs = new Class[]{ScrollOfIdentify.class, MerchantsBeacon.class};
inQuantity = new int[]{1, 1};
- cost = 2;
+ cost = 8;
output = MagicalPorter.class;
- outQuantity = 10;
+ outQuantity = 8;
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/PhaseShift.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/PhaseShift.java
index bd84b4dbd..b0d5e21d7 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/PhaseShift.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/PhaseShift.java
@@ -82,10 +82,10 @@ public class PhaseShift extends TargetedSpell {
inputs = new Class[]{ScrollOfTeleportation.class, ScrollOfTerror.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 6;
output = PhaseShift.class;
- outQuantity = 8;
+ outQuantity = 5;
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java
index 64c0528c9..a60931206 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/ReclaimTrap.java
@@ -62,7 +62,7 @@ public class ReclaimTrap extends TargetedSpell {
inputs = new Class[]{ScrollOfRecharging.class, MetalShard.class};
inQuantity = new int[]{1, 1};
- cost = 5;
+ cost = 8;
output = ReclaimTrap.class;
outQuantity = 4;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Recycle.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Recycle.java
index 63ebc5a58..427911411 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Recycle.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/spells/Recycle.java
@@ -25,8 +25,8 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Generator;
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll;
-import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfMirrorImage;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfTransmutation;
+import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic.ScrollOfDivination;
import com.shatteredpixel.shatteredpixeldungeon.items.stones.Runestone;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.plants.Plant;
@@ -72,10 +72,10 @@ public class Recycle extends InventorySpell {
public static class Recipe extends com.shatteredpixel.shatteredpixeldungeon.items.Recipe.SimpleRecipe {
{
- inputs = new Class[]{ScrollOfTransmutation.class, ScrollOfMirrorImage.class};
+ inputs = new Class[]{ScrollOfTransmutation.class, ScrollOfDivination.class};
inQuantity = new int[]{1, 1};
- cost = 6;
+ cost = 8;
output = Recycle.class;
outQuantity = 5;
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java
index 9bf24eaa6..f0f33a9c8 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/wands/WandOfCorrosion.java
@@ -87,7 +87,7 @@ public class WandOfCorrosion extends Wand {
// lvl 2 - 60%
if (Random.Int( level() + 3 ) >= 2) {
- Buff.affect( defender, Ooze.class );
+ Buff.affect( defender, Ooze.class ).set( 20f );
CellEmitter.center(defender.pos).burst( CorrosionParticle.SPLASH, 5 );
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Chilling.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Chilling.java
index e8b0b3a0b..db3d2b059 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Chilling.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/weapon/enchantments/Chilling.java
@@ -43,6 +43,7 @@ public class Chilling extends Weapon.Enchantment {
if (Random.Int( level + 5 ) >= 4) {
+ //FIXME this should probably stack chilled
Buff.prolong( defender, Chill.class, Random.Float( 2f, 3f ) );
Splash.at( defender.sprite.center(), 0xFFB2D6FF, 5);
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/OozeTrap.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/OozeTrap.java
index 414de4f81..b91f5478d 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/OozeTrap.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/traps/OozeTrap.java
@@ -39,7 +39,7 @@ public class OozeTrap extends Trap {
Char ch = Actor.findChar( pos );
if (ch != null){
- Buff.affect(ch, Ooze.class);
+ Buff.affect(ch, Ooze.class).set( 20f );
Splash.at( pos, 0x000000, 5);
}
}
diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java
index 6936d3b9c..be930a894 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java
@@ -142,7 +142,7 @@ public class ItemSpriteSheet {
public static final int DBL_BOMB = BOMBS+1;
public static final int FIRE_BOMB = BOMBS+2;
public static final int FROST_BOMB = BOMBS+3;
- public static final int HEAL_BOMB = BOMBS+4;
+ public static final int REGROWTH_BOMB = BOMBS+4;
public static final int FLASHBANG = BOMBS+5;
public static final int SHOCK_BOMB = BOMBS+6;
public static final int HOLY_BOMB = BOMBS+7;
@@ -156,7 +156,7 @@ public class ItemSpriteSheet {
assignItemRect(DBL_BOMB, 14, 13);
assignItemRect(FIRE_BOMB, 10, 13);
assignItemRect(FROST_BOMB, 10, 13);
- assignItemRect(HEAL_BOMB, 10, 13);
+ assignItemRect(REGROWTH_BOMB, 10, 13);
assignItemRect(FLASHBANG, 10, 13);
assignItemRect(SHOCK_BOMB, 10, 13);
assignItemRect(HOLY_BOMB, 10, 13);
@@ -528,7 +528,7 @@ public class ItemSpriteSheet {
private static final int ELIXIRS = xy(1, 25); //16 slots
public static final int ELIXIR_DRAGON = ELIXIRS+0;
public static final int ELIXIR_TOXIC = ELIXIRS+1;
- public static final int ELIXIR_EARTH = ELIXIRS+2;
+ public static final int ELIXIR_ICY = ELIXIRS+2;
public static final int ELIXIR_MIGHT = ELIXIRS+3;
public static final int ELIXIR_AQUA = ELIXIRS+4;
public static final int ELIXIR_RESTO = ELIXIRS+5;
@@ -537,7 +537,7 @@ public class ItemSpriteSheet {
static{
assignItemRect(ELIXIR_DRAGON, 10, 14);
assignItemRect(ELIXIR_TOXIC, 10, 14);
- assignItemRect(ELIXIR_EARTH, 10, 14);
+ assignItemRect(ELIXIR_ICY, 10, 14);
assignItemRect(ELIXIR_MIGHT, 10, 14);
assignItemRect(ELIXIR_AQUA, 10, 14);
assignItemRect(ELIXIR_RESTO, 10, 14);
diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties
index e4f635ae0..978d096af 100644
--- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties
+++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/actors/actors.properties
@@ -141,6 +141,9 @@ actors.buffs.frost.name=Frozen
actors.buffs.frost.freezes=%s freezes!
actors.buffs.frost.desc=Not to be confused with freezing solid, this more benign freezing simply encases the target in ice.\n\nFreezing acts similarly to paralysis, making it impossible for the target to act. Unlike paralysis, freezing is immediately cancelled if the target takes damage, as the ice will shatter.\n\nTurns of freeze remaining: %s.
+actors.buffs.frostimbue.name=Imbued with Frost
+actors.buffs.frostimbue.desc=You are imbued with icy power!\n\nAll physical attacks will steadily stack chill on enemies. Additionally, you are completely immune to the cold.\n\nTurns of frost imbue remaining: %s.
+
actors.buffs.fury.name=Furious
actors.buffs.fury.heromsg=You become furious!
actors.buffs.fury.desc=You are angry, enemies won't like you when you're angry.\n\nA great rage burns within you, increasing the damage you deal with physical attacks by 50%%.\n\nThis rage will last as long as you are injured below 50%% health.
@@ -198,7 +201,7 @@ actors.buffs.ooze.name=Caustic ooze
actors.buffs.ooze.heromsg=Caustic ooze eats your flesh. Wash it away!
actors.buffs.ooze.ondeath=You melt away...
actors.buffs.ooze.rankings_desc=Dissolved
-actors.buffs.ooze.desc=This sticky acid clings to flesh, slowly melting it away.\n\nOoze will deal consistent damage until it is washed off in water.\n\nOoze does not expire on its own and must be removed with water.
+actors.buffs.ooze.desc=This sticky acid clings to flesh, slowly melting it away.\n\nOoze will deal consistent damage over time, but can be immediately washed off in water.\n\nTurns of ooze remaining: %s.
actors.buffs.paralysis.name=Paralysed
actors.buffs.paralysis.heromsg=You are paralysed!
diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties
index a2e2a9e8a..9def69044 100644
--- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties
+++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/items/items.properties
@@ -377,9 +377,6 @@ items.bombs.flashbang.desc=This customized bomb will erupt into a burst of blind
items.bombs.frostbomb.name=frost bomb
items.bombs.frostbomb.desc=This bomb has been modified to burst into a sustained gust of freezing air when it explodes.
-items.bombs.healingbomb.name=healing bomb
-items.bombs.healingbomb.desc=This customized bomb will splash healing liquid all around it instead of exploding. Anything caught in the burst will be healed a considerable amount.
-
items.bombs.holybomb.name=holy bomb
items.bombs.holybomb.desc=This bomb has been modified to flash holy light when it explodes, dealing bonus damage to undead and demonic enemies.
@@ -389,6 +386,9 @@ items.bombs.noisemaker.desc=This customized bomb will repeatedly make noise inst
items.bombs.shockbomb.name=shock bomb
items.bombs.shockbomb.desc=This bomb has been modified to unleash a storm of electricity around it when it explodes.
+items.bombs.regrowthbomb.name=regrowth bomb
+items.bombs.regrowthbomb.desc=This customized bomb will splash life-giving liquid all around it instead of exploding. The area caught in the blast with rapidly sprout glass and plants, and any allies caught in the blast will be healed.
+
items.bombs.shrapnelbomb.name=shrapnel bomb
items.bombs.shrapnelbomb.desc=This bomb has been modified with scraps of DM-300's metal, which will fragment and fly everywhere when it explodes. You had better hide behind something when using it...
@@ -597,12 +597,12 @@ items.potions.elixirs.elixirofaquaticrejuvenation$aquahealing.desc=You have temp
items.potions.elixirs.elixirofdragonsblood.name=elixir of dragon's blood
items.potions.elixirs.elixirofdragonsblood.desc=When consumed, this elixir will send fiery power coursing through the drinker's veins. This effect will make the drinker immune to fire, and allow them to set enemies aflame with physical attacks.
-items.potions.elixirs.elixirofearthenpower.name=elixir of earthen power
-items.potions.elixirs.elixirofearthenpower.desc=When consumed, this elixir will allow the drinker to bend the earth around them to their will. Any physical attack the drinker makes will shift the earth under the target, slowing their movement speed.
-
items.potions.elixirs.elixirofhoneyedhealing.name=elixir of honeyed healing
items.potions.elixirs.elixirofhoneyedhealing.desc=This elixir combines healing with the sweetness of honey. When drank, it will satisfy a small amount of hunger, but it can also be thrown to heal an ally.\n\nCreatures with an affinity for honey might be pacified if this item is used on them.
+items.potions.elixirs.elixiroficytouch.name=elixir of icy touch
+items.potions.elixirs.elixiroficytouch.desc=When consumed, this elixir will allow the drinker to sap the heat from enemies they attack. This effect will make the drinker immune to the cold, and allow them to chill enemies with physical attacks.
+
items.potions.elixirs.elixirofmight.name=elixir of might
items.potions.elixirs.elixirofmight.msg_1=+1 str, +5 hp
items.potions.elixirs.elixirofmight.msg_2=Newfound strength surges through your body.
diff --git a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties
index d05b190e3..8da1e6a65 100644
--- a/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties
+++ b/core/src/main/resources/com/shatteredpixel/shatteredpixeldungeon/messages/journal/journal.properties
@@ -42,11 +42,11 @@ journal.document.alchemy_guide.heal_elixirs.body=Healing elixirs are also quite
journal.document.alchemy_guide.aoe_brews.title=Area of Effect Brews
journal.document.alchemy_guide.aoe_brews.body=Area of effect brews spread a harmful effect over a large area. They are more expensive than combination brews, but also more powerful.\n\n\nAn infernal brew is created by mixing a potion of dragon's breath and a potion of liquid flame.\n\nA blizzard brew is created by mixing a potion of snap freeze and a potion of frost.\n\nA shocking brew is created by mixing a potion of paralytic gas and a potion of storm clouds.\n\nA caustic brew is created by mixing a potion of toxic gas and a blob of goo.
journal.document.alchemy_guide.imbue_elixirs.title=Imbuing Elixirs
-journal.document.alchemy_guide.imbue_elixirs.body=Imbuing Elixirs will imbue the drinker with a unique power which may be temporary or permanent. They are more expensive than healing elixirs, but also more powerful.\n\n\nAn elixir of dragon's blood is created by mixing a potion of liquid flame and a potion of purity.\n\nAn elixir of toxic essence is created by mixing a potion of toxic gas and a potion of purity.\n\nAn elixir of earthen power is created by mixing a potion of paralytic gas and a potion of haste.\n\nAn elixir of might is created by mixing a potion of strength and a large amount of alchemical energy.
+journal.document.alchemy_guide.imbue_elixirs.body=Imbuing Elixirs will imbue the drinker with a unique power which may be temporary or permanent. They are more expensive than healing elixirs, but also more powerful.\n\n\nAn elixir of dragon's blood is created by mixing a potion of liquid flame and a potion of purity.\n\nAn elixir of toxic essence is created by mixing a potion of toxic gas and a potion of purity.\n\nAn elixir of icy touch is created by mixing a potion of frost and a potion of purity.\n\nAn elixir of might is created by mixing a potion of strength and a large amount of alchemical energy.
journal.document.alchemy_guide.tele_spells.title=Teleportation Spells
-journal.document.alchemy_guide.tele_spells.body=Combining certain ingredients in an alchemy pot will cause magical crystals to precipitate out of the water. The energy in these crystals can be channeled to cast spells! Most spells have multiple uses, but the specific amount varies by spell.\n\nTeleportation spells contain magic that changes the positioning of yourself, enemies, or items in various useful ways.\n\n\nMagical porter is created by mixing a scroll of mirror image with a merchant's beacon.\n\nPhase shift is created by mixing a scroll of teleportation with a scroll of terror.\n\nBeacon of returning is created by mixing a scroll of passage, a scroll of magic mapping, and a lot of alchemical energy.
+journal.document.alchemy_guide.tele_spells.body=Combining certain ingredients in an alchemy pot will cause magical crystals to precipitate out of the water. The energy in these crystals can be channeled to cast spells! Most spells have multiple uses, but the specific amount varies by spell.\n\nTeleportation spells contain magic that changes the positioning of yourself, enemies, or items in various useful ways.\n\n\nMagical porter is created by mixing a scroll of identification with a merchant's beacon.\n\nPhase shift is created by mixing a scroll of teleportation with a scroll of terror.\n\nBeacon of returning is created by mixing a scroll of passage, a scroll of magic mapping, and a lot of alchemical energy.
journal.document.alchemy_guide.item_spells.title=Item Manipulation Spells
-journal.document.alchemy_guide.item_spells.body=Item manipulation spells affect the items in your inventory in a variety of different ways.\n\n\nMagical infusion is created by mixing a scroll of upgrade with a stone of enchantment.\n\nCurse infusion is created by mixing a scroll of remove curse with a cursed metal shard.\n\nAlchemize is created by mixing a scroll of recharging with a potion of liquid flame.\n\nRecycle is created by mixing a scroll of transmutation with a scroll of mirror image.
+journal.document.alchemy_guide.item_spells.body=Item manipulation spells affect the items in your inventory in a variety of different ways.\n\n\nMagical infusion is created by mixing a scroll of upgrade with a stone of enchantment.\n\nCurse infusion is created by mixing a scroll of remove curse with a cursed metal shard.\n\nAlchemize is created by mixing a scroll of recharging with a potion of liquid flame.\n\nRecycle is created by mixing a scroll of transmutation with a scroll of divination.
journal.document.alchemy_guide.enviro_spells.title=Environmental Spells
journal.document.alchemy_guide.enviro_spells.body=Environmental spells give you new ways to change or interact with the terrain of the dungeon.\n\n\nReclaim trap is created by mixing a scroll of recharging with a cursed metal shard.\n\nAqua blast is created by mixing a scroll of identify with a potion of storm clouds.\n\nFeather fall is created by mixing a scroll of lullaby, a potion of levitation, and a good amount of alchemical energy.