mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-05 15:48:40 +00:00
Fixed factory ghost radius (#4337)
> **Before opening a PR:** discuss new features on [Discord](https://discord.gg/K9zernJB5z) first, and file bugs or small improvements as [issues](https://github.com/openfrontio/OpenFrontIO/issues/new/choose). You must be assigned to an `approved` issue — unsolicited PRs will be auto-closed. **Add approved & assigned issue number here:** Resolves #4323 ## Description: Made stations use euclidean distance for radius for checking if other stations are close enough, removed redundant if check and unneeded config <img width="1920" height="1080" alt="Screenshot from 2026-06-18 14-19-48" src="https://github.com/user-attachments/assets/a84f29f8-0cc1-46ea-9b96-3d70d6b0b20a" /> ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory ## Please put your Discord username so you can be contacted if a bug or regression is found: tktk1234567
This commit is contained in:
@@ -243,9 +243,6 @@ export class Config {
|
||||
trainStationMaxRange(): number {
|
||||
return 110;
|
||||
}
|
||||
railroadMaxSize(): number {
|
||||
return this.trainStationMaxRange();
|
||||
}
|
||||
|
||||
tradeShipGold(dist: number, player: Player | PlayerView): Gold {
|
||||
// Sigmoid: concave start, sharp S-curve middle, linear end - heavily punishes trades under range debuff.
|
||||
|
||||
@@ -251,7 +251,6 @@ export class RailNetworkImpl implements RailNetwork {
|
||||
|
||||
const maxRange = this.game.config().trainStationMaxRange();
|
||||
const minRangeSquared = this.game.config().trainStationMinRange() ** 2;
|
||||
const maxPathSize = this.game.config().railroadMaxSize();
|
||||
|
||||
// A City or Port only joins the rail network when a Factory is already in
|
||||
// range (see CityExecution/PortExecution). A Factory always becomes a
|
||||
@@ -301,13 +300,11 @@ export class RailNetworkImpl implements RailNetwork {
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
const path = this.pathService.findTilePath(tile, targetTile);
|
||||
if (path.length > 0 && path.length < maxPathSize) {
|
||||
paths.push(path);
|
||||
if (neighborStation) {
|
||||
connectedStations.push(neighborStation);
|
||||
}
|
||||
if (path.length === 0) continue;
|
||||
paths.push(path);
|
||||
if (neighborStation) {
|
||||
connectedStations.push(neighborStation);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,19 +375,17 @@ export class RailNetworkImpl implements RailNetwork {
|
||||
|
||||
private connect(from: TrainStation, to: TrainStation) {
|
||||
const path = this.pathService.findTilePath(from.tile(), to.tile());
|
||||
if (path.length > 0 && path.length < this.game.config().railroadMaxSize()) {
|
||||
const railroad = new Railroad(from, to, path, this.nextId++);
|
||||
this.game.addUpdate({
|
||||
type: GameUpdateType.RailroadConstructionEvent,
|
||||
id: railroad.id,
|
||||
tiles: railroad.tiles,
|
||||
});
|
||||
from.addRailroad(railroad);
|
||||
to.addRailroad(railroad);
|
||||
this.railGrid.register(railroad);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
if (path.length === 0) return false;
|
||||
const railroad = new Railroad(from, to, path, this.nextId++);
|
||||
this.game.addUpdate({
|
||||
type: GameUpdateType.RailroadConstructionEvent,
|
||||
id: railroad.id,
|
||||
tiles: railroad.tiles,
|
||||
});
|
||||
from.addRailroad(railroad);
|
||||
to.addRailroad(railroad);
|
||||
this.railGrid.register(railroad);
|
||||
return true;
|
||||
}
|
||||
|
||||
private distanceFrom(
|
||||
|
||||
Reference in New Issue
Block a user