mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-07-19 06:35:02 +00:00
Cleanup nations (Part 3) 🧹 Remove nation strength (#2649)
## Description: This PR removes the nation strength. Reasoning: - It is currently unused. The backstory can be found in #2498 - It forces map-makers to do balancing work, which is probably not a good idea - It increases map-making work - It increases nation balancing complexity by a lot (we need to have all the json files in mind) - It makes humans avoid map areas completely because there is always that one, same, strong nation - The map lead Nikola123 wants to "not deal with the stupid nations and their balancing" If the goal of nation strength was to make them feel different I would suggest a nation personality system. Nations that love to boat, love to ally, love to nuke, love to fullsend, etc. Link to a discord discussion about nation strength: https://discord.com/channels/1359946986937258015/1360078040222142564/1450973197251117218 ## 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 - [X] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: FloPinguin
This commit is contained in:
@@ -61,13 +61,7 @@ export async function createGameRunner(
|
||||
(n) =>
|
||||
new Nation(
|
||||
new Cell(n.coordinates[0], n.coordinates[1]),
|
||||
new PlayerInfo(
|
||||
n.name,
|
||||
PlayerType.Nation,
|
||||
null,
|
||||
random.nextID(),
|
||||
n.strength,
|
||||
),
|
||||
new PlayerInfo(n.name, PlayerType.Nation, null, random.nextID()),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
@@ -94,7 +94,6 @@ export interface Config {
|
||||
userSettings(): UserSettings;
|
||||
playerTeams(): TeamCountConfig;
|
||||
|
||||
useNationStrengthForStartManpower(): boolean;
|
||||
startManpower(playerInfo: PlayerInfo): number;
|
||||
troopIncreaseRate(player: Player | PlayerView): number;
|
||||
goldAdditionRate(player: Player | PlayerView): Gold;
|
||||
|
||||
@@ -802,31 +802,20 @@ export class DefaultConfig implements Config {
|
||||
}
|
||||
}
|
||||
|
||||
useNationStrengthForStartManpower(): boolean {
|
||||
// Currently disabled: Nations became harder to play against due to AI improvements
|
||||
// nation strength multiplier was unintentionally disabled during those AI improvements (playerInfo.nation was undefined),
|
||||
// Re-enabling this without rebalancing Nation difficulty elsewhere may make them overpowered
|
||||
return false;
|
||||
}
|
||||
|
||||
startManpower(playerInfo: PlayerInfo): number {
|
||||
if (playerInfo.playerType === PlayerType.Bot) {
|
||||
return 10_000;
|
||||
}
|
||||
if (playerInfo.playerType === PlayerType.Nation) {
|
||||
const strength = this.useNationStrengthForStartManpower()
|
||||
? (playerInfo.nationStrength ?? 1)
|
||||
: 1;
|
||||
|
||||
switch (this._gameConfig.difficulty) {
|
||||
case Difficulty.Easy:
|
||||
return 18_750 * strength;
|
||||
return 18_750;
|
||||
case Difficulty.Medium:
|
||||
return 25_000 * strength; // Like humans
|
||||
return 25_000; // Like humans
|
||||
case Difficulty.Hard:
|
||||
return 31_250 * strength;
|
||||
return 31_250;
|
||||
case Difficulty.Impossible:
|
||||
return 37_500 * strength;
|
||||
return 37_500;
|
||||
default:
|
||||
assertNever(this._gameConfig.difficulty);
|
||||
}
|
||||
|
||||
@@ -418,7 +418,6 @@ export class PlayerInfo {
|
||||
public readonly clientID: ClientID | null,
|
||||
// TODO: make player id the small id
|
||||
public readonly id: PlayerID,
|
||||
public readonly nationStrength?: number,
|
||||
) {
|
||||
this.clan = getClanTag(name);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ export interface Nation {
|
||||
coordinates: [number, number];
|
||||
flag: string;
|
||||
name: string;
|
||||
strength: number;
|
||||
}
|
||||
|
||||
export async function loadTerrainMap(
|
||||
|
||||
Reference in New Issue
Block a user