ooo
This commit is contained in:
parent
e2d2dfcb66
commit
8f80997b0d
256 changed files with 4044 additions and 966 deletions
130
config.js
130
config.js
|
|
@ -6,34 +6,41 @@ WATER: 3,
|
|||
DESERT: 4
|
||||
});
|
||||
const terrainInfo = [
|
||||
{ name: "Plains", color: [82, 102, 74], move: 1.0, fertility: 0.55, mineral: 0.05, regen: 0.025 },
|
||||
{ name: "Forest", color: [58, 91, 68], move: 1.3, fertility: 0.62, mineral: 0.08, regen: 0.038 },
|
||||
{ name: "Mountains", color: [104, 105, 101], move: 2.6, fertility: 0.18, mineral: 0.78, regen: 0.012 },
|
||||
{ name: "Water", color: [52, 78, 103], move: 7.0, fertility: 0.04, mineral: 0.02, regen: 0.004 },
|
||||
{ name: "Desert", color: [139, 123, 86], move: 1.55, fertility: 0.16, mineral: 0.16, regen: 0.014 }
|
||||
{ name: "平原", color: [82, 102, 74], move: 1.0, fertility: 0.55, mineral: 0.05, regen: 0.025 },
|
||||
{ name: "森林", color: [58, 91, 68], move: 1.3, fertility: 0.62, mineral: 0.08, regen: 0.038 },
|
||||
{ name: "山地", color: [104, 105, 101], move: 2.6, fertility: 0.18, mineral: 0.78, regen: 0.012 },
|
||||
{ name: "水域", color: [52, 78, 103], move: 7.0, fertility: 0, mineral: 0.02, regen: 0.004 },
|
||||
{ name: "砂漠", color: [139, 123, 86], move: 1.55, fertility: 0.16, mineral: 0.16, regen: 0.014 }
|
||||
];
|
||||
const WEEKS_PER_MONTH = 4;
|
||||
const MONTHS_PER_YEAR = 12;
|
||||
const WEEKS_PER_YEAR = MONTHS_PER_YEAR * WEEKS_PER_MONTH;
|
||||
const SimConfig = Object.freeze({
|
||||
world: Object.freeze({
|
||||
initialPopulation: 50000,
|
||||
defaultSize: 160
|
||||
}),
|
||||
population: Object.freeze({
|
||||
softCapStart: 0.85,
|
||||
hardCapScale: 1.35,
|
||||
populationScale: 10,
|
||||
carryingCapacityBase: 2.4,
|
||||
carryingCapacityFertility: 7.8,
|
||||
carryingCapacityMineral: 1.8,
|
||||
carryingCapacityFarmland: 5.5,
|
||||
pressurePenaltyBase: 0.2,
|
||||
pressureReproductionPenalty: 0.16
|
||||
}),
|
||||
city: Object.freeze({
|
||||
maxCities: 300,
|
||||
agingStartYears: 180,
|
||||
agingDecayPerYear: 0.002,
|
||||
agingOverCapAttrition: 0.035,
|
||||
agingRestoreMinWear: 0.08,
|
||||
agingRestoreCostPerWear: 70,
|
||||
agingRestoreBudgetShare: 0.18
|
||||
maxCities: 1200,
|
||||
initialPopulation: 400,
|
||||
abandonmentPopulation: 200,
|
||||
populationScale: 10,
|
||||
foodProductionScale: 10,
|
||||
postShockRecoveryGrowth: 0.045,
|
||||
overCapacityAttrition: 0.020,
|
||||
naturalFoundingMinDistance: 6,
|
||||
naturalFoundingStartYears: 160,
|
||||
naturalFoundingIntervalYears: 5,
|
||||
naturalFoundingReferenceArea: 160 * 160,
|
||||
naturalFoundingMaxPerCycle: 8,
|
||||
foundingCompetitionRadius: 9,
|
||||
}),
|
||||
render: Object.freeze({
|
||||
graphThrottleMs: 1400,
|
||||
|
|
@ -42,7 +49,6 @@ historyWindowYears: 2000,
|
|||
historySamplePaddingYears: 240
|
||||
}),
|
||||
technology: Object.freeze({
|
||||
cityDiffusion: 0.0022,
|
||||
tradeDiffusion: 0.0032,
|
||||
cityInnovation: 0.00045
|
||||
}),
|
||||
|
|
@ -53,7 +59,47 @@ charismaMin: 0.5,
|
|||
charismaMax: 1.5,
|
||||
charismaAverage: 1.0,
|
||||
leaderTenureMinYears: 22,
|
||||
leaderTenureMaxYears: 72
|
||||
leaderTenureMaxYears: 72,
|
||||
foundingProtectionYears: 12,
|
||||
warCapitalDistanceStart: 18,
|
||||
warCapitalDistanceScale: 42,
|
||||
warDisconnectedTerritoryFactor: 0.42,
|
||||
institutionalAgingAnnualIncrease: 0.0015,
|
||||
institutionalReformThreshold: 0.30,
|
||||
institutionalReformBaseChance: 0.008,
|
||||
institutionalReformChanceScale: 0.10,
|
||||
institutionalReformMaxChance: 0.12,
|
||||
institutionalReformCooldownYears: 50,
|
||||
institutionalReformMinChange: -0.50,
|
||||
institutionalReformMaxChange: 0.30,
|
||||
treasuryCapPerPopulation: 0.30,
|
||||
treasuryCityFoundingChance: 0.14,
|
||||
treasuryCityFoundingCostRatio: 0.35,
|
||||
treasuryCityPopulationPerCost: 0.18,
|
||||
treasuryCityReservePerCost: 0.45,
|
||||
treasuryCityFoundingSearchRadius: 20,
|
||||
treasuryCitySiteScoreWindow: 6.0
|
||||
}),
|
||||
territory: Object.freeze({
|
||||
baseCityReach: 9,
|
||||
radiusScale: 0.5,
|
||||
cityPowerWeight: 1.8,
|
||||
capitalReachBonus: 1.5,
|
||||
ownershipSwitchMargin: 1.5,
|
||||
minimumInfluence: 2.4,
|
||||
fullMaintenanceCityPopulation: 2400,
|
||||
minimumPopulationSupport: 0.28,
|
||||
maintenancePressure: 4,
|
||||
supportSmoothing: 0.18,
|
||||
smallStateSwitchPenalty: 2.5
|
||||
}),
|
||||
rebellion: Object.freeze({
|
||||
participationLoyalty: 0.50,
|
||||
automaticLoyalty: 0.30,
|
||||
chanceScale: 0.20,
|
||||
maxAnnualChance: 0.16,
|
||||
conquestGraceYears: 20,
|
||||
treasuryTransferRate: 0.65
|
||||
}),
|
||||
campaign: Object.freeze({
|
||||
checkIntervalYears: 3,
|
||||
|
|
@ -64,7 +110,8 @@ maxActiveCampaigns: 12,
|
|||
frontierTargetChance: 0.35,
|
||||
nonStateTargetChance: 0.30,
|
||||
independentCityTargetChance: 0.20,
|
||||
polityTargetChance: 0.15,
|
||||
polityTargetChance: 0,
|
||||
independentCityPeacefulShare: 0.4,
|
||||
baseDurationYears: 8,
|
||||
maxDurationYears: 25,
|
||||
claimRadius: 8,
|
||||
|
|
@ -114,10 +161,14 @@ lowLoyaltyTransitPenalty: 0.012,
|
|||
foreignTransitPenalty: 0.008
|
||||
}),
|
||||
culture: Object.freeze({
|
||||
spreadRadius: 3,
|
||||
cityWeight: 0.035,
|
||||
routeWeight: 1.35,
|
||||
minimumInfluence: 0.18
|
||||
minimumInfluence: 0.18,
|
||||
divergenceRateMultiplier: 0.25,
|
||||
absorptionPopulationThreshold: 30,
|
||||
urbanSpreadRadius: 5,
|
||||
cityBlendRate: 0.045,
|
||||
routeBlendRate: 0.035,
|
||||
routeNeighborFactor: 0.35,
|
||||
cityTradeBlendRate: 0.015
|
||||
}),
|
||||
route: Object.freeze({
|
||||
maxRouteLength: 42,
|
||||
|
|
@ -136,17 +187,34 @@ routePheromoneMaintain: 0.12,
|
|||
routeUpkeepPerTile: 0.018,
|
||||
routeWeakThreshold: 8,
|
||||
routeUnsupportedDecay: 3,
|
||||
routeMaintainedBoost: 10
|
||||
routeMaintainedBoost: 10,
|
||||
manualProtectionYears: 25,
|
||||
manualProtectedStrength: 32,
|
||||
manualRouteMaxLength: 120,
|
||||
desertTraversalCostFactor: 0.68,
|
||||
desertRouteLengthBonus: 30,
|
||||
desertAdaptiveMaxRouteLength: 96,
|
||||
desertPheromoneThresholdFactor: 0.45,
|
||||
desertConstructionCostFactor: 0.72
|
||||
}),
|
||||
war: Object.freeze({
|
||||
damageMultiplier: 0.65,
|
||||
tickWeeks: 4,
|
||||
startChanceMultiplier: 3,
|
||||
maxActiveWars: 12,
|
||||
maxStartsPerTick: 4,
|
||||
minDurationWeeks: 12,
|
||||
idleEndWeeks: 24,
|
||||
cooldownWeeks: 24,
|
||||
decisiveScore: 6,
|
||||
pressureMemoryDecay: 0.88,
|
||||
cityDamageMinRate: 0.003,
|
||||
cityDamageMaxRate: 0.08,
|
||||
captureLossBase: 0.08,
|
||||
captureLossMax: 0.32,
|
||||
exhaustionPopulationLossBase: 0.0007,
|
||||
exhaustionPopulationLossMax: 0.012,
|
||||
warZoneTileLossRate: 0.006,
|
||||
cityDamageMinRate: 0.025,
|
||||
cityDamageMaxRate: 0.30,
|
||||
captureLossBase: 0.22,
|
||||
captureLossMax: 0.40,
|
||||
exhaustionPopulationLossBase: 0.003,
|
||||
exhaustionPopulationLossMax: 0.03,
|
||||
warZoneTileLossRate: 0.025,
|
||||
majorSettlementThreshold: 1.25
|
||||
}),
|
||||
disaster: Object.freeze({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue