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
+5 -5
View File
@@ -122,12 +122,12 @@
* make alliance icon DONE 9/19/2024 * make alliance icon DONE 9/19/2024
* bots attack traitors DONE 9/19/2024 * bots attack traitors DONE 9/19/2024
* BUG: alliance should stop attack DONE 9/19/2024 * BUG: alliance should stop attack DONE 9/19/2024
* create event box * BUG: bot attacks don't stop when allied DONE 9/19/2024
* BUG: bot attacks don't stop when allied ? * click alliance sends alliance request DONE 9/20/2024
* notification for alliance request DONE 9/20/2024
* comfirm alliance DONE 9/20/2024
* create event box DONE 9/20/2024
* make fake humans easier * make fake humans easier
* click alliance sends alliance request
* notification for alliance request
* comfirm alliance
* first place has crown * first place has crown
* alliance has icon * alliance has icon
* BUG: FakeHuman don't be enemy if don't share border * BUG: FakeHuman don't be enemy if don't share border
+7 -4
View File
@@ -28,10 +28,10 @@ export class UILayer implements Layer {
constructor( constructor(
private eventBus: EventBus, private eventBus: EventBus,
private game: Game, private game: Game,
private clientID: ClientID, private clientID: ClientID,
private transformHandler: TransformHandler private transformHandler: TransformHandler
) { ) {
} }
@@ -229,6 +229,9 @@ export class UILayer implements Layer {
private onRightClick(e: RightClickEvent) { private onRightClick(e: RightClickEvent) {
const cell = this.transformHandler.screenToWorldCoordinates(e.x, e.y) const cell = this.transformHandler.screenToWorldCoordinates(e.x, e.y)
if (!this.game.isOnMap(cell)) {
return
}
const tile = this.game.tile(cell) const tile = this.game.tile(cell)
if (!tile.hasOwner()) { if (!tile.hasOwner()) {
return return
+7 -3
View File
@@ -51,7 +51,8 @@ export class PlayerExecution implements Execution {
clusters.sort((a, b) => b.size - a.size); clusters.sort((a, b) => b.size - a.size);
const main = clusters.shift() const main = clusters.shift()
if (this.isSurroundedBySamePlayer(main)) { const surroundedBy = this.surroundedBySamePlayer(main)
if (surroundedBy && !this.player.alliedWith(surroundedBy)) {
this.removeCluster(main) 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>() const enemies = new Set<Player>()
for (const tile of cluster) { for (const tile of cluster) {
if (tile.isOceanShore() || tile.neighbors().find(n => !n.hasOwner())) { if (tile.isOceanShore() || tile.neighbors().find(n => !n.hasOwner())) {
@@ -75,7 +76,10 @@ export class PlayerExecution implements Execution {
return false return false
} }
} }
return true if (enemies.size != 1) {
return false
}
return Array.from(enemies)[0]
} }
private isSurrounded(cluster: Set<Tile>): boolean { private isSurrounded(cluster: Set<Tile>): boolean {