mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Fix #689 - dungeon without stairs to boss floor
This commit is contained in:
parent
0da363e420
commit
b64fc5e822
@ -61,6 +61,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
one of them active at the same time
|
one of them active at the same time
|
||||||
- Made zooming work on wayland
|
- Made zooming work on wayland
|
||||||
- Fixed AI behavior so only humanoids will attempt to roll
|
- Fixed AI behavior so only humanoids will attempt to roll
|
||||||
|
- Fixed a bug where the stairs to the boss floor in dungeons would sometimes not spawn
|
||||||
|
|
||||||
## [0.8.0] - 2020-11-28
|
## [0.8.0] - 2020-11-28
|
||||||
|
|
||||||
|
@ -267,9 +267,10 @@ impl Floor {
|
|||||||
level: i32,
|
level: i32,
|
||||||
difficulty: u32,
|
difficulty: u32,
|
||||||
) -> (Self, Vec2<i32>) {
|
) -> (Self, Vec2<i32>) {
|
||||||
|
const MAX_WIDTH: u32 = 4;
|
||||||
let floors = 3 + difficulty / 2;
|
let floors = 3 + difficulty / 2;
|
||||||
let final_level = level == floors as i32 - 1;
|
let final_level = level == floors as i32 - 1;
|
||||||
let width = (2 + difficulty / 2).min(4);
|
let width = (2 + difficulty / 2).min(MAX_WIDTH);
|
||||||
let height = (15 + difficulty * 3).min(30);
|
let height = (15 + difficulty * 3).min(30);
|
||||||
|
|
||||||
let new_stair_tile = if final_level {
|
let new_stair_tile = if final_level {
|
||||||
@ -309,8 +310,6 @@ impl Floor {
|
|||||||
pillars: None,
|
pillars: None,
|
||||||
difficulty,
|
difficulty,
|
||||||
});
|
});
|
||||||
this.tiles
|
|
||||||
.set(stair_tile - tile_offset, Tile::UpStair(upstair_room));
|
|
||||||
if final_level {
|
if final_level {
|
||||||
// Boss room
|
// Boss room
|
||||||
this.create_room(Room {
|
this.create_room(Room {
|
||||||
@ -320,7 +319,7 @@ impl Floor {
|
|||||||
miniboss: false,
|
miniboss: false,
|
||||||
boss: true,
|
boss: true,
|
||||||
area: Rect::from((
|
area: Rect::from((
|
||||||
new_stair_tile - tile_offset - 4,
|
new_stair_tile - tile_offset - MAX_WIDTH as i32 - 1,
|
||||||
Extent2::broadcast(width as i32 * 2 + 1),
|
Extent2::broadcast(width as i32 * 2 + 1),
|
||||||
)),
|
)),
|
||||||
height: height as i32,
|
height: height as i32,
|
||||||
@ -345,6 +344,8 @@ impl Floor {
|
|||||||
Tile::DownStair(downstair_room),
|
Tile::DownStair(downstair_room),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
this.tiles
|
||||||
|
.set(stair_tile - tile_offset, Tile::UpStair(upstair_room));
|
||||||
|
|
||||||
this.create_rooms(ctx, level, 7);
|
this.create_rooms(ctx, level, 7);
|
||||||
// Create routes between all rooms
|
// Create routes between all rooms
|
||||||
|
Loading…
Reference in New Issue
Block a user