v3.3.1: skeleton key now correctly procs and triggers on artifact fx
This commit is contained in:
@@ -30,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff;
|
|||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.MagicImmune;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Regeneration;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Regeneration;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero;
|
||||||
|
import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Talent;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.BlobEmitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||||
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
import com.shatteredpixel.shatteredpixeldungeon.effects.Speck;
|
||||||
@@ -161,6 +162,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
GameScene.updateMap(target);
|
GameScene.updateMap(target);
|
||||||
charge -= 1;
|
charge -= 1;
|
||||||
gainExp(2 + 1);
|
gainExp(2 + 1);
|
||||||
|
Talent.onArtifactUsed(Dungeon.hero);
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
curUser.sprite.idle();
|
curUser.sprite.idle();
|
||||||
}
|
}
|
||||||
@@ -176,7 +178,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
public void call() {
|
public void call() {
|
||||||
Level.set(target, Terrain.DOOR);
|
Level.set(target, Terrain.DOOR);
|
||||||
GameScene.updateMap(target);
|
GameScene.updateMap(target);
|
||||||
//no charge cost
|
//no charge cost, no artifact on-use
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
curUser.sprite.idle();
|
curUser.sprite.idle();
|
||||||
}
|
}
|
||||||
@@ -198,6 +200,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
GameScene.updateMap(target);
|
GameScene.updateMap(target);
|
||||||
charge -= 5;
|
charge -= 5;
|
||||||
gainExp(2 + 5);
|
gainExp(2 + 5);
|
||||||
|
Talent.onArtifactUsed(Dungeon.hero);
|
||||||
Sample.INSTANCE.play(Assets.Sounds.TELEPORT);
|
Sample.INSTANCE.play(Assets.Sounds.TELEPORT);
|
||||||
CellEmitter.get( target ).start( Speck.factory( Speck.DISCOVER ), 0.025f, 20 );
|
CellEmitter.get( target ).start( Speck.factory( Speck.DISCOVER ), 0.025f, 20 );
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
@@ -233,6 +236,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
if (pushCell != -1 && !Char.hasProp(toMove, Char.Property.IMMOVABLE)){
|
if (pushCell != -1 && !Char.hasProp(toMove, Char.Property.IMMOVABLE)){
|
||||||
Ballistica push = new Ballistica(target, pushCell, Ballistica.PROJECTILE);
|
Ballistica push = new Ballistica(target, pushCell, Ballistica.PROJECTILE);
|
||||||
WandOfBlastWave.throwChar(toMove, push, 1, false, false, this);
|
WandOfBlastWave.throwChar(toMove, push, 1, false, false, this);
|
||||||
|
artifactProc(toMove, visiblyUpgraded(), 2);
|
||||||
} else {
|
} else {
|
||||||
GLog.w(Messages.get(SkeletonKey.class, "lock_no_space"));
|
GLog.w(Messages.get(SkeletonKey.class, "lock_no_space"));
|
||||||
return;
|
return;
|
||||||
@@ -247,6 +251,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
GameScene.updateMap(target);
|
GameScene.updateMap(target);
|
||||||
charge -= 2;
|
charge -= 2;
|
||||||
gainExp(2);
|
gainExp(2);
|
||||||
|
Talent.onArtifactUsed(Dungeon.hero);
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
curUser.sprite.idle();
|
curUser.sprite.idle();
|
||||||
|
|
||||||
@@ -283,6 +288,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
Dungeon.level.heaps.get(target).open(curUser);
|
Dungeon.level.heaps.get(target).open(curUser);
|
||||||
charge -= 2;
|
charge -= 2;
|
||||||
gainExp(2 + 2);
|
gainExp(2 + 2);
|
||||||
|
Talent.onArtifactUsed(Dungeon.hero);
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
curUser.sprite.idle();
|
curUser.sprite.idle();
|
||||||
}
|
}
|
||||||
@@ -303,6 +309,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
Dungeon.level.heaps.get(target).open(curUser);
|
Dungeon.level.heaps.get(target).open(curUser);
|
||||||
charge -= 5;
|
charge -= 5;
|
||||||
gainExp(2 + 5);
|
gainExp(2 + 5);
|
||||||
|
Talent.onArtifactUsed(Dungeon.hero);
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
curUser.sprite.idle();
|
curUser.sprite.idle();
|
||||||
}
|
}
|
||||||
@@ -358,6 +365,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
GameScene.updateFog();
|
GameScene.updateFog();
|
||||||
Sample.INSTANCE.play(Assets.Sounds.TELEPORT);
|
Sample.INSTANCE.play(Assets.Sounds.TELEPORT);
|
||||||
|
|
||||||
|
Talent.onArtifactUsed(Dungeon.hero);
|
||||||
curUser.spendAndNext(Actor.TICK);
|
curUser.spendAndNext(Actor.TICK);
|
||||||
curUser.sprite.idle();
|
curUser.sprite.idle();
|
||||||
}
|
}
|
||||||
@@ -453,6 +461,7 @@ public class SkeletonKey extends Artifact {
|
|||||||
Char ch = Actor.findChar(pos);
|
Char ch = Actor.findChar(pos);
|
||||||
if (ch != null && ch.alignment == Char.Alignment.ENEMY){
|
if (ch != null && ch.alignment == Char.Alignment.ENEMY){
|
||||||
WandOfBlastWave.throwChar(ch, new Ballistica(pos, pos+knockbackDIR, Ballistica.PROJECTILE), 1, false, false, this);
|
WandOfBlastWave.throwChar(ch, new Ballistica(pos, pos+knockbackDIR, Ballistica.PROJECTILE), 1, false, false, this);
|
||||||
|
artifactProc(ch, visiblyUpgraded(), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user