v0.8.2c: standardized invisibility dispelling, always after an effect

This commit is contained in:
Evan Debenham 2020-08-22 12:51:09 -04:00
parent 72147a297c
commit 1940663bb7
28 changed files with 14 additions and 63 deletions

View File

@ -47,7 +47,6 @@ public class HuntressArmor extends ClassArmor {
@Override @Override
public void doSpecial() { public void doSpecial() {
Invisibility.dispel();
charge -= 35; charge -= 35;
updateQuickslot(); updateQuickslot();
@ -64,6 +63,7 @@ public class HuntressArmor extends ClassArmor {
curUser.attack( targets.get( this ) ); curUser.attack( targets.get( this ) );
targets.remove( this ); targets.remove( this );
if (targets.isEmpty()) { if (targets.isEmpty()) {
Invisibility.dispel();
curUser.spendAndNext( curUser.attackDelay() ); curUser.spendAndNext( curUser.attackDelay() );
} }
} }
@ -80,7 +80,7 @@ public class HuntressArmor extends ClassArmor {
GLog.w( Messages.get(this, "no_enemies") ); GLog.w( Messages.get(this, "no_enemies") );
return; return;
} }
curUser.sprite.zap( curUser.pos ); curUser.sprite.zap( curUser.pos );
curUser.busy(); curUser.busy();
} }

View File

@ -44,7 +44,6 @@ public class MageArmor extends ClassArmor {
@Override @Override
public void doSpecial() { public void doSpecial() {
Invisibility.dispel();
charge -= 35; charge -= 35;
updateQuickslot(); updateQuickslot();
@ -59,6 +58,7 @@ public class MageArmor extends ClassArmor {
curUser.spend( Actor.TICK ); curUser.spend( Actor.TICK );
curUser.sprite.operate( curUser.pos ); curUser.sprite.operate( curUser.pos );
Invisibility.dispel();
curUser.busy(); curUser.busy();
curUser.sprite.emitter().start( ElmoParticle.FACTORY, 0.025f, 20 ); curUser.sprite.emitter().start( ElmoParticle.FACTORY, 0.025f, 20 );

View File

@ -65,8 +65,6 @@ public class WarriorArmor extends ClassArmor {
if (Actor.findChar( cell ) != null && cell != curUser.pos) if (Actor.findChar( cell ) != null && cell != curUser.pos)
cell = route.path.get(route.dist-1); cell = route.path.get(route.dist-1);
Invisibility.dispel();
charge -= 35; charge -= 35;
updateQuickslot(); updateQuickslot();
@ -90,6 +88,7 @@ public class WarriorArmor extends ClassArmor {
CellEmitter.center(dest).burst(Speck.factory(Speck.DUST), 10); CellEmitter.center(dest).burst(Speck.factory(Speck.DUST), 10);
Camera.main.shake(2, 0.5f); Camera.main.shake(2, 0.5f);
Invisibility.dispel();
curUser.spendAndNext(LEAP_TIME); curUser.spendAndNext(LEAP_TIME);
} }
}); });

View File

