v0.7.0: balance adjustments:
- Arcane and Shrapnel bomb costs increased to 10 - Rarity of teleport and magic mapping swapped. - Aquatic rejuvenation duration up to 3x HT, from 2x HT - Caustic brew AOE increased to 5x5, from 3x3 - Reclaim trap duration to 15 turns from 10, quantity reduced to 3 from 4 - Curse infusion quantity up to 4 from 3 - Recycle buffed to 6 uses, from 5 - Aqua blast chance to fill a cell with water increased to 80% from 50% - Blizzard brew now stacks freeze duration more quickly - Shocking brew and shock bomb duration up to 20 from 10 - Phase shift quantity up to 6 from 5 - Scroll of foresight buff now increases search radius by 1
This commit is contained in:
parent
4d3440a649
commit
f733799ee3
|
@ -54,6 +54,7 @@ public class Blizzard extends Blob {
|
|||
}
|
||||
|
||||
Freezing.freeze(cell);
|
||||
Freezing.freeze(cell);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1519,6 +1519,10 @@ public class Hero extends Char {
|
|||
|
||||
int distance = heroClass == HeroClass.ROGUE ? 2 : 1;
|
||||
|
||||
boolean foresight = buff(Foresight.class) != null;
|
||||
|
||||
if (foresight) distance++;
|
||||
|
||||
int cx = pos % Dungeon.level.width();
|
||||
int cy = pos / Dungeon.level.width();
|
||||
int ax = cx - distance;
|
||||
|
@ -1541,8 +1545,6 @@ public class Hero extends Char {
|
|||
TalismanOfForesight.Foresight talisman = buff( TalismanOfForesight.Foresight.class );
|
||||
boolean cursed = talisman != null && talisman.isCursed();
|
||||
|
||||
boolean foresight = buff(Foresight.class) != null;
|
||||
|
||||
for (int y = ay; y <= by; y++) {
|
||||
for (int x = ax, p = ax + y * Dungeon.level.width(); x <= bx; x++, p++) {
|
||||
|
||||
|
|
|
@ -265,13 +265,13 @@ public class Generator {
|
|||
ScrollOfUpgrade.class, //3 drop every chapter, see Dungeon.souNeeded()
|
||||
ScrollOfIdentify.class,
|
||||
ScrollOfRemoveCurse.class,
|
||||
ScrollOfMagicMapping.class,
|
||||
ScrollOfMirrorImage.class,
|
||||
ScrollOfRecharging.class,
|
||||
ScrollOfTeleportation.class,
|
||||
ScrollOfLullaby.class,
|
||||
ScrollOfMagicMapping.class,
|
||||
ScrollOfRage.class,
|
||||
ScrollOfRetribution.class,
|
||||
ScrollOfTeleportation.class,
|
||||
ScrollOfTerror.class,
|
||||
ScrollOfTransmutation.class
|
||||
};
|
||||
|
|
|
@ -338,8 +338,8 @@ public class Bomb extends Item {
|
|||
bombCosts.put(RegrowthBomb.class, 6);
|
||||
bombCosts.put(HolyBomb.class, 6);
|
||||
|
||||
bombCosts.put(ArcaneBomb.class, 8);
|
||||
bombCosts.put(ShrapnelBomb.class, 8);
|
||||
bombCosts.put(ArcaneBomb.class, 10);
|
||||
bombCosts.put(ShrapnelBomb.class, 10);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -44,7 +44,7 @@ public class ShockBomb extends Bomb {
|
|||
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) {
|
||||
GameScene.add(Blob.seed(i, 10, Electricity.class));
|
||||
GameScene.add(Blob.seed(i, 20, Electricity.class));
|
||||
}
|
||||
}
|
||||
Sample.INSTANCE.play(Assets.SND_LIGHTNING);
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
package com.shatteredpixel.shatteredpixeldungeon.items.potions.brews;
|
||||
|
||||
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
||||
|
@ -29,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.Splash;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.potions.PotionOfToxicGas;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.GooBlob;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.utils.BArray;
|
||||
import com.watabou.utils.PathFinder;
|
||||
|
||||
public class CausticBrew extends Brew {
|
||||
|
@ -40,15 +42,17 @@ public class CausticBrew extends Brew {
|
|||
|
||||
@Override
|
||||
public void shatter(int cell) {
|
||||
for (int offset : PathFinder.NEIGHBOURS9){
|
||||
|
||||
Splash.at( cell + offset, 0x000000, 5);
|
||||
Char ch = Actor.findChar(cell + offset);
|
||||
|
||||
if (ch != null){
|
||||
Buff.affect(ch, Ooze.class).set( 20f );
|
||||
|
||||
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) {
|
||||
Splash.at( i, 0x000000, 5);
|
||||
Char ch = Actor.findChar(i);
|
||||
|
||||
if (ch != null){
|
||||
Buff.affect(ch, Ooze.class).set( 20f );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ public class ShockingBrew extends Brew {
|
|||
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) {
|
||||
GameScene.add(Blob.seed(i, 10, Electricity.class));
|
||||
GameScene.add(Blob.seed(i, 20, Electricity.class));
|
||||
}
|
||||
}
|
||||
Sample.INSTANCE.play(Assets.SND_LIGHTNING);
|
||||
|
|
|
@ -43,7 +43,7 @@ public class ElixirOfAquaticRejuvenation extends Elixir {
|
|||
|
||||
@Override
|
||||
public void apply(Hero hero) {
|
||||
Buff.affect(hero, AquaHealing.class).set(hero.HT * 2);
|
||||
Buff.affect(hero, AquaHealing.class).set(hero.HT * 3);
|
||||
}
|
||||
|
||||
public static class AquaHealing extends Buff {
|
||||
|
|
|
@ -52,7 +52,7 @@ public class AquaBlast extends TargetedSpell {
|
|||
Splash.at(cell, 0x00AAFF, 10);
|
||||
|
||||
for (int i : PathFinder.NEIGHBOURS9){
|
||||
if (i == 0 || Random.Int(2) == 0){
|
||||
if (i == 0 || Random.Int(5) != 0){
|
||||
int terr = Dungeon.level.map[cell + i];
|
||||
if (terr == Terrain.EMPTY || terr == Terrain.GRASS ||
|
||||
terr == Terrain.EMBERS || terr == Terrain.EMPTY_SP ||
|
||||
|
|
|
@ -71,7 +71,7 @@ public class CurseInfusion extends InventorySpell {
|
|||
cost = 1;
|
||||
|
||||
output = CurseInfusion.class;
|
||||
outQuantity = 3;
|
||||
outQuantity = 4;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@ public class PhaseShift extends TargetedSpell {
|
|||
cost = 6;
|
||||
|
||||
output = PhaseShift.class;
|
||||
outQuantity = 5;
|
||||
outQuantity = 6;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -48,8 +48,8 @@ public class ReclaimTrap extends TargetedSpell {
|
|||
t.disarm();
|
||||
|
||||
ScrollOfRecharging.charge(hero);
|
||||
Buff.affect(hero, Recharging.class, 10f);
|
||||
Buff.affect(hero, ArtifactRecharge.class).set( 10 );
|
||||
Buff.affect(hero, Recharging.class, 15f);
|
||||
Buff.affect(hero, ArtifactRecharge.class).set( 15 );
|
||||
|
||||
} else {
|
||||
GLog.w(Messages.get(this, "no_trap"));
|
||||
|
@ -65,7 +65,7 @@ public class ReclaimTrap extends TargetedSpell {
|
|||
cost = 8;
|
||||
|
||||
output = ReclaimTrap.class;
|
||||
outQuantity = 4;
|
||||
outQuantity = 3;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ public class Recycle extends InventorySpell {
|
|||
cost = 8;
|
||||
|
||||
output = Recycle.class;
|
||||
outQuantity = 5;
|
||||
outQuantity = 6;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ actors.buffs.fireimbue.name=Imbued with Fire
|
|||
actors.buffs.fireimbue.desc=You are imbued with the power of fire!\n\nAll physical attacks will have a chance to light enemies ablaze. Additionally, you are completely immune to the effects of fire.\n\nTurns of fire imbue remaining: %s.
|
||||
|
||||
actors.buffs.foresight.name=Foresight
|
||||
actors.buffs.foresight.desc=Your senses are heightened, allowing you to immediately notice anything out of place.\n\nWhile under the effect of foresight, anything that enters your search radius is immediately discovered.\n\nTurns of foresight remaining: %s.
|
||||
actors.buffs.foresight.desc=Your senses are heightened, allowing you to immediately notice anything out of place.\n\nWhile under the effect of foresight your search radius is increased, and anything that enters your search radius is immediately discovered.\n\nTurns of foresight remaining: %s.
|
||||
|
||||
actors.buffs.frost.name=Frozen
|
||||
actors.buffs.frost.freezes=%s freezes!
|
||||
|
|
|
@ -886,7 +886,7 @@ items.scrolls.exotic.scrollofenchantment.cancel=cancel
|
|||
items.scrolls.exotic.scrollofenchantment.desc=This scroll will infuse a weapon or armor with powerful magical energy. The reader even has some degree of control over which magic is imbued.
|
||||
|
||||
items.scrolls.exotic.scrollofforesight.name=scroll of foresight
|
||||
items.scrolls.exotic.scrollofforesight.desc=When this scroll is read, detail of nearby terrain will be constantly fed to the reader's mind in crystal clarity. For the duration of this effect, searching will not be necessary, as the reader will automatically detect everything within their search radius.
|
||||
items.scrolls.exotic.scrollofforesight.desc=When this scroll is read, the detail of nearby terrain will be constantly fed to the reader's mind in crystal clarity. For the duration of this effect, searching will not be necessary, as the reader will automatically detect everything within an enhanced search radius.
|
||||
|
||||
items.scrolls.exotic.scrollofmysticalenergy.name=scroll of mystical energy
|
||||
items.scrolls.exotic.scrollofmysticalenergy.desc=The raw magical power bound up in this parchment will, when released, charge a user's equipped artifacts over time.
|
||||
|
|
Loading…
Reference in New Issue
Block a user