Initial commit
**Motivations:** - Initialisation du versionning git pour le projet **Root causes:** - N/A (Nouveau projet) **Correctifs:** - N/A **Evolutions:** - Structure initiale du projet - Ajout du .gitignore **Pages affectées:** - Tous les fichiers
This commit is contained in:
236
web/js/config.js
Normal file
236
web/js/config.js
Normal file
@@ -0,0 +1,236 @@
|
||||
/** @type {{ DataStoreName: string, StateVersion: number, IncomeTickMs: number, SaveIntervalMs: number, Plot: object, Conveyor: object, Mutation: object, Events: object, Visitor: object, Time: object, Weather: object, Quests: object, Prestige: object }} */
|
||||
export const GameConfig = {
|
||||
DataStoreName: "BuildAZooWeb_v1",
|
||||
StateVersion: 2,
|
||||
/** Game loop interval (ms). Minimum 5000 to limit DB/API load. */
|
||||
IncomeTickMs: 5000,
|
||||
/** Save to localStorage/API at most every this many ms. */
|
||||
SaveIntervalMs: 5000,
|
||||
|
||||
Plot: {
|
||||
BaseWidth: 6,
|
||||
BaseHeight: 6,
|
||||
MaxLevel: 8,
|
||||
ExpandByLevel: 2,
|
||||
BaseUpgradeCost: 300,
|
||||
UpgradeGrowth: 1.7,
|
||||
},
|
||||
|
||||
Conveyor: {
|
||||
MaxLevel: 8,
|
||||
BaseUpgradeCost: 250,
|
||||
UpgradeGrowth: 1.65,
|
||||
OfferCount: 3,
|
||||
/** Min seconds between conveyor offer refresh. >= 5 to limit load. */
|
||||
RefreshSeconds: 8,
|
||||
},
|
||||
|
||||
WorldMap: {
|
||||
Zoos: [
|
||||
{ id: "player", name: "Mon zoo", x: 25, y: 50, animalWeights: { Basic: 1, Ocean: 0, Mountain: 0 } },
|
||||
{ id: "zoo_nord", name: "Zoo du Nord", x: 75, y: 15, animalWeights: { Basic: 2, Ocean: 1, Mountain: 1 } },
|
||||
{ id: "zoo_est", name: "Zoo de l'Est", x: 85, y: 55, animalWeights: { Basic: 1, Ocean: 2, Mountain: 0 } },
|
||||
{ id: "zoo_sud", name: "Zoo du Sud", x: 50, y: 85, animalWeights: { Basic: 1, Ocean: 1, Mountain: 2 } },
|
||||
{ id: "zoo_ouest", name: "Zoo de l'Ouest", x: 15, y: 25, animalWeights: { Basic: 2, Ocean: 0, Mountain: 1 } },
|
||||
],
|
||||
Cities: [
|
||||
{ id: "ville_nord", name: "Ville du Nord", x: 80, y: 10, maxVisitorsTowardZoos: 80 },
|
||||
{ id: "ville_sud", name: "Ville du Sud", x: 45, y: 90, maxVisitorsTowardZoos: 80 },
|
||||
{ id: "ville_centre", name: "Ville centrale", x: 50, y: 50, maxVisitorsTowardZoos: 100 },
|
||||
],
|
||||
Laboratory: { x: 50, y: 20, name: "Laboratoire" },
|
||||
TruckAnimationMs: 2500,
|
||||
NpcTruckIntervalMs: 8000,
|
||||
MapUpgrade: {
|
||||
MaxLevel: 5,
|
||||
BaseUpgradeCost: 350,
|
||||
UpgradeGrowth: 1.5,
|
||||
/** Cost in research points per level (agrandissement carte). */
|
||||
BaseResearchCost: 15,
|
||||
ResearchUpgradeGrowth: 1.6,
|
||||
},
|
||||
},
|
||||
|
||||
Bots: {
|
||||
/** Max distance (in map %) to consider a zoo as neighbor for color weights. */
|
||||
NeighborMaxDistance: 35,
|
||||
/** Min seconds between two decision ticks per bot. */
|
||||
TickIntervalMinSeconds: 8,
|
||||
TickIntervalMaxSeconds: 25,
|
||||
/** Initial coins range for new bots. */
|
||||
InitialCoinsMin: 150,
|
||||
InitialCoinsMax: 450,
|
||||
},
|
||||
|
||||
Truck: {
|
||||
MaxLevel: 7,
|
||||
BaseUpgradeCost: 400,
|
||||
UpgradeGrowth: 1.5,
|
||||
},
|
||||
|
||||
School: {
|
||||
MaxLevel: 8,
|
||||
BaseUpgradeCost: 250,
|
||||
UpgradeGrowth: 1.65,
|
||||
},
|
||||
|
||||
/** Centre de recherche (Rappel grandes règles): 7 niveaux, unités de recherche pour agrandir la carte, 10 zoos/unité. */
|
||||
Research: {
|
||||
MaxLevel: 7,
|
||||
ZoosPerUnit: 10,
|
||||
BuildCost: 300,
|
||||
BaseUpgradeCost: 320,
|
||||
UpgradeGrowth: 1.6,
|
||||
PointsPerTickPerLevel: 0.1,
|
||||
},
|
||||
|
||||
/** Billeterie: 7 niveaux, 20 visiteurs/unité en simultané. */
|
||||
Billeterie: {
|
||||
MaxLevel: 7,
|
||||
VisitorsPerUnit: 20,
|
||||
BuildCost: 280,
|
||||
BaseUpgradeCost: 280,
|
||||
UpgradeGrowth: 1.55,
|
||||
},
|
||||
|
||||
/** Nourriture: 7 niveaux, 5 animaux/unité. */
|
||||
Food: {
|
||||
MaxLevel: 7,
|
||||
AnimalsPerUnit: 5,
|
||||
BuildCost: 260,
|
||||
BaseUpgradeCost: 260,
|
||||
UpgradeGrowth: 1.5,
|
||||
/** Seconds without being fed before the animal dies. */
|
||||
MaxSecondsWithoutFood: 120,
|
||||
},
|
||||
|
||||
/** Accueil nouveaux animaux: 7 niveaux, 1 animal/unité. */
|
||||
Reception: {
|
||||
MaxLevel: 7,
|
||||
AnimalsPerUnit: 1,
|
||||
BuildCost: 240,
|
||||
BaseUpgradeCost: 240,
|
||||
UpgradeGrowth: 1.55,
|
||||
AcclimatationSecondsBase: 45,
|
||||
/** Seconds a ready animal can wait without being placed before dying. */
|
||||
MaxSecondsReadyNotPlaced: 90,
|
||||
},
|
||||
|
||||
/** Changement de milieu (couleur): 7 niveaux, payant. */
|
||||
BiomeChangeColor: {
|
||||
MaxLevel: 7,
|
||||
BuildCost: 340,
|
||||
BaseUpgradeCost: 350,
|
||||
UpgradeGrowth: 1.6,
|
||||
},
|
||||
|
||||
/** Changement de milieu (température): 7 niveaux, payant. */
|
||||
BiomeChangeTemp: {
|
||||
MaxLevel: 7,
|
||||
BuildCost: 340,
|
||||
BaseUpgradeCost: 350,
|
||||
UpgradeGrowth: 1.6,
|
||||
},
|
||||
|
||||
Mutation: {
|
||||
BaseChance: 0.06,
|
||||
},
|
||||
|
||||
Events: [],
|
||||
|
||||
Visitor: {
|
||||
BasePaymentPerVisitor: 0.15,
|
||||
VisitorsPerAnimal: 1.2,
|
||||
PlotLevelBonus: 0.1,
|
||||
StagnationDecayAfterSeconds: 60,
|
||||
StagnationDecayPerMinute: 0.05,
|
||||
CityAttractionScale: 0.002,
|
||||
AnimalValueScale: 0.00015,
|
||||
/** Seconds without any visitor on the cell before the animal disappears. */
|
||||
MaxSecondsWithoutVisit: 300,
|
||||
/** Multiplier bonus per souvenir shop level applied to payment per visitor (e.g. 0.2 = +20% per shop). */
|
||||
SouvenirShopBonusPerShop: 0.2,
|
||||
/** Chance per visitor to be a luxury guest (0–1). */
|
||||
LuxuryGuestChance: 0.08,
|
||||
/** Entry payment multiplier for luxury guests. */
|
||||
LuxuryEntryMultiplier: 3,
|
||||
/** Extra shop spending multiplier for luxury guests (applied on top of normal shop bonus). */
|
||||
LuxuryShopMultiplier: 2.5,
|
||||
/** Attractivity: penalty per recent death (subtracted from score). */
|
||||
AttractivityDeathPenalty: 0.5,
|
||||
/** Attractivity: bonus per birth (added to score). */
|
||||
AttractivityBirthBonus: 0.2,
|
||||
/** Extra stay time per souvenir shop level (e.g. 0.15 = +15% per level). Uses Time.DayLengthSeconds for base 1 day. */
|
||||
StayMultiplierPerShopLevel: 0.15,
|
||||
/** Extra stay time per distinct animal species (e.g. 0.02 = +2% per species). */
|
||||
StayMultiplierPerSpecies: 0.02,
|
||||
/** Incident (soif, poubelle, banc, animal loin, photo): base chance per visitor per tick when not in wait phase. */
|
||||
IncidentChanceBase: 0.002,
|
||||
/** Multiplier to incident chance when in wait phase (truck, sale pending, etc.). */
|
||||
IncidentChanceWaitMultiplier: 4,
|
||||
/** Seconds before unresolved incident: visitor leaves and attractivity penalty applied. */
|
||||
IncidentTimeoutSeconds: 45,
|
||||
/** Attractivity bonus when player resolves an incident. */
|
||||
IncidentResolveAttractivityBonus: 0.15,
|
||||
/** Coin bonus when player resolves an incident. */
|
||||
IncidentResolveCoinBonus: 8,
|
||||
/** Attractivity penalty when incident times out unresolved. */
|
||||
IncidentUnresolvedAttractivityPenalty: 0.2,
|
||||
},
|
||||
|
||||
Nursery: {
|
||||
BuildCost: 200,
|
||||
MaxLevel: 7,
|
||||
BaseUpgradeCost: 180,
|
||||
UpgradeGrowth: 1.5,
|
||||
/** Seconds for a baby to become mature (divided by nursery level). */
|
||||
GrowthSecondsBase: 40,
|
||||
/** Seconds a mature baby can wait without being placed before dying. */
|
||||
MaxSecondsMatureNotPlaced: 90,
|
||||
},
|
||||
|
||||
/** Reproduction: delay between pair detection and baby birth; reduced by zoo score and biome/temp fit. */
|
||||
Reproduction: {
|
||||
/** Base seconds until baby is born for an eligible pair. */
|
||||
BaseSeconds: 60,
|
||||
/** Max Manhattan distance between blocks to count as adjacent (1 = edge-adjacent only). */
|
||||
MaxDistance: 1,
|
||||
},
|
||||
|
||||
SouvenirShop: {
|
||||
BuildCost: 250,
|
||||
MaxLevel: 7,
|
||||
BaseUpgradeCost: 220,
|
||||
UpgradeGrowth: 1.55,
|
||||
},
|
||||
|
||||
Time: {
|
||||
DayLengthSeconds: 120,
|
||||
PhaseShift: 0,
|
||||
},
|
||||
|
||||
Weather: {
|
||||
ChangeIntervalSeconds: 45,
|
||||
RainChance: 0.25,
|
||||
CloudyChance: 0.35,
|
||||
},
|
||||
|
||||
Quests: {
|
||||
CountPerDay: 3,
|
||||
RewardBase: 50,
|
||||
RewardPerLevel: 20,
|
||||
},
|
||||
|
||||
Prestige: {
|
||||
IncomeBonusPerLevel: 0.15,
|
||||
MinCoinsToReset: 5000,
|
||||
},
|
||||
|
||||
/** Phase 10: sale listings (baby/animal on truck → world map). Bébé invendu meurt après ce délai. */
|
||||
Sale: {
|
||||
/** Seconds until a listing expires if not sold. After expiry, baby dies (deathCountRecent). */
|
||||
ListingDurationSeconds: 3600,
|
||||
/** Default asking price for a baby or animal put on sale. */
|
||||
DefaultPrice: 50,
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user