1.4.0 • Published 1 month ago
@slk333/lib-ogame v1.4.0
Various functions and types related to the original Ogame browser game.
costs
mines and facilities
getStructureUpgradeCost("crystalMine", 9)
/* { metalAmount: 2061, crystalAmount: 1030, deuteriumAmount: 0 } */
ships and defenses
getShipCost("lightFighter")
/* { metalAmount: 3000, crystalAmount: 1000, deuteriumAmount: 0 } */
getDefenseCost("rocketLauncher")
/* { metalAmount: 2000, crystalAmount: 0, deuteriumAmount: 0 } */
construction time
mines and facilities
getStructureConstructionTime({
structureName: "researchLab",
level: 5,
roboticsFactory: 3,
naniteFactory: 0,
})
/* 2304 seconds*/
ships and defenses
getShipConstructionTime({
shipName: "lightFighter",
shipyard: 5,
naniteFactory: 1,
})
/* 480 seconds*/
getDefenseConstructionTime({
defenseName: "rocketLauncher",
shipyard: 5,
naniteFactory: 1,
})
/* 240 seconds*/
// DEPRECATED: Use getShipConstructionTime or getDefenseConstructionTime instead
getShipyardUnitConstructionTime(
{ name: "lightFighter", type: "ship" },
5, // shipyardLevel
1 // naniteLevel
)
/* 480 seconds*/
production
getMetalMineProduction_s(25)
/* 2.25694444 metal per second */
getCrystalMineProduction_s(25)
/* 1.50472222 crystal per second */
getDeuteriumProduction_s(25)
/* 1.08333333 deuterium per second */
/* fixed temperature: 0°C */
derive data from planet
resources at date
computeResourcesForPlanetAtDate(planet, date)
/* { metalAmount: 51908, crystalAmount: 25767, deuteriumAmount: 10372 }
/* expects a Date */
production
computeProductionForPlanet(planet)
/* { metalProduction_s: 0.5302, crystalProduction_s: 0.2133, deuteriumProduction_s: 0.1036 } */
costs and durations
computeStructureUpgradeCostForPlanet(planet, "metalMine")
/* { metalAmount: 26273, crystalAmount: 6568, deuteriumAmount: 0 } */
computeStructureUpgradeTimeForPlanet(planet, "metalMine")
/* 1970 seconds */
planet shape
export interface Planet {
id: string
name: string
owner: {
id: string
name: string
}
coordinates: Coordinates
structures: Record<StructureName, PlanetStructure>
ships: Record<ShipName, { name: ShipName; count: number }>
resources: ResourcesRecord
snapshotDate: string
pendingStructure: {
name: StructureName
completionDate: string
} | null
pendingShipyardUnit: {
shipyardUnit: ShipyardUnit
completionDate: string
} | null
structureQueue: StructureName[]
shipyardQueue: ScheduledShipyardOrder[]
}
const samplePlanet: Planet = {
id: "planetAlpha",
name: "Alpha Centauri Bb",
owner: {
id: "player123",
name: "GalacticOverlord",
},
coordinates: { galaxy: 1, system: 100, position: 7, type: "planet" },
structures: {
metalMine: { name: "metalMine", level: 15 },
crystalMine: { name: "crystalMine", level: 12 },
deuteriumSynthesizer: { name: "deuteriumSynthesizer", level: 10 },
roboticsFactory: { name: "roboticsFactory", level: 5 },
shipyard: { name: "shipyard", level: 6 },
researchLab: { name: "researchLab", level: 7 },
naniteFactory: { name: "naniteFactory", level: 2 },
},
ships: {
lightFighter: { name: "lightFighter", count: 50 },
heavyFighter: { name: "heavyFighter", count: 0 },
cruiser: { name: "cruiser", count: 0 },
/* ... */
},
resources: { metalAmount: 50000, crystalAmount: 25000, deuteriumAmount: 10000 },
snapshotDate: new Date("2025-05-29T10:00:00.000Z").toISOString(),
pendingStructure: null,
pendingShipyardUnit: null,
structureQueue: [],
shipyardQueue: [],
}
misc
Format resources
formatResourceAmount(1234567)
/* "1.2M" */
1.2.0
2 months ago
1.0.1
2 months ago
1.0.0
2 months ago
1.4.0
1 month ago
0.5.0
8 months ago
0.7.0
4 months ago
0.4.20
8 months ago
1.1.0
2 months ago
0.4.21
8 months ago
1.3.0
2 months ago
0.4.19
8 months ago
0.4.17
8 months ago
0.4.18
8 months ago
0.4.15
8 months ago
0.4.16
8 months ago
0.6.3
8 months ago
0.8.0
2 months ago
0.6.2
8 months ago
0.6.5
8 months ago
0.6.4
8 months ago
0.6.1
8 months ago
0.6.0
8 months ago
0.4.9
10 months ago
0.4.8
10 months ago
0.4.10
10 months ago
0.4.13
10 months ago
0.4.14
10 months ago
0.4.11
10 months ago
0.4.12
10 months ago
0.3.0
11 months ago
0.2.1
11 months ago
0.2.0
11 months ago
0.4.5
11 months ago
0.4.4
11 months ago
0.4.7
11 months ago
0.4.6
11 months ago
0.4.1
11 months ago
0.2.3
11 months ago
0.4.0
11 months ago
0.3.1
11 months ago
0.2.2
11 months ago
0.4.3
11 months ago
0.4.2
11 months ago
0.1.4
2 years ago
0.1.3
2 years ago
0.1.6
2 years ago
0.1.5
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.1.0
2 years ago