@ -22,7 +22,6 @@
package com.shatteredpixel.shatteredpixeldungeon.items.scrolls; package com.shatteredpixel.shatteredpixeldungeon.items.scrolls;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@ -86,7 +85,6 @@ public abstract class InventoryScroll extends Scroll {
((InventoryScroll)curItem).readAnimation(); ((InventoryScroll)curItem).readAnimation();
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
} else if (identifiedByUse && !((Scroll)curItem).anonymous) { } else if (identifiedByUse && !((Scroll)curItem).anonymous) {

View File

@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
@ -196,6 +197,7 @@ public abstract class Scroll extends Item {
protected void readAnimation() { protected void readAnimation() {
curUser.spend( TIME_TO_READ ); curUser.spend( TIME_TO_READ );
curUser.busy(); curUser.busy();
Invisibility.dispel();
((HeroSprite)curUser.sprite).read(); ((HeroSprite)curUser.sprite).read();
} }

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Drowsy; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Drowsy;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -44,7 +43,6 @@ public class ScrollOfLullaby extends Scroll {
curUser.sprite.centerEmitter().start( Speck.factory( Speck.NOTE ), 0.3f, 5 ); curUser.sprite.centerEmitter().start( Speck.factory( Speck.NOTE ), 0.3f, 5 );
Sample.INSTANCE.play( Assets.Sounds.LULLABY ); Sample.INSTANCE.play( Assets.Sounds.LULLABY );
Invisibility.dispel();
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
if (Dungeon.level.heroFOV[mob.pos]) { if (Dungeon.level.heroFOV[mob.pos]) {
@ -58,7 +56,6 @@ public class ScrollOfLullaby extends Scroll {
GLog.i( Messages.get(this, "sooth") ); GLog.i( Messages.get(this, "sooth") );
setKnown(); setKnown();
readAnimation(); readAnimation();
} }

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Awareness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MindVision;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
@ -82,7 +81,6 @@ public class ScrollOfMagicMapping extends Scroll {
SpellSprite.show( curUser, SpellSprite.MAP ); SpellSprite.show( curUser, SpellSprite.MAP );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
setKnown(); setKnown();

View File

@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.MirrorImage; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.MirrorImage;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@ -55,7 +54,6 @@ public class ScrollOfMirrorImage extends Scroll {
} }
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
readAnimation(); readAnimation();
} }
@ -68,7 +66,6 @@ public class ScrollOfMirrorImage extends Scroll {
setKnown(); setKnown();
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
readAnimation(); readAnimation();
} }

View File

@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Amok;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -55,7 +54,6 @@ public class ScrollOfRage extends Scroll {
curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 ); curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 );
Sample.INSTANCE.play( Assets.Sounds.CHALLENGE ); Sample.INSTANCE.play( Assets.Sounds.CHALLENGE );
Invisibility.dispel();
readAnimation(); readAnimation();
} }
@ -72,7 +70,6 @@ public class ScrollOfRage extends Scroll {
curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 ); curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
readAnimation(); readAnimation();
} }

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Recharging; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Recharging;
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite; import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EnergyParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.EnergyParticle;
@ -47,7 +46,6 @@ public class ScrollOfRecharging extends Scroll {
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Sample.INSTANCE.play( Assets.Sounds.CHARGEUP ); Sample.INSTANCE.play( Assets.Sounds.CHARGEUP );
Invisibility.dispel();
GLog.i( Messages.get(this, "surge") ); GLog.i( Messages.get(this, "surge") );
SpellSprite.show( curUser, SpellSprite.CHARGE ); SpellSprite.show( curUser, SpellSprite.CHARGE );

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Degrade;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; import com.shatteredpixel.shatteredpixeldungeon.effects.Flare;
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle; import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ShadowParticle;
@ -54,7 +53,6 @@ public class ScrollOfRemoveCurse extends InventoryScroll {
} }
} }
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
doRead(); doRead();
} }

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
@ -48,7 +47,6 @@ public class ScrollOfRetribution extends Scroll {
float power = Math.min( 4f, 4.45f*hpPercent); float power = Math.min( 4f, 4.45f*hpPercent);
Sample.INSTANCE.play( Assets.Sounds.BLAST ); Sample.INSTANCE.play( Assets.Sounds.BLAST );
Invisibility.dispel();
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
if (Dungeon.level.heroFOV[mob.pos]) { if (Dungeon.level.heroFOV[mob.pos]) {
@ -75,7 +73,6 @@ public class ScrollOfRetribution extends Scroll {
GameScene.flash( 0xFFFFFF ); GameScene.flash( 0xFFFFFF );
Sample.INSTANCE.play( Assets.Sounds.BLAST ); Sample.INSTANCE.play( Assets.Sounds.BLAST );
Invisibility.dispel();
//scales from 3x to 5x power, maxing at ~20% HP //scales from 3x to 5x power, maxing at ~20% HP
float hpPercent = (curUser.HT - curUser.HP)/(float)(curUser.HT); float hpPercent = (curUser.HT - curUser.HP)/(float)(curUser.HT);

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel; import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel;
@ -58,7 +57,6 @@ public class ScrollOfTeleportation extends Scroll {
public void doRead() { public void doRead() {
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
teleportPreferringUnseen( curUser ); teleportPreferringUnseen( curUser );
setKnown(); setKnown();

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Terror;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
@ -46,7 +45,6 @@ public class ScrollOfTerror extends Scroll {
new Flare( 5, 32 ).color( 0xFF0000, true ).show( curUser.sprite, 2f ); new Flare( 5, 32 ).color( 0xFF0000, true ).show( curUser.sprite, 2f );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
int count = 0; int count = 0;
Mob affected = null; Mob affected = null;

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Charm;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@ -42,7 +41,6 @@ public class ScrollOfAffection extends ExoticScroll {
curUser.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 ); curUser.sprite.centerEmitter().start( Speck.factory( Speck.HEART ), 0.2f, 5 );
Sample.INSTANCE.play( Assets.Sounds.CHARMS ); Sample.INSTANCE.play( Assets.Sounds.CHARMS );
Invisibility.dispel();
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
if (Dungeon.level.heroFOV[mob.pos]) { if (Dungeon.level.heroFOV[mob.pos]) {

View File

@ -22,7 +22,6 @@
package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic; package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune;
import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; import com.shatteredpixel.shatteredpixeldungeon.effects.Flare;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@ -36,8 +35,6 @@ public class ScrollOfAntiMagic extends ExoticScroll {
@Override @Override
public void doRead() { public void doRead() {
Invisibility.dispel();
Buff.affect( curUser, MagicImmune.class, MagicImmune.DURATION ); Buff.affect( curUser, MagicImmune.class, MagicImmune.DURATION );
new Flare( 5, 32 ).color( 0xFF0000, true ).show( curUser.sprite, 2f ); new Flare( 5, 32 ).color( 0xFF0000, true ).show( curUser.sprite, 2f );

View File

@ -26,7 +26,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Vertigo;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
@ -52,7 +51,6 @@ public class ScrollOfConfusion extends ExoticScroll {
curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 ); curUser.sprite.centerEmitter().start( Speck.factory( Speck.SCREAM ), 0.3f, 3 );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
readAnimation(); readAnimation();
} }

View File

@ -22,7 +22,6 @@
package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic; package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.effects.Identification; import com.shatteredpixel.shatteredpixeldungeon.effects.Identification;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion;
@ -55,11 +54,7 @@ public class ScrollOfDivination extends ExoticScroll {
curUser.sprite.parent.add( new Identification( curUser.sprite.center().offset( 0, -16 ) ) ); curUser.sprite.parent.add( new Identification( curUser.sprite.center().offset( 0, -16 ) ) );
readAnimation();
setKnown();
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
HashSet<Class<? extends Potion>> potions = Potion.getUnknown(); HashSet<Class<? extends Potion>> potions = Potion.getUnknown();
HashSet<Class<? extends Scroll>> scrolls = Scroll.getUnknown(); HashSet<Class<? extends Scroll>> scrolls = Scroll.getUnknown();
@ -122,6 +117,9 @@ public class ScrollOfDivination extends ExoticScroll {
} }
GameScene.show(new WndDivination( IDed )); GameScene.show(new WndDivination( IDed ));
readAnimation();
setKnown();
} }
private class WndDivination extends Window { private class WndDivination extends Window {

View File

@ -22,7 +22,6 @@
package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic; package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.effects.Enchanting; import com.shatteredpixel.shatteredpixeldungeon.effects.Enchanting;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
@ -81,7 +80,6 @@ public class ScrollOfEnchantment extends ExoticScroll {
((ScrollOfEnchantment)curItem).readAnimation(); ((ScrollOfEnchantment)curItem).readAnimation();
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
Enchanting.show(curUser, item); Enchanting.show(curUser, item);
} }
} }
@ -118,7 +116,6 @@ public class ScrollOfEnchantment extends ExoticScroll {
((ScrollOfEnchantment)curItem).readAnimation(); ((ScrollOfEnchantment)curItem).readAnimation();
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
Enchanting.show(curUser, item); Enchanting.show(curUser, item);
} }
} }

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Foresight; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Foresight;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite; import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
import com.watabou.noosa.audio.Sample; import com.watabou.noosa.audio.Sample;
@ -39,7 +38,6 @@ public class ScrollOfForesight extends ExoticScroll {
public void doRead() { public void doRead() {
SpellSprite.show( curUser, SpellSprite.MAP ); SpellSprite.show( curUser, SpellSprite.MAP );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
Buff.affect(curUser, Foresight.class, Foresight.DURATION); Buff.affect(curUser, Foresight.class, Foresight.DURATION);

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ArtifactRecharge; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.ArtifactRecharge;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite; import com.shatteredpixel.shatteredpixeldungeon.effects.SpellSprite;
import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.ScrollOfRecharging;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@ -44,7 +43,6 @@ public class ScrollOfMysticalEnergy extends ExoticScroll {
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Sample.INSTANCE.play( Assets.Sounds.CHARGEUP ); Sample.INSTANCE.play( Assets.Sounds.CHARGEUP );
Invisibility.dispel();
SpellSprite.show( curUser, SpellSprite.CHARGE ); SpellSprite.show( curUser, SpellSprite.CHARGE );
setKnown(); setKnown();

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Paralysis;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; import com.shatteredpixel.shatteredpixeldungeon.effects.Flare;
@ -42,7 +41,6 @@ public class ScrollOfPetrification extends ExoticScroll {
public void doRead() { public void doRead() {
new Flare( 5, 32 ).color( 0xFF0000, true ).show( curUser.sprite, 2f ); new Flare( 5, 32 ).color( 0xFF0000, true ).show( curUser.sprite, 2f );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
if (mob.alignment != Char.Alignment.ALLY && Dungeon.level.heroFOV[mob.pos]) { if (mob.alignment != Char.Alignment.ALLY && Dungeon.level.heroFOV[mob.pos]) {

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Sheep; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Sheep;
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter; import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
@ -47,7 +46,6 @@ public class ScrollOfPolymorph extends ExoticScroll {
new Flare( 5, 32 ).color( 0xFFFFFF, true ).show( curUser.sprite, 2f ); new Flare( 5, 32 ).color( 0xFFFFFF, true ).show( curUser.sprite, 2f );
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {
if (mob.alignment != Char.Alignment.ALLY && Dungeon.level.heroFOV[mob.pos]) { if (mob.alignment != Char.Alignment.ALLY && Dungeon.level.heroFOV[mob.pos]) {

View File

@ -24,7 +24,6 @@ package com.shatteredpixel.shatteredpixeldungeon.items.scrolls.exotic;
import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.PrismaticGuard; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.PrismaticGuard;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PrismaticImage; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.PrismaticImage;
@ -57,7 +56,6 @@ public class ScrollOfPrismaticImage extends ExoticScroll {
setKnown(); setKnown();
Sample.INSTANCE.play( Assets.Sounds.READ ); Sample.INSTANCE.play( Assets.Sounds.READ );
Invisibility.dispel();
readAnimation(); readAnimation();
} }

View File

@ -25,7 +25,6 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Blindness;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Weakness;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
@ -46,7 +45,6 @@ public class ScrollOfPsionicBlast extends ExoticScroll {
GameScene.flash( 0xFFFFFF ); GameScene.flash( 0xFFFFFF );
Sample.INSTANCE.play( Assets.Sounds.BLAST ); Sample.INSTANCE.play( Assets.Sounds.BLAST );
Invisibility.dispel();
int targets = 0; int targets = 0;
for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) { for (Mob mob : Dungeon.level.mobs.toArray( new Mob[0] )) {

View File

@ -82,12 +82,12 @@ public abstract class TargetedSpell extends Spell {
QuickSlotButton.target(Actor.findChar(cell)); QuickSlotButton.target(Actor.findChar(cell));
curUser.busy(); curUser.busy();
Invisibility.dispel();
curSpell.fx(shot, new Callback() { curSpell.fx(shot, new Callback() {
public void call() { public void call() {
curSpell.affectTarget(shot, curUser); curSpell.affectTarget(shot, curUser);
curSpell.detach( curUser.belongings.backpack ); curSpell.detach( curUser.belongings.backpack );
Invisibility.dispel();
curSpell.updateQuickslot(); curSpell.updateQuickslot();
curUser.spendAndNext( 1f ); curUser.spendAndNext( 1f );
} }

View File

@ -22,6 +22,7 @@
package com.shatteredpixel.shatteredpixeldungeon.items.stones; package com.shatteredpixel.shatteredpixeldungeon.items.stones;
import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Dungeon;
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Invisibility;
import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.Item;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@ -38,6 +39,7 @@ public abstract class Runestone extends Item {
super.onThrow( cell ); super.onThrow( cell );
} else { } else {
activate(cell); activate(cell);
Invisibility.dispel();
} }
} }

View File

@ -335,6 +335,8 @@ public abstract class Wand extends Item {
if (buff != null && buff.level() > super.buffedLvl()){ if (buff != null && buff.level() > super.buffedLvl()){
buff.detach(); buff.detach();
} }
Invisibility.dispel();
if (curUser.heroClass == HeroClass.MAGE) levelKnown = true; if (curUser.heroClass == HeroClass.MAGE) levelKnown = true;
updateQuickslot(); updateQuickslot();
@ -408,11 +410,6 @@ public abstract class Wand extends Item {
usesLeftToID = bundle.getInt( USES_LEFT_TO_ID ); usesLeftToID = bundle.getInt( USES_LEFT_TO_ID );
availableUsesToID = bundle.getInt( AVAILABLE_USES ); availableUsesToID = bundle.getInt( AVAILABLE_USES );
//pre-0.7.2 saves
if (bundle.contains( "unfamiliarity" )){
usesLeftToID = Math.min(10, bundle.getInt( "unfamiliarity" ));
availableUsesToID = USES_TO_ID/2f;
}
curCharges = bundle.getInt( CUR_CHARGES ); curCharges = bundle.getInt( CUR_CHARGES );
curChargeKnown = bundle.getBoolean( CUR_CHARGE_KNOWN ); curChargeKnown = bundle.getBoolean( CUR_CHARGE_KNOWN );
partialCharge = bundle.getFloat( PARTIALCHARGE ); partialCharge = bundle.getFloat( PARTIALCHARGE );
@ -465,7 +462,6 @@ public abstract class Wand extends Item {
if (curWand.tryToZap(curUser, target)) { if (curWand.tryToZap(curUser, target)) {
curUser.busy(); curUser.busy();
Invisibility.dispel();
if (curWand.cursed){ if (curWand.cursed){
if (!curWand.cursedKnown){ if (!curWand.cursedKnown){