fixed surrounded by ally bug, right click out of map bug

This commit is contained in:
evanpelle
2024-09-20 19:37:43 -07:00
parent 03a7c4b543
commit d8cb5b1847
3 changed files with 19 additions and 12 deletions
+7 -4
View File
@@ -28,10 +28,10 @@ export class UILayer implements Layer {
constructor(
private eventBus: EventBus,
private game: Game,
private clientID: ClientID,
private transformHandler: TransformHandler
) {
private game: Game,
private clientID: ClientID,
private transformHandler: TransformHandler
) {
}
@@ -229,6 +229,9 @@ export class UILayer implements Layer {
private onRightClick(e: RightClickEvent) {
const cell = this.transformHandler.screenToWorldCoordinates(e.x, e.y)
if (!this.game.isOnMap(cell)) {
return
}
const tile = this.game.tile(cell)
if (!tile.hasOwner()) {
return
+7 -3
View File
@@ -51,7 +51,8 @@ export class PlayerExecution implements Execution {
clusters.sort((a, b) => b.size - a.size);
const main = clusters.shift()
if (this.isSurroundedBySamePlayer(main)) {
const surroundedBy = this.surroundedBySamePlayer(main)
if (surroundedBy && !this.player.alliedWith(surroundedBy)) {
this.removeCluster(main)
}
@@ -62,7 +63,7 @@ export class PlayerExecution implements Execution {
}
}
private isSurroundedBySamePlayer(cluster: Set<Tile>): boolean {
private surroundedBySamePlayer(cluster: Set<Tile>): false | Player {
const enemies = new Set<Player>()
for (const tile of cluster) {
if (tile.isOceanShore() || tile.neighbors().find(n => !n.hasOwner())) {
@@ -75,7 +76,10 @@ export class PlayerExecution implements Execution {
return false
}
}
return true
if (enemies.size != 1) {
return false
}
return Array.from(enemies)[0]
}
private isSurrounded(cluster: Set<Tile>): boolean {