Don't send door case after every shop purchase

This commit is contained in:
Melledy
2025-12-02 23:56:57 -08:00
parent b38f4f0957
commit 65250b07bf
3 changed files with 17 additions and 4 deletions

View File

@@ -88,8 +88,8 @@ public class StarTowerBattleCase extends StarTowerBaseCase {
if (potentialCase != null) {
// Create potential selector
this.getGame().addCase(rsp.getMutableCases(), potentialCase);
} else {
// Add door case here
} else if (!this.getRoom().hasDoor()) {
// Add door case here if door hasn't opened yet
this.getGame().createExit(rsp.getMutableCases());
}

View File

@@ -54,8 +54,8 @@ public class StarTowerPotentialCase extends StarTowerBaseCase {
if (potentialCase != null) {
// Create potential selector
this.getGame().addCase(rsp.getMutableCases(), potentialCase);
} else {
// Add door case here
} else if (!this.getRoom().hasDoor()) {
// Add door case here if door hasn't opened yet
this.getGame().createExit(rsp.getMutableCases());
}

View File

@@ -5,6 +5,7 @@ import java.util.List;
import emu.nebula.data.resources.StarTowerStageDef;
import emu.nebula.game.tower.StarTowerGame;
import emu.nebula.game.tower.cases.CaseType;
import emu.nebula.game.tower.cases.StarTowerBaseCase;
import emu.nebula.game.tower.cases.StarTowerSyncHPCase;
import emu.nebula.proto.PublicStarTower.InteractEnterReq;
@@ -30,6 +31,9 @@ public class StarTowerBaseRoom {
private int lastCaseId = 0;
private List<StarTowerBaseCase> cases;
// Misc
private boolean hasDoor;
public StarTowerBaseRoom(StarTowerGame game, StarTowerStageDef stage) {
this.game = game;
this.stage = stage;
@@ -40,6 +44,10 @@ public class StarTowerBaseRoom {
return stage.getRoomType();
}
public boolean hasDoor() {
return this.hasDoor;
}
// Map info
public void setMapInfo(StarTowerApplyReq req) {
@@ -85,6 +93,11 @@ public class StarTowerBaseRoom {
cases.add(towerCase.toProto());
}
// Check if door case
if (towerCase.getType() == CaseType.OpenDoor) {
this.hasDoor = true;
}
// Complete
return towerCase;
}