refactor: LevelDefinition ScriptableObject drives floor count and geometry
This commit is contained in:
@@ -70,7 +70,7 @@ namespace Infrastructure.Unity
|
||||
// Set Theme based on High Score
|
||||
ThemeManager.CurrentTheme = ThemeManager.GetTheme(_gameSession.HighScore);
|
||||
|
||||
var floorsCount = levelGenerator ? levelGenerator.FloorsCount : 1;
|
||||
var floorsCount = levelGenerator ? levelGenerator.Definition.FloorCount : 1;
|
||||
|
||||
if (levelGenerator)
|
||||
{
|
||||
@@ -133,8 +133,8 @@ namespace Infrastructure.Unity
|
||||
// Note: Generator uses negative offsets: 0, -15, -30.
|
||||
// So Floor 0 is at Y=0. Floor 1 is at Y=-15.
|
||||
|
||||
var heightDist = levelGenerator.FloorHeightDistance;
|
||||
var maxFloors = levelGenerator.FloorsCount;
|
||||
var heightDist = levelGenerator.Definition.FloorHeightDistance;
|
||||
var maxFloors = levelGenerator.Definition.FloorCount;
|
||||
|
||||
var rawFloor = Mathf.RoundToInt(-playerY / heightDist);
|
||||
_currentPlayerFloorIndex = Mathf.Clamp(rawFloor, 0, maxFloors - 1);
|
||||
@@ -250,10 +250,11 @@ namespace Infrastructure.Unity
|
||||
{
|
||||
if (!levelGenerator) return;
|
||||
|
||||
var lowestY = -(levelGenerator.FloorsCount * levelGenerator.FloorHeightDistance) - 5f;
|
||||
var pos = new Vector3(levelGenerator.GridSizeX / 2f, lowestY, levelGenerator.GridSizeY / 2f);
|
||||
var def = levelGenerator.Definition;
|
||||
var lowestY = -(def.FloorCount * def.FloorHeightDistance) - 5f;
|
||||
var pos = new Vector3(def.GridSizeX / 2f, lowestY, def.GridSizeY / 2f);
|
||||
var plane = Instantiate(deathPlanePrefab, pos, Quaternion.identity);
|
||||
plane.transform.localScale = new Vector3(levelGenerator.GridSizeX * 200f, 1f, levelGenerator.GridSizeY * 200f);
|
||||
plane.transform.localScale = new Vector3(def.GridSizeX * 200f, 1f, def.GridSizeY * 200f);
|
||||
|
||||
plane.OnPlayerFell += () => _gameSession.EndGame();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user