v0.6.3: reworked the wand of venom thematically, now wand of corrosion

This commit is contained in:
Evan Debenham 2018-02-01 02:27:15 -05:00 committed by Evan Debenham
parent fbb24e244a
commit bf280cc426
29 changed files with 192 additions and 83 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -62,6 +62,19 @@ public class ShatteredPixelDungeon extends Game {
com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Tomahawk.class,
"com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.Tamahawk" );
com.watabou.utils.Bundle.addAlias(
com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion.class,
"com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfVenom" );
com.watabou.utils.Bundle.addAlias(
com.shatteredpixel.shatteredpixeldungeon.actors.blobs.CorrosiveGas.class,
"com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas" );
com.watabou.utils.Bundle.addAlias(
com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corrosion.class,
"com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Venom" );
com.watabou.utils.Bundle.addAlias(
com.shatteredpixel.shatteredpixeldungeon.levels.traps.CorrosionTrap.class,
"com.shatteredpixel.shatteredpixeldungeon.levels.traps.VenomTrap" );
//v0.6.0
com.watabou.utils.Bundle.addAlias(
com.shatteredpixel.shatteredpixeldungeon.levels.rooms.special.MassGraveRoom.Bones.class,

View File

@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corrosion;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom;
@ -46,7 +47,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Preparation;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Speed;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Venom;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass;
@ -551,12 +551,12 @@ public abstract class Char extends Actor {
UNDEAD,
DEMONIC,
INORGANIC ( new HashSet<Class>(),
new HashSet<Class>( Arrays.asList(Bleeding.class, ToxicGas.class, Poison.class, Venom.class) )),
new HashSet<Class>( Arrays.asList(Bleeding.class, ToxicGas.class, Poison.class) )),
BLOB_IMMUNE ( new HashSet<Class>(),
new HashSet<Class>( Arrays.asList(Blob.class) )),
FIERY ( new HashSet<Class>( Arrays.asList(WandOfFireblast.class)),
new HashSet<Class>( Arrays.asList(Burning.class, Blazing.class))),
ACIDIC ( new HashSet<Class>( Arrays.asList(ToxicGas.class)),
ACIDIC ( new HashSet<Class>( Arrays.asList(ToxicGas.class, Corrosion.class)),
new HashSet<Class>( Arrays.asList(Ooze.class))),
ELECTRIC ( new HashSet<Class>( Arrays.asList(WandOfLightning.class, Shocking.class, Potential.class, Electricity.class)),
new HashSet<Class>()),

View File

@ -25,13 +25,13 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Venom;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corrosion;
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.watabou.utils.Bundle;
public class VenomGas extends Blob {
public class CorrosiveGas extends Blob {
private int strength = 0;
@ -50,7 +50,7 @@ public class VenomGas extends Blob {
cell = i + j*Dungeon.level.width();
if (cur[cell] > 0 && (ch = Actor.findChar( cell )) != null) {
if (!ch.isImmune(this.getClass()))
Buff.affect(ch, Venom.class).set(2f, strength);
Buff.affect(ch, Corrosion.class).set(2f, strength);
}
}
}
@ -80,7 +80,7 @@ public class VenomGas extends Blob {
public void use( BlobEmitter emitter ) {
super.use( emitter );
emitter.pour( Speck.factory(Speck.VENOM), 0.4f );
emitter.pour( Speck.factory(Speck.CORROSION), 0.4f );
}
@Override

View File

@ -22,16 +22,6 @@
package com.shatteredpixel.shatteredpixeldungeon.actors.buffs;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ConfusionGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Electricity;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Fire;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Freezing;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ParalyticGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Regrowth;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.StenchGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Web;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.watabou.noosa.Image;

View File

@ -27,10 +27,11 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
//FIXME do proper translation stuff for new text here in 0.6.3 (heromsg, ondeath, rankings_desc)
public class Venom extends Buff implements Hero.Doom {
public class Corrosion extends Buff implements Hero.Doom {
private float damage = 1;
protected float left;
@ -66,6 +67,11 @@ public class Venom extends Buff implements Hero.Doom {
return BuffIndicator.POISON;
}
@Override
public void tintIcon(Image icon) {
icon.hardlight(1f, 0.5f, 0f);
}
@Override
public String toString() {
return Messages.get(this, "name");
@ -104,8 +110,6 @@ public class Venom extends Buff implements Hero.Doom {
@Override
public void onDeath() {
Badges.validateDeathFromPoison();
Dungeon.fail( getClass() );
GLog.n(Messages.get(this, "ondeath"));
}

View File

@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.rings.RingOfElements;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator;
import com.shatteredpixel.shatteredpixeldungeon.utils.GLog;
import com.watabou.noosa.Image;
import com.watabou.utils.Bundle;
public class Poison extends Buff implements Hero.Doom {
@ -69,6 +70,11 @@ public class Poison extends Buff implements Hero.Doom {
return BuffIndicator.POISON;
}
@Override
public void tintIcon(Image icon) {
icon.hardlight(0.6f, 0.2f, 0.6f);
}
@Override
public String toString() {
return Messages.get(this, "name");

View File

@ -93,6 +93,5 @@ public class ToxicImbue extends Buff {
{
immunities.add( ToxicGas.class );
immunities.add( Poison.class );
immunities.add( Venom.class );
}
}

View File

@ -25,12 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Badges;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.Statistics;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat;
import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel;
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.Room;

View File

@ -24,7 +24,7 @@ package com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.CorrosiveGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
@ -117,7 +117,7 @@ public class MirrorImage extends NPC {
{
immunities.add( ToxicGas.class );
immunities.add( VenomGas.class );
immunities.add( CorrosiveGas.class );
immunities.add( Burning.class );
}
}

View File

@ -22,9 +22,9 @@
package com.shatteredpixel.shatteredpixeldungeon.effects;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.CorrosionParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.FlameParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.LeafParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.PoisonParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.RainbowParticle;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
@ -52,7 +52,7 @@ public class MagicMissile extends Emitter {
public static final int MAGIC_MISSILE = 0;
public static final int FROST = 1;
public static final int FIRE = 2;
public static final int POISON = 3;
public static final int CORROSION = 3;
public static final int FOLIAGE = 4;
public static final int FORCE = 5;
public static final int BEACON = 6;
@ -111,9 +111,9 @@ public class MagicMissile extends Emitter {
size( 4 );
pour( FlameParticle.FACTORY, 0.01f );
break;
case POISON:
case CORROSION:
size( 3 );
pour( PoisonParticle.MISSILE, 0.01f );
pour( CorrosionParticle.MISSILE, 0.01f );
break;
case FOLIAGE:
size( 4 );

View File

@ -57,7 +57,7 @@ public class Speck extends Image {
public static final int RATTLE = 105;
public static final int JET = 106;
public static final int TOXIC = 107;
public static final int VENOM = 108;
public static final int CORROSION = 108;
public static final int PARALYSIS = 109;
public static final int DUST = 110;
public static final int STENCH = 111;
@ -106,7 +106,7 @@ public class Speck extends Image {
break;
case JET:
case TOXIC:
case VENOM:
case CORROSION:
case PARALYSIS:
case STENCH:
case CONFUSION:
@ -279,8 +279,8 @@ public class Speck extends Image {
lifespan = Random.Float( 1f, 3f );
break;
case VENOM:
hardlight( 0x8844FF );
case CORROSION:
hardlight( 0xAAAAAA );
angularSpeed = 30;
angle = Random.Float( 360 );
lifespan = Random.Float( 1f, 3f );
@ -421,8 +421,8 @@ public class Speck extends Image {
scale.set( 1 + p );
break;
case VENOM:
hardlight( ColorMath.interpolate( 0x8844FF, 0x00FF00 , p ));
case CORROSION:
hardlight( ColorMath.interpolate( 0xAAAAAA, 0xFF8800 , p ));
case STENCH:
am = (float)Math.sqrt( (p < 0.5f ? p : 1 - p) );
scale.set( 1 + p );

View File

@ -0,0 +1,92 @@
/*
* Pixel Dungeon
* Copyright (C) 2012-2015 Oleg Dolya
*
* Shattered Pixel Dungeon
* Copyright (C) 2014-2017 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 <http://www.gnu.org/licenses/>
*/
package com.shatteredpixel.shatteredpixeldungeon.effects.particles;
import com.watabou.noosa.particles.Emitter;
import com.watabou.noosa.particles.PixelParticle;
import com.watabou.utils.ColorMath;
import com.watabou.utils.Random;
public class CorrosionParticle extends PixelParticle {
public static final Emitter.Factory MISSILE = new Emitter.Factory() {
@Override
public void emit( Emitter emitter, int index, float x, float y ) {
((CorrosionParticle)emitter.recycle( CorrosionParticle.class )).resetMissile( x, y );
}
@Override
public boolean lightMode() {
return false;
};
};
public static final Emitter.Factory SPLASH = new Emitter.Factory() {
@Override
public void emit( Emitter emitter, int index, float x, float y ) {
((CorrosionParticle)emitter.recycle( CorrosionParticle.class )).resetSplash( x, y );
}
@Override
public boolean lightMode() {
return false;
};
};
public CorrosionParticle() {
super();
lifespan = 0.6f;
acc.set( 0, +30 );
}
public void resetMissile( float x, float y ) {
revive();
this.x = x;
this.y = y;
left = lifespan;
speed.polar( -Random.Float( 3.1415926f ), Random.Float( 6 ) );
}
public void resetSplash( float x, float y ) {
revive();
this.x = x;
this.y = y;
left = lifespan;
speed.polar( Random.Float( 3.1415926f ), Random.Float( 10, 20 ) );
}
@Override
public void update() {
super.update();
// alpha: 1 -> 0; size: 1 -> 4
size( 4 - (am = left / lifespan) * 3 );
// color: 0xAAAAAA -> 0xFF8800
color( ColorMath.interpolate( 0xFF8800, 0xAAAAAA, am ) );
}
}

View File

@ -96,7 +96,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfMagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfPrismaticLight;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfTransfusion;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfVenom;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.AssassinsBlade;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BattleAxe;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
@ -252,7 +252,7 @@ public class Generator {
WandOfLightning.class,
WandOfDisintegration.class,
WandOfFireblast.class,
WandOfVenom.class,
WandOfCorrosion.class,
WandOfBlastWave.class,
//WandOfLivingEarth.class,
WandOfFrost.class,

View File

@ -26,7 +26,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.ToxicGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.CorrosiveGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.LockedFloor;
@ -643,7 +643,7 @@ public class DriedRose extends Artifact {
{
immunities.add( ToxicGas.class );
immunities.add( VenomGas.class );
immunities.add( CorrosiveGas.class );
immunities.add( Burning.class );
immunities.add( ScrollOfPsionicBlast.class );
}

View File

@ -31,13 +31,12 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Frost;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Ooze;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Poison;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Venom;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corrosion;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Eye;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Shaman;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Warlock;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Yog;
import com.watabou.utils.Random;
import java.util.HashSet;
@ -57,7 +56,7 @@ public class RingOfElements extends Ring {
RESISTS.add( Ooze.class );
RESISTS.add( Paralysis.class );
RESISTS.add( Poison.class );
RESISTS.add( Venom.class );
RESISTS.add( Corrosion.class );
RESISTS.add( Weakness.class );
RESISTS.add( ToxicGas.class );

View File

@ -26,8 +26,10 @@ 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.VenomGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.CorrosiveGas;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.MagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.CorrosionParticle;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.enchantments.Venomous;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.MagesStaff;
import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica;
@ -38,7 +40,7 @@ import com.watabou.utils.Callback;
import com.watabou.utils.ColorMath;
import com.watabou.utils.PathFinder;
public class WandOfVenom extends Wand {
public class WandOfCorrosion extends Wand {
{
image = ItemSpriteSheet.WAND_VENOM;
@ -48,9 +50,10 @@ public class WandOfVenom extends Wand {
@Override
protected void onZap(Ballistica bolt) {
Blob venomGas = Blob.seed(bolt.collisionPos, 50 + 10 * level(), VenomGas.class);
((VenomGas)venomGas).setStrength(level()+1);
GameScene.add(venomGas);
Blob corrosiveGas = Blob.seed(bolt.collisionPos, 50 + 10 * level(), CorrosiveGas.class);
CellEmitter.center(bolt.collisionPos).burst( CorrosionParticle.SPLASH, 10 );
((CorrosiveGas)corrosiveGas).setStrength(level()+1);
GameScene.add(corrosiveGas);
for (int i : PathFinder.NEIGHBOURS9) {
Char ch = Actor.findChar(bolt.collisionPos + i);
@ -68,7 +71,7 @@ public class WandOfVenom extends Wand {
protected void fx(Ballistica bolt, Callback callback) {
MagicMissile.boltFromChar(
curUser.sprite.parent,
MagicMissile.POISON,
MagicMissile.CORROSION,
curUser.sprite,
bolt.collisionPos,
callback);
@ -77,17 +80,17 @@ public class WandOfVenom extends Wand {
@Override
public void onHit(MagesStaff staff, Char attacker, Char defender, int damage) {
//acts like venomous enchantment
//TODO
new Venomous().proc(staff, attacker, defender, damage);
}
@Override
public void staffFx(MagesStaff.StaffParticle particle) {
particle.color( ColorMath.random( 0x8844FF, 0x00FF00) );
particle.color( ColorMath.random( 0xAAAAAA, 0xFF8800) );
particle.am = 0.6f;
particle.setLifespan( 1f );
particle.acc.set(0, 20);
particle.setSize( 0.5f, 2f);
particle.setSize( 0.5f, 3f );
particle.shuffleXY( 1f );
}

View File

@ -34,6 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Burning;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Chill;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corrosion;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Corruption;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Cripple;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Doom;
@ -49,7 +50,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Roots;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Slow;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.SoulMark;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Venom;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Bee;
@ -113,7 +113,7 @@ public class WandOfCorruption extends Wand {
MAJOR_DEBUFFS.put(Charm.class, 0f);
MAJOR_DEBUFFS.put(MagicalSleep.class, 0f);
MAJOR_DEBUFFS.put(SoulMark.class, 0f);
MAJOR_DEBUFFS.put(Venom.class, 0f);
MAJOR_DEBUFFS.put(Corrosion.class, 0f);
MAJOR_DEBUFFS.put(Frost.class, 0f);
MAJOR_DEBUFFS.put(Doom.class, 0f);
}

View File

@ -32,6 +32,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.bags.Bag;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorruption;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfDisintegration;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
@ -378,6 +379,7 @@ public class MagesStaff extends MeleeWeapon {
public boolean lightMode() {
return !((wand instanceof WandOfDisintegration)
|| (wand instanceof WandOfCorruption)
|| (wand instanceof WandOfCorrosion)
|| (wand instanceof WandOfRegrowth));
}
};

View File

@ -89,7 +89,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfMagicMissile;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfPrismaticLight;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfRegrowth;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfTransfusion;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfVenom;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.WandOfCorrosion;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.AssassinsBlade;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.BattleAxe;
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.melee.Dagger;
@ -191,7 +191,7 @@ public enum Catalog {
WANDS.seen.put( WandOfLightning.class, false);
WANDS.seen.put( WandOfDisintegration.class, false);
WANDS.seen.put( WandOfFireblast.class, false);
WANDS.seen.put( WandOfVenom.class, false);
WANDS.seen.put( WandOfCorrosion.class, false);
WANDS.seen.put( WandOfBlastWave.class, false);
//WANDS.seen.put( WandOfLivingEarth.class, false);
WANDS.seen.put( WandOfFrost.class, false);
@ -334,6 +334,12 @@ public enum Catalog {
if (bundle.contains(CATALOGS)) {
List<String> seen = Arrays.asList(bundle.getStringArray(CATALOGS));
//pre-0.6.3 saves
//TODO should adjust this to tie into the bundling system's class array
if (seen.contains("WandOfVenom")){
WANDS.seen.put(WandOfCorrosion.class, true);
}
for (Catalog cat : values()) {
for (Class<? extends Item> item : cat.items()) {
if (seen.contains(item.getSimpleName())) {

View File

@ -38,7 +38,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.traps.PoisonDartTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.RockfallTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.StormTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.SummoningTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.VenomTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.CorrosionTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WarpingTrap;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
@ -96,7 +96,7 @@ public class CavesLevel extends RegularLevel {
@Override
protected Class<?>[] trapClasses() {
return new Class[]{ BurningTrap.class, PoisonDartTrap.class, FrostTrap.class, StormTrap.class, VenomTrap.class,
return new Class[]{ BurningTrap.class, PoisonDartTrap.class, FrostTrap.class, StormTrap.class, CorrosionTrap.class,
GrippingTrap.class, ExplosiveTrap.class, RockfallTrap.class, GuardianTrap.class,
ConfusionTrap.class, SummoningTrap.class, WarpingTrap.class,
PitfallTrap.class };

View File

@ -38,7 +38,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.traps.PitfallTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.RockfallTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.StormTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.SummoningTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.VenomTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.CorrosionTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WarpingTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WeakeningTrap;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -88,7 +88,7 @@ public class CityLevel extends RegularLevel {
@Override
protected Class<?>[] trapClasses() {
return new Class[]{ FrostTrap.class, StormTrap.class, VenomTrap.class, BlazingTrap.class, DisintegrationTrap.class,
return new Class[]{ FrostTrap.class, StormTrap.class, CorrosionTrap.class, BlazingTrap.class, DisintegrationTrap.class,
ExplosiveTrap.class, RockfallTrap.class, FlashingTrap.class, GuardianTrap.class, WeakeningTrap.class,
SummoningTrap.class, WarpingTrap.class, CursingTrap.class,
PitfallTrap.class, DisarmingTrap.class };

View File

@ -40,7 +40,7 @@ import com.shatteredpixel.shatteredpixeldungeon.levels.traps.PitfallTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.RockfallTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.StormTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.SummoningTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.VenomTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.CorrosionTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WarpingTrap;
import com.shatteredpixel.shatteredpixeldungeon.levels.traps.WeakeningTrap;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -100,7 +100,7 @@ public class HallsLevel extends RegularLevel {
@Override
protected Class<?>[] trapClasses() {
return new Class[]{ FrostTrap.class, StormTrap.class, VenomTrap.class, BlazingTrap.class, DisintegrationTrap.class,
return new Class[]{ FrostTrap.class, StormTrap.class, CorrosionTrap.class, BlazingTrap.class, DisintegrationTrap.class,
ExplosiveTrap.class, RockfallTrap.class, FlashingTrap.class, GuardianTrap.class, WeakeningTrap.class,
SummoningTrap.class, WarpingTrap.class, CursingTrap.class, GrimTrap.class,
PitfallTrap.class, DisarmingTrap.class, DistortionTrap.class };

View File

@ -23,24 +23,24 @@ package com.shatteredpixel.shatteredpixeldungeon.levels.traps;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.VenomGas;
import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.CorrosiveGas;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
public class VenomTrap extends Trap {
public class CorrosionTrap extends Trap {
{
color = VIOLET;
color = GREY;
shape = GRILL;
}
@Override
public void activate() {
VenomGas venomGas = Blob.seed(pos, 80 + 5 * Dungeon.depth, VenomGas.class);
CorrosiveGas corrosiveGas = Blob.seed(pos, 80 + 5 * Dungeon.depth, CorrosiveGas.class);
venomGas.setStrength(1+Dungeon.depth/4);
corrosiveGas.setStrength(1+Dungeon.depth/4);
GameScene.add(venomGas);
GameScene.add(corrosiveGas);
}
}

View File

@ -20,7 +20,7 @@ actors.blobs.toxicgas.desc=A greenish cloud of toxic gas is swirling here.
actors.blobs.toxicgas.rankings_desc=Suffocated
actors.blobs.toxicgas.ondeath=You died from the toxic gas...
actors.blobs.venomgas.desc=A cloud of foul acidic venom is swirling here.
actors.blobs.corrosivegas.desc=A cloud of deadly caustic gas is swirling here.
actors.blobs.waterofawareness.procced=As you take a sip, you feel the knowledge pours into your mind. Now you know everything about your equipped items. Also you sense all items on the level and know all its secrets.
actors.blobs.waterofawareness.desc=Power of knowledge radiates from the water of this well. Take a sip from it to reveal all secrets of equipped items.
@ -217,11 +217,11 @@ actors.buffs.terror.desc=Terror is manipulative magic which forces its target in
actors.buffs.toxicimbue.name=Imbued with Toxicity
actors.buffs.toxicimbue.desc=You are imbued with poisonous energy!\n\nAs you move around toxic gas will constantly billow forth from you, damaging your enemies. You are immune to toxic gas and poison for the duration of the effect.\n\nTurns of toxic imbue remaining: %s.
actors.buffs.venom.name=Venomed
actors.buffs.venom.heromsg=You are envenomed!
actors.buffs.venom.ondeath=You died from venom...
actors.buffs.venom.rankings_desc=Succumbed to Venom
actors.buffs.venom.desc=Venom is an extremely caustic and dangerous poison.\n\nUnlike poison, whose damage lowers over time, venom does increasing damage the longer it stays on a target.\n\nTurns of venom remaining: %1$s.\nCurrent venom damage: %2$d.
actors.buffs.corrosion.name=Corrosion
actors.buffs.corrosion.heromsg=You are melting!
actors.buffs.corrosion.ondeath=You melt away...
actors.buffs.corrosion.rankings_desc=Dissolved
actors.buffs.corrosion.desc=Acidic gas melts away flesh, metal, and bone. Things which ordinarily shouldn't melt.\n\nCorrosion damage increases over time, as the target continues to melt away.\n\nTurns of corrosion remaining: %1$s.\nCurrent corrosion damage: %2$d.
actors.buffs.vertigo.name=Vertigo
actors.buffs.vertigo.desc=Walking in a straight line can be difficult when the whole world is spinning.\n\nWhile under the effects of vertigo, characters who attempt to move will go in a random direction, instead of the one they intended to go in.\n\nTurns of vertigo remaining: %s.

View File

@ -740,10 +740,10 @@ items.wands.wandoftransfusion.charged=Your staff is charged with the life energy
items.wands.wandoftransfusion.desc=A fairly plainly shaped wand, it stands out due to its magenta hue and pitch black gem at the tip.
items.wands.wandoftransfusion.stats_desc=This wand will take some of your life energy and blast it at a target. This effect is very versatile: allies will be healed, enemies will be temporarily charmed, and hostile undead will take considerable damage. The life drain is significant though, using this wand will deal damage to you in addition to consuming charges.
items.wands.wandofvenom.name=wand of venom
items.wands.wandofvenom.staff_name=staff of venom
items.wands.wandofvenom.desc=This wand has a purple body which opens to a brilliant green gem.
items.wands.wandofvenom.stats_desc=This wand shoots a bolt which explodes into a cloud of vile venomous gas at a targeted location. Anything caught inside this cloud will take continual damage, increasing with time.
items.wands.wandofcorrosion.name=wand of corrosion
items.wands.wandofcorrosion.staff_name=staff of corrosion
items.wands.wandofcorrosion.desc=This wand has a ashen body which opens to a brilliant orange gem.
items.wands.wandofcorrosion.stats_desc=This wand shoots a bolt which explodes into a cloud of highly corrosive gas at a targeted location. Anything caught inside this cloud will take continual damage, increasing with time.

View File

@ -114,8 +114,8 @@ levels.traps.toxictrap.desc=Triggering this trap will set a cloud of toxic gas l
levels.traps.trap.rankings_desc=Killed by: %s
levels.traps.venomtrap.name=venom gas trap
levels.traps.venomtrap.desc=Triggering this trap will set a cloud of deadly venom gas loose within the immediate area.
levels.traps.corrosiontrap.name=corrosive gas trap
levels.traps.corrosiontrap.desc=Triggering this trap will set a cloud of deadly acidic gas loose within the immediate area.
levels.traps.warpingtrap.name=warping trap
levels.traps.warpingtrap.desc=Whatever triggers this trap will be warped to some other location on this floor.