v0.7.5: adjusted fading traps, now persist for one turn before fading
This commit is contained in:
parent
39c9c37783
commit
91de5dce20
|
@ -555,8 +555,9 @@ public class NewPrisonBossLevel extends Level {
|
||||||
|
|
||||||
FadingTraps f = new FadingTraps();
|
FadingTraps f = new FadingTraps();
|
||||||
f.setCoveringArea(mazeCells[i]);
|
f.setCoveringArea(mazeCells[i]);
|
||||||
|
f.fadeDelay = 1f;
|
||||||
GameScene.add(f, false);
|
GameScene.add(f, false);
|
||||||
f.startFade( 3f );
|
customTiles.add(f);
|
||||||
|
|
||||||
Sample.INSTANCE.play(Assets.SND_TELEPORT);
|
Sample.INSTANCE.play(Assets.SND_TELEPORT);
|
||||||
int roomCenter = (mazeCells[i].left + mazeCells[i].right)/2 +
|
int roomCenter = (mazeCells[i].left + mazeCells[i].right)/2 +
|
||||||
|
@ -648,9 +649,10 @@ public class NewPrisonBossLevel extends Level {
|
||||||
GameScene.updateMap();
|
GameScene.updateMap();
|
||||||
|
|
||||||
FadingTraps t = new FadingTraps();
|
FadingTraps t = new FadingTraps();
|
||||||
|
t.fadeDelay = 1f;
|
||||||
t.setCoveringArea(tenguCell);
|
t.setCoveringArea(tenguCell);
|
||||||
GameScene.add(t, false);
|
GameScene.add(t, false);
|
||||||
t.startFade( 3f );
|
customTiles.add(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -685,7 +687,8 @@ public class NewPrisonBossLevel extends Level {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class FadingTraps extends CustomTilemap {
|
//TODO consider making this external to the prison boss level
|
||||||
|
public static class FadingTraps extends CustomTilemap {
|
||||||
|
|
||||||
{
|
{
|
||||||
texture = Assets.TERRAIN_FEATURES;
|
texture = Assets.TERRAIN_FEATURES;
|
||||||
|
@ -693,6 +696,10 @@ public class NewPrisonBossLevel extends Level {
|
||||||
|
|
||||||
Rect area;
|
Rect area;
|
||||||
|
|
||||||
|
private float fadeDuration = 1f;
|
||||||
|
private float initialAlpha = .4f;
|
||||||
|
private float fadeDelay = 0f;
|
||||||
|
|
||||||
public void setCoveringArea(Rect area){
|
public void setCoveringArea(Rect area){
|
||||||
tileX = area.left;
|
tileX = area.left;
|
||||||
tileY = area.top;
|
tileY = area.top;
|
||||||
|
@ -710,9 +717,9 @@ public class NewPrisonBossLevel extends Level {
|
||||||
Trap t;
|
Trap t;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (int y = tileY; y < tileY + tileH; y++){
|
for (int y = tileY; y < tileY + tileH; y++){
|
||||||
cell = tileX + y*width();
|
cell = tileX + y*Dungeon.level.width();
|
||||||
for (int x = tileX; x < tileX + tileW; x++){
|
for (int x = tileX; x < tileX + tileW; x++){
|
||||||
t = traps.get(cell);
|
t = Dungeon.level.traps.get(cell);
|
||||||
if (t != null){
|
if (t != null){
|
||||||
data[i] = t.color + t.shape*16;
|
data[i] = t.color + t.shape*16;
|
||||||
} else {
|
} else {
|
||||||
|
@ -724,24 +731,61 @@ public class NewPrisonBossLevel extends Level {
|
||||||
}
|
}
|
||||||
|
|
||||||
v.map( data, tileW );
|
v.map( data, tileW );
|
||||||
|
setFade();
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startFade( float duration ){
|
@Override
|
||||||
if (vis == null || vis.parent == null){
|
public String name(int tileX, int tileY) {
|
||||||
|
int cell = (this.tileX+tileX) + Dungeon.level.width()*(this.tileY+tileY);
|
||||||
|
if (Dungeon.level.traps.get(cell) != null){
|
||||||
|
return Dungeon.level.traps.get(cell).name;
|
||||||
|
}
|
||||||
|
return super.name(tileX, tileY);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String desc(int tileX, int tileY) {
|
||||||
|
int cell = (this.tileX+tileX) + Dungeon.level.width()*(this.tileY+tileY);
|
||||||
|
if (Dungeon.level.traps.get(cell) != null){
|
||||||
|
return Dungeon.level.traps.get(cell).desc();
|
||||||
|
}
|
||||||
|
return super.desc(tileX, tileY);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setFade( ){
|
||||||
|
if (vis == null){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
vis.parent.add(new AlphaTweener(vis, 0f, duration){
|
vis.alpha( initialAlpha );
|
||||||
@Override
|
Actor.addDelayed(new Actor() {
|
||||||
protected void onComplete() {
|
|
||||||
super.onComplete();
|
{
|
||||||
vis.killAndErase();
|
actPriority = HERO_PRIO-1;
|
||||||
killAndErase();
|
|
||||||
vis = null;
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
@Override
|
||||||
|
protected boolean act() {
|
||||||
|
Actor.remove(this);
|
||||||
|
|
||||||
|
if (vis != null && vis.parent != null) {
|
||||||
|
Dungeon.level.customTiles.remove(FadingTraps.this);
|
||||||
|
vis.parent.add(new AlphaTweener(vis, 0f, fadeDuration) {
|
||||||
|
@Override
|
||||||
|
protected void onComplete() {
|
||||||
|
super.onComplete();
|
||||||
|
vis.killAndErase();
|
||||||
|
killAndErase();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}, fadeDelay);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class exitVisual extends CustomTilemap {
|
public static class exitVisual extends CustomTilemap {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user