fix: some bugs in rmg
This commit is contained in:
parent
86e5a5b7b4
commit
da1e053033
|
@ -24,7 +24,15 @@
|
||||||
"width": 3,
|
"width": 3,
|
||||||
"alt_tile": [11, 11]
|
"alt_tile": [11, 11]
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"sprites": [
|
||||||
|
{
|
||||||
|
"type": "player",
|
||||||
|
"x": 5,
|
||||||
|
"y": 10
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
},
|
},
|
||||||
"exit": {
|
"exit": {
|
||||||
"width": 30,
|
"width": 30,
|
||||||
|
|
|
@ -94,10 +94,12 @@ export default class RandomMapGenerator {
|
||||||
|
|
||||||
getMap(): TiledTilemapData {
|
getMap(): TiledTilemapData {
|
||||||
let room = this.copyRoom(this.template.entrance, 0, 0);
|
let room = this.copyRoom(this.template.entrance, 0, 0);
|
||||||
this.rooms.push(room);
|
|
||||||
|
|
||||||
let facing = this.getEntranceFacing(this.template.entrance.entrances[0], this.template.entrance.width);
|
let facing = this.getEntranceFacing(this.template.entrance.entrances[0], this.template.entrance.width);
|
||||||
let position = new Vec2(this.template.entrance.entrances[0].x, this.template.entrance.entrances[0].y);
|
let position = new Vec2(this.template.entrance.entrances[0].x, this.template.entrance.entrances[0].y);
|
||||||
|
// this.removeEntrance(room, this.template.entrance.entrances[0], facing);
|
||||||
|
this.rooms.push(room);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.putNextRoom(position, this.getOppositeFacing(facing));
|
this.putNextRoom(position, this.getOppositeFacing(facing));
|
||||||
|
|
||||||
|
@ -134,7 +136,7 @@ export default class RandomMapGenerator {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (this.roomPlaced >= this.minRoom && facing == this.exitFacing) {
|
if (this.roomPlaced >= this.minRoom && facing == this.exitFacing && !this.hasExit) {
|
||||||
this.putExitRoom(position);
|
this.putExitRoom(position);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -155,9 +157,10 @@ export default class RandomMapGenerator {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
let room = this.copyRoom(nextRoom, nextPosition.x, nextPosition.y);
|
let room = this.copyRoom(nextRoom, nextPosition.x, nextPosition.y);
|
||||||
|
this.removeEntrance(room, thisEntrance, facing);
|
||||||
this.rooms.push(room);
|
this.rooms.push(room);
|
||||||
this.roomPlaced += 1;
|
this.roomPlaced += 1;
|
||||||
if (this.hasExit && this.gen.range() <= 0.5) {
|
if (this.hasExit && this.gen.random() <= 0.3) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for (let entrance of nextRoom.entrances) {
|
for (let entrance of nextRoom.entrances) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user