From 09c59f3546567aebe7ab66546f02d6fc0f487b77 Mon Sep 17 00:00:00 2001 From: Robert Konigsberg Date: Fri, 2 Sep 2022 01:09:44 -0400 Subject: [PATCH] # This is a combination of 12 commits. # This is the 1st commit message: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move playCorporationCard to Player, where it belongs. Merge with merger code. # This is the commit message #2: Provide Card2, bespokeCanPlay, & bespokePlay. This is going to be cleaner and easier to manage than the current approach. This removes most uses of `migrated`. The rest will come shortly. # This is the commit message #3: Fix sqlite3 async purgeUnfinishedGames. 1. purgeUnfinishedGames wasn't finished for SQLite, so this finishes it. # This is the commit message #4: Rename "money production" to "M€ production" # This is the commit message #5: Remove translations.json. It shouldn't be generated again. # This is the commit message #6: Present user with ability to go to the map when selecting a space. Fixes #2584 # This is the commit message #7: Update src/client/components/waitingFor/GoToMap.vue Co-authored-by: Brian Folts # This is the commit message #8: CEO's Fav. Proj. may not be used on robot cards. # This is the commit message #9: Game end / Game log features 1. Add "Download game log". 2. Clean up some translations. 3. Make spectator able to see the game log. # This is the commit message #10: When fetching game-end logs too soon, return bad request instead of internal error. # This is the commit message #11: Log Venus increase from Ambient corp. Meanwhile, for other cards that increase Venus, make sure it logs the amount actually raised. # This is the commit message #12: Remove unnecessary type declarations --- src/client/components/App.ts | 4 +- src/client/components/Board.vue | 2 +- src/client/components/GameEnd.vue | 314 +++++++++--------- .../card/CardRenderItemComponent.vue | 2 +- src/client/components/moon/MoonBoard.vue | 2 +- .../components/overview/PlayersOverview.vue | 6 +- src/locales/br/game_end.json | 4 +- src/locales/cn/game_end.json | 8 +- src/locales/de/game_end.json | 4 +- src/locales/es/game_end.json | 4 +- src/locales/it/game_end.json | 6 +- src/locales/ko/game_end.json | 4 +- src/locales/pl/game_end.json | 4 +- src/locales/ru/game_end.json | 6 +- src/server/Game.ts | 18 +- src/server/LogHelper.ts | 8 +- src/server/MilestoneAwardSelector.ts | 4 +- src/server/Player.ts | 22 +- src/server/awards/Adapter.ts | 4 +- src/server/awards/Banker.ts | 4 +- src/server/awards/Benefactor.ts | 4 +- src/server/awards/Botanist.ts | 4 +- src/server/awards/Celebrity.ts | 4 +- src/server/awards/Contractor.ts | 4 +- src/server/awards/Coordinator.ts | 4 +- src/server/awards/CosmicSettler.ts | 4 +- src/server/awards/Cultivator.ts | 4 +- src/server/awards/DesertSettler.ts | 4 +- src/server/awards/Edgedancer.ts | 4 +- src/server/awards/Entrepreneur.ts | 4 +- src/server/awards/EstateDealer.ts | 4 +- src/server/awards/Excentric.ts | 6 +- src/server/awards/Hoarder.ts | 4 +- src/server/awards/Industrialist.ts | 4 +- src/server/awards/Landlord.ts | 6 +- src/server/awards/Magnate.ts | 4 +- src/server/awards/Manufacturer.ts | 4 +- src/server/awards/Miner.ts | 4 +- src/server/awards/Naturalist.ts | 4 +- src/server/awards/Scientist.ts | 4 +- src/server/awards/SpaceBaron.ts | 4 +- src/server/awards/Thermalist.ts | 4 +- src/server/awards/Venuphile.ts | 4 +- src/server/awards/Voyager.ts | 4 +- src/server/awards/Zoologist.ts | 4 +- src/server/awards/amazonisPlanitia/Curator.ts | 4 +- .../awards/amazonisPlanitia/Engineer.ts | 4 +- .../awards/amazonisPlanitia/Historian.ts | 4 +- src/server/awards/amazonisPlanitia/Tourist.ts | 4 +- .../awards/amazonisPlanitia/Zoologist.ts | 6 +- src/server/awards/terraCimmeria/Biologist.ts | 4 +- src/server/awards/terraCimmeria/Economizer.ts | 4 +- src/server/awards/terraCimmeria/Politician.ts | 4 +- src/server/awards/terraCimmeria/Urbanist.ts | 4 +- src/server/awards/terraCimmeria/Warmonger.ts | 4 +- src/server/cards/CardRequirement.ts | 2 +- src/server/cards/base/Capital.ts | 2 +- src/server/cards/base/CommercialDistrict.ts | 2 +- src/server/cards/base/Decomposers.ts | 2 +- src/server/cards/base/EcologicalZone.ts | 6 +- src/server/cards/base/Fish.ts | 2 +- src/server/cards/base/GHGProducingBacteria.ts | 2 +- src/server/cards/base/Herbivores.ts | 2 +- src/server/cards/base/IndustrialCenter.ts | 2 +- src/server/cards/base/LavaFlows.ts | 2 +- src/server/cards/base/MediaArchives.ts | 2 +- src/server/cards/base/MiningArea.ts | 2 +- src/server/cards/base/MiningRights.ts | 2 +- src/server/cards/base/MoholeArea.ts | 2 +- src/server/cards/base/NaturalPreserve.ts | 2 +- .../cards/base/NitriteReducingBacteria.ts | 2 +- src/server/cards/base/NuclearZone.ts | 4 +- src/server/cards/base/OlympusConference.ts | 2 +- src/server/cards/base/Pets.ts | 2 +- src/server/cards/base/PhysicsComplex.ts | 2 +- src/server/cards/base/Predators.ts | 2 +- src/server/cards/base/RestrictedArea.ts | 2 +- src/server/cards/colonies/AtmoCollectors.ts | 2 +- src/server/cards/colonies/JovianLanterns.ts | 2 +- .../cards/colonies/JupiterFloatingStation.ts | 2 +- src/server/cards/colonies/MartianZoo.ts | 2 +- .../cards/colonies/MolecularPrinting.ts | 2 +- .../cards/colonies/PioneerSettlement.ts | 2 +- .../cards/colonies/QuantumCommunications.ts | 2 +- .../cards/colonies/RedSpotObservatory.ts | 2 +- src/server/cards/colonies/RefugeeCamps.ts | 2 +- src/server/cards/colonies/SpacePort.ts | 2 +- src/server/cards/colonies/SpacePortColony.ts | 2 +- src/server/cards/colonies/SubZeroSaltFish.ts | 2 +- .../cards/colonies/TitanAirScrapping.ts | 2 +- .../cards/colonies/TitanFloatingLaunchPad.ts | 2 +- src/server/cards/colonies/TitanShuttles.ts | 2 +- src/server/cards/colonies/UrbanDecomposers.ts | 2 +- src/server/cards/community/Playwrights.ts | 2 +- src/server/cards/moon/AncientShipyards.ts | 2 +- src/server/cards/moon/LunaEcumenopolis.ts | 2 +- src/server/cards/moon/LunarObservationPost.ts | 2 +- .../AdhaiHighOrbitConstructions.ts | 2 +- src/server/cards/pathfinders/Ambient.ts | 4 +- .../cards/pathfinders/CassiniStation.ts | 2 +- src/server/cards/promo/BactoviralResearch.ts | 2 +- src/server/cards/promo/Philares.ts | 12 +- src/server/cards/venusNext/AerialMappers.ts | 2 +- src/server/cards/venusNext/DeuteriumExport.ts | 2 +- src/server/cards/venusNext/Dirigibles.ts | 2 +- .../cards/venusNext/ExtractorBalloons.ts | 6 +- src/server/cards/venusNext/Extremophiles.ts | 2 +- src/server/cards/venusNext/FloatingHabs.ts | 2 +- .../cards/venusNext/ForcedPrecipitation.ts | 6 +- src/server/cards/venusNext/HydrogenToVenus.ts | 2 +- .../venusNext/JetStreamMicroscrappers.ts | 6 +- src/server/cards/venusNext/LocalShading.ts | 2 +- src/server/cards/venusNext/RotatorImpacts.ts | 2 +- src/server/cards/venusNext/Stratopolis.ts | 2 +- .../cards/venusNext/StratosphericBirds.ts | 2 +- .../cards/venusNext/SulphurEatingBacteria.ts | 4 +- src/server/cards/venusNext/Thermophiles.ts | 2 +- src/server/cards/venusNext/VenusianAnimals.ts | 2 +- src/server/cards/venusNext/VenusianInsects.ts | 2 +- src/server/colonies/ColonyDealer.ts | 2 +- src/server/database/PostgreSQL.ts | 2 +- src/server/database/SQLite.ts | 8 +- src/server/genfiles/translations.json | 2 +- src/server/milestones/Builder.ts | 4 +- src/server/milestones/Businessperson.ts | 4 +- src/server/milestones/Capitalist.ts | 4 +- src/server/milestones/Diversifier.ts | 4 +- src/server/milestones/Ecologist.ts | 4 +- src/server/milestones/Economizer.ts | 4 +- src/server/milestones/Electrician.ts | 4 +- src/server/milestones/Energizer.ts | 4 +- src/server/milestones/Gardener.ts | 4 +- src/server/milestones/Generalist.ts | 8 +- src/server/milestones/Hoverlord.ts | 6 +- src/server/milestones/Irrigator.ts | 4 +- src/server/milestones/LandSpecialist.ts | 4 +- src/server/milestones/Legend.ts | 4 +- src/server/milestones/Martian.ts | 4 +- src/server/milestones/Mayor.ts | 4 +- src/server/milestones/Networker.ts | 4 +- src/server/milestones/Pioneer.ts | 4 +- src/server/milestones/Planner.ts | 4 +- src/server/milestones/PolarExplorer.ts | 4 +- src/server/milestones/RimSettler.ts | 4 +- src/server/milestones/Smith.ts | 4 +- src/server/milestones/Specialist.ts | 4 +- src/server/milestones/Tactician.ts | 4 +- src/server/milestones/Terraformer.ts | 4 +- src/server/milestones/Tradesman.ts | 4 +- src/server/milestones/Tycoon.ts | 4 +- .../milestones/amazonisPlanitia/Colonizer.ts | 4 +- .../milestones/amazonisPlanitia/Farmer.ts | 4 +- .../milestones/amazonisPlanitia/Minimalist.ts | 4 +- .../milestones/amazonisPlanitia/Terran.ts | 4 +- .../amazonisPlanitia/Tropicalist.ts | 4 +- .../milestones/terraCimmeria/Collector.ts | 4 +- .../milestones/terraCimmeria/Firestarter.ts | 4 +- .../milestones/terraCimmeria/Gambler.ts | 4 +- .../milestones/terraCimmeria/Spacefarer.ts | 4 +- .../milestones/terraCimmeria/TerraPioneer.ts | 6 +- src/server/models/ServerModel.ts | 2 +- src/server/moon/FullMoon.ts | 4 +- src/server/moon/LunarMagnate.ts | 4 +- src/server/moon/Lunarchitect.ts | 4 +- src/server/moon/MoonExpansion.ts | 6 +- src/server/moon/OneGiantStep.ts | 4 +- src/server/moon/PlaceMoonRoadTile.ts | 2 +- src/server/player/Tags.ts | 2 +- src/server/routes/ApiGameLogs.ts | 34 +- src/server/routes/Game.ts | 2 +- src/server/routes/GameLogs.ts | 40 +-- src/server/tools/check_locales.ts | 2 +- src/server/turmoil/Turmoil.ts | 4 +- .../turmoil/globalEvents/JovianTaxRights.ts | 2 +- .../MicrogravityHealthProblems.ts | 2 +- src/server/turmoil/parties/Greens.ts | 44 +-- src/server/turmoil/parties/Kelvinists.ts | 42 +-- src/server/turmoil/parties/MarsFirst.ts | 44 +-- src/server/turmoil/parties/Reds.ts | 46 +-- src/server/turmoil/parties/Scientists.ts | 44 +-- src/server/turmoil/parties/Unity.ts | 10 +- tests/Game.spec.ts | 3 +- tests/common/FakeClock.ts | 2 +- tests/database/GameLoader.spec.ts | 4 +- tests/routes/ApiGameLogs.spec.ts | 23 ++ tests/routes/HttpMocks.ts | 4 +- tests/routes/RouteTestScaffolding.ts | 4 +- 187 files changed, 673 insertions(+), 617 deletions(-) diff --git a/src/client/components/App.ts b/src/client/components/App.ts index 42d37e6a08..85047582a3 100644 --- a/src/client/components/App.ts +++ b/src/client/components/App.ts @@ -118,7 +118,7 @@ export const mainAppSettings = { return (this as unknown as typeof mainAppSettings.data).componentsVisibility[targetVar] ? true : false; }, update(path: '/player' | '/spectator'): void { - const currentPathname: string = window.location.pathname; + const currentPathname = window.location.pathname; const xhr = new XMLHttpRequest(); const app = this as unknown as typeof mainAppSettings.data; @@ -183,7 +183,7 @@ export const mainAppSettings = { mounted() { document.title = constants.APP_NAME; if (!windowHasHTMLDialogElement()) dialogPolyfill.default.registerDialog(document.getElementById('alert-dialog')); - const currentPathname: string = window.location.pathname; + const currentPathname = window.location.pathname; const app = this as unknown as (typeof mainAppSettings.data) & (typeof mainAppSettings.methods); if (currentPathname === '/player') { app.updatePlayer(); diff --git a/src/client/components/Board.vue b/src/client/components/Board.vue index 381e29d799..f0a4024db5 100644 --- a/src/client/components/Board.vue +++ b/src/client/components/Board.vue @@ -312,7 +312,7 @@ export default Vue.extend({ throw new Error('Wrong parameter to get values from: ' + targetParameter); } - for (let value: number = endValue; value >= startValue; value -= step) { + for (let value = endValue; value >= startValue; value -= step) { strValue = (targetParameter === 'temperature' && value > 0) ? '+'+value : value.toString(); values.push( new GlobalParamLevel(value, value === curValue, strValue), diff --git a/src/client/components/GameEnd.vue b/src/client/components/GameEnd.vue index 9b92bfc567..e7ec6272c9 100644 --- a/src/client/components/GameEnd.vue +++ b/src/client/components/GameEnd.vue @@ -1,164 +1,165 @@