v2.2.0: fixed various minor hiccups with new music system
This commit is contained in:
@@ -193,6 +193,8 @@ public enum Music {
|
||||
|
||||
private synchronized void play(String track, com.badlogic.gdx.audio.Music.OnCompletionListener listener){
|
||||
try {
|
||||
fadeTime = fadeTotal = -1;
|
||||
|
||||
player = Gdx.audio.newMusic(Gdx.files.internal(track));
|
||||
player.setLooping(looping);
|
||||
player.setVolume(volumeWithFade());
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.CellEmitter;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.effects.particles.ElmoParticle;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.PrisonLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.RegularLevel;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.levels.rooms.quest.RitualSiteRoom;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
@@ -187,6 +188,10 @@ public class CeremonialCandle extends Item {
|
||||
elemental.state = elemental.HUNTING;
|
||||
GameScene.add(elemental, 1);
|
||||
|
||||
if (Dungeon.level instanceof PrisonLevel){
|
||||
((PrisonLevel) Dungeon.level).updateWandmakerQuestMusic();
|
||||
}
|
||||
|
||||
for (int i : PathFinder.NEIGHBOURS9){
|
||||
CellEmitter.get(ritualPos+i).burst(ElmoParticle.FACTORY, 10);
|
||||
}
|
||||
|
||||
@@ -138,33 +138,37 @@ public class PrisonLevel extends RegularLevel {
|
||||
1, 1, 1, 1, 1, 1 };
|
||||
}
|
||||
|
||||
private Boolean wandmakerQuestWasActive = null;
|
||||
|
||||
@Override
|
||||
public void occupyCell(Char ch) {
|
||||
super.occupyCell(ch);
|
||||
if (ch == Dungeon.hero) {
|
||||
if (wandmakerQuestWasActive == null) {
|
||||
wandmakerQuestWasActive = Wandmaker.Quest.active();
|
||||
return;
|
||||
}
|
||||
if (Wandmaker.Quest.active() != wandmakerQuestWasActive) {
|
||||
wandmakerQuestWasActive = Wandmaker.Quest.active();
|
||||
updateWandmakerQuestMusic();
|
||||
}
|
||||
}
|
||||
|
||||
Game.runOnRenderThread(new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
Music.INSTANCE.fadeOut(1f, new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
if (Dungeon.level != null) {
|
||||
Dungeon.level.playLevelMusic();
|
||||
}
|
||||
private Boolean wandmakerQuestWasActive = null;
|
||||
|
||||
public void updateWandmakerQuestMusic(){
|
||||
if (wandmakerQuestWasActive == null) {
|
||||
wandmakerQuestWasActive = Wandmaker.Quest.active();
|
||||
return;
|
||||
}
|
||||
if (Wandmaker.Quest.active() != wandmakerQuestWasActive) {
|
||||
wandmakerQuestWasActive = Wandmaker.Quest.active();
|
||||
|
||||
Game.runOnRenderThread(new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
Music.INSTANCE.fadeOut(1f, new Callback() {
|
||||
@Override
|
||||
public void call() {
|
||||
if (Dungeon.level != null) {
|
||||
Dungeon.level.playLevelMusic();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user