diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java index 46c10e4ea..d7866964c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/buffs/Invisibility.java @@ -85,8 +85,7 @@ public class Invisibility extends FlavourBuff { } CloakOfShadows.cloakStealth cloakBuff = Dungeon.hero.buff( CloakOfShadows.cloakStealth.class ); if (cloakBuff != null) { - cloakBuff.act(); - cloakBuff.detach(); + cloakBuff.dispel(); } //this isn't a form of invisibilty, but it is meant to dispel at the same time as it. TimekeepersHourglass.timeFreeze timeFreeze = Dungeon.hero.buff( TimekeepersHourglass.timeFreeze.class ); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java index 00a256bb6..9ff1a7589 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java @@ -374,7 +374,7 @@ public class Hero extends Char { return ((HeroSprite)sprite).sprint( subClass == HeroSubClass.FREERUNNER && !isStarving() ) ? invisible > 0 ? - 4f * speed : + 2f * speed : 1.5f * speed : speed; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java index f517b3060..a95b212c6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/hero/HeroSubClass.java @@ -44,7 +44,7 @@ public enum HeroSubClass { "When performing a surprise attack, the _Assassin_ inflicts additional damage to his target." ), FREERUNNER( "freerunner", "The _Freerunner_ moves faster when he unencumbered and not starving, " + - "if he is invisible, this speed boost is much stronger." ), + "if he is invisible, this speed boost is increased." ), SNIPER( "sniper", "The _Sniper_ is able to detect weak points in an enemy's armor, " + diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java index cc606fafb..8abe47cec 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/artifacts/CloakOfShadows.java @@ -209,6 +209,8 @@ public class CloakOfShadows extends Artifact { } public class cloakStealth extends ArtifactBuff{ + int turnsToCost = 0; + @Override public int icon() { return BuffIndicator.INVISIBLE; @@ -226,13 +228,33 @@ public class CloakOfShadows extends Artifact { @Override public boolean act(){ - charge--; + if (turnsToCost == 0) charge--; if (charge <= 0) { detach(); GLog.w("Your cloak has run out of energy."); ((Hero)target).interrupt(); } + if (turnsToCost == 0) exp += 10 + ((Hero)target).lvl; + + if (exp >= (level+1)*50 && level < levelCap) { + upgrade(); + exp -= level*50; + GLog.p("Your cloak grows stronger!"); + } + + if (turnsToCost == 0) turnsToCost = 2; + else turnsToCost--; + updateQuickslot(); + + spend( TICK ); + + return true; + } + + public void dispel(){ + charge --; + exp += 10 + ((Hero)target).lvl; if (exp >= (level+1)*50 && level < levelCap) { @@ -242,10 +264,7 @@ public class CloakOfShadows extends Artifact { } updateQuickslot(); - - spend( TICK ); - - return true; + detach(); } @Override