v0.6.3: reworked the wand of venom thematically, now wand of corrosion
This commit is contained in:
parent
fbb24e244a
commit
bf280cc426
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 |
|
@ -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,
|
||||
|
|
|
@ -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>()),
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
|
|
|
@ -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"));
|
||||
}
|
|
@ -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");
|
||||
|
|
|
@ -93,6 +93,5 @@ public class ToxicImbue extends Buff {
|
|||
{
|
||||
immunities.add( ToxicGas.class );
|
||||
immunities.add( Poison.class );
|
||||
immunities.add( Venom.class );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
}
|
|
@ -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 );
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 ) );
|
||||
}
|
||||
|
||||
}
|
|
@ -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,
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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())) {
|
||||
|
|
|
@ -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 };
|
||||
|
|
|
@ -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 };
|
||||
|
|
|
@ -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 };
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
}
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user