diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 9628903ca..90485edd2 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -1719,7 +1719,7 @@ public class Hero extends Char { if (fieldOfView[p] && p != pos) { if (intentional) { - sprite.parent.addToBack( new CheckedCell( p ) ); + sprite.parent.addToBack(new CheckedCell(p, pos)); } if (Dungeon.level.secret[p]){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/CheckedCell.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/CheckedCell.java index a2dddb631..582c49d91 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/CheckedCell.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/effects/CheckedCell.java @@ -21,6 +21,7 @@ package com.shatteredpixel.shatteredpixeldungeon.effects; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; import com.watabou.gltextures.TextureCache; import com.watabou.noosa.Game; @@ -29,6 +30,7 @@ import com.watabou.noosa.Image; public class CheckedCell extends Image { private float alpha; + private float delay; public CheckedCell( int pos ) { super( TextureCache.createSolid( 0xFF55AAFF ) ); @@ -41,10 +43,19 @@ public class CheckedCell extends Image { alpha = 0.8f; } + + public CheckedCell( int pos, int visSource ) { + this( pos ); + delay = (Dungeon.level.trueDistance(pos, visSource)-1f); + //steadily accelerates as distance increases + if (delay > 0) delay = (float)Math.pow(delay, 0.75f)/10f; + } @Override public void update() { - if ((alpha -= Game.elapsed) > 0) { + if ((delay -= Game.elapsed) > 0){ + alpha( 0 ); + } else if ((alpha -= Game.elapsed) > 0) { alpha( alpha ); scale.set( DungeonTilemap.SIZE * alpha ); } else { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfClairvoyance.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfClairvoyance.java index 09f217707..b46265062 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfClairvoyance.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/stones/StoneOfClairvoyance.java @@ -61,8 +61,8 @@ public class StoneOfClairvoyance extends Runestone { right = Math.min(Dungeon.level.width()-1, c.x + c.x - left); left = Math.max(0, left); for (curr = left + y * Dungeon.level.width(); curr <= right + y * Dungeon.level.width(); curr++){ - - curUser.sprite.parent.addToBack( new CheckedCell( curr ) ); + + curUser.sprite.parent.addToBack( new CheckedCell( curr, cell ) ); Dungeon.level.mapped[curr] = true; if (Dungeon.level.secret[curr]) {