Skip to content

(do not merge) - used to see diff between AdvCiv-SAS and base AdvCiv 1.14 - #39

Open
wonderingabout wants to merge 1895 commits into
1.14from
main
Open

(do not merge) - used to see diff between AdvCiv-SAS and base AdvCiv 1.14#39
wonderingabout wants to merge 1895 commits into
1.14from
main

Conversation

@wonderingabout

Copy link
Copy Markdown
Owner

continuation of PR #13 now that tech-rework has been renamed to main, and then of PR #34 now that Base AdvCiv latest upstream branch is as of now 1.14

…o low-value Longbowman) (prefer as of now stronger Military Instructor or Military Academy)

- Add tunable high minimum gates for Great General unit-attachment paths.
…gitattributes)

- Make SASGameSummary free-text fields parser-safe (e.g., key="my city name") (keep enum/type/count fields unquoted for simple key=value parsing).
- Document using the light source ZIP alongside SASGameSummary logs for better LLM analysis.
…repare against a clearly farther target (KI#182)

- Keep the guard narrow so equal-distance, closer, and naval/island target choices remain ordinary UWAI.
…nt Space winners survive: no war before fixing this (regardless of whether AI was very strong militarily like in the Ramesses run or very weak like in the Lincoln run), then even after the initial fix wars were still too-late, too-short, or too-low-impact (KI#184)
- Treat high-completion stage-3 Space leaders near the parts leader as pre-countdown victory threats.
- Apply the same predicate to UWAI utility, direct-war gates, and peace refusal.
…nore promising fogged nearby city-site alternatives and then follow stale cached targets after scouting (KI#185)

- After exploration, it may turn out that the new site may not have been better, and also that the old one was in fact better suited, so the settler wants to argue and to try to choose what seems best
- Minor reorder BBAI settler/found so they are together and order is more natural and less error-prone
…e flip-flopp and prevent unsustainable faraway city retention: use AI_isSASCityLikelyToBenefitUsLongTerm instead (KI#186)
…faraway captured-city razes (KI#186.2)

- also confirmed increasing farway distance tolerance from 8 to 9 is too greedy and hurt the AI so reverted as was
…nuses in AI city-site scoring (KI#187)

- Replace the arbitrary 70% / roughly 33% values with an XML-tunable 15% loss per later connection era. Bonuses connectable in the current or an earlier era retain full health/happiness value.
…-stack decisions, Great Person use, and espionage actions
…inst Barbarian cities could park 65-82% of an AI's military or prevent capable attackers from forming city-assault expeditions (KI#188)
…missed defensive reinforcement opportunities
…re nearby endangered cities instead of going back to try to help defending them (KI#188.2)
…hout a reachable target or war plan could keep waiting for reinforcements indefinitely and park 40-53% of an AI's military (KI#188.3)

- Add BBAI diagnostics for war plans, area targets, and assault transport rejection reasons for concentrated city-assault armies
…el or redirect most war preparations before they became wars (KI#189)
…i-wars and internally accept blocked victory-denial treaties (KI#65, KI#184)

- Replace the blunt 3-war emergency with tunable combined-enemy danger and end the least valuable negotiable war first
- Reject victory-denial peace before UWAI and deal processing while keeping capitulation available
- Add BBAI diagnostics for premature peace, weak-war opportunities, and ineffective victory-denial treaties
…pounding random peace rolls and excessive future-war costs could prematurely end profitable campaigns (KI#189.2)

- Add BBAI diagnostics for UWAI utility aspects for suspicious peace reviews
…te the launch countdown on other cities and routine actions instead of trying to capture the spaceship owner's capital (KI#190)

- Split targetless peaceful city-assault grouping into SAS_AI_TARGETLESS_PEACEFUL_ATTACK_CITY_GROUP_MIN_UNITS instead of sharing SAS_MIN_ATTACK_CITY_STACK_UNITS, because peacetime army organization and minimum attack readiness are separate decisions that should be tunable independently.
- Add BBAI diagnostics for anti-Space capital targeting and make Base AdvCiv's pre-launch capital bonus tunable
…ld reject the best war target and then select a much worse rival (KI#191)
…rogress, exploration, and map/environment history
…rogress, and compact full-map revelation; add WarDeclarationCause shared enum
…ty Barbarian cleanup for rivals (KI#188.4-188.5)

- (Fixed) Base AdvCiv/K-Mod bug: AI armies preparing war against a civilization could still be classified as hunting only Barbarian cities (KI#188.4)
- (Improved) AI armies could waste their strength razing distant Barbarian cities instead of leaving Barbarian pressure to weaken nearer rivals and remaining available for offense or defense (KI#188.5)
…-SAS production safety gap could strand Workers and other land civilians where they had no use (KI#192)

- The AI worker desperately wanted to go to the island but it has no job to do there (lazy island for the worker, or to the worker, or lazy worker maybe xd, 14 times as per the doc), but the island may have tasks to do now or in future eras that may attract the AI worker to go to it, if the AI Worker has compatible tasks, and if the AI player who owns this island requests it.
… completed secondary landmasses (KI#192 follow-up)
…cile C++ audit C018-WIP04

- KI#503 (SAS): include currently available irrigated Farm food in low-food BFC valuation without assuming future irrigation chains
- KI#504 (AdvCiv): replace existing improvement count as a build-capability proxy with current Build technology, feature-removal technology and plot-legality checks
- KI#505 (AdvCiv): report the freshly computed unrevealed BFC tile count in found-value diagnostics
- validate the repaired Debug-opt DLL through a successful full Continents autoplay
- reconcile the C++ File Audit Album through C018-WIP04, including the strengthened KI#523 evidence and provisional KI#524
- document the local K-Mod 1.46 master snapshot as an additional current-source comparison control

Investigated through the C++ File Audit Album with the help of ChatGPT-5.6-Sol and independently reviewed, fixed, tested and documented with the help of GPT-5.6-Sol, thanks.
…nherited KI#521-KI#524.6 defects; reconcile C++ audit album C019-WIP11

- KI#521 (AdvCiv): remove the stale debug assertion that rejected legal human bombardment of an undefended city
- KI#522 (AdvCiv-SAS KI#319): include cargo changes when deciding whether a missionless transport group made progress
- KI#524 (AdvCiv-SAS KI#319): include group membership changes when a non-head bombard unit detaches successfully
- KI#524.2 (BtS/K-Mod/AdvCiv): validate placement before Spy state and border ownership in spy-border verification
- KI#524.3 (AdvCiv-SAS): exclude unplaced objects before WAR military-posture combat classification
- KI#524.4 (AdvCiv): exclude unplaced objects before sorting and evaluating post-turn upgrade candidates
- KI#524.5 (BtS/K-Mod/AdvCiv): move the existing null-plot rejection ahead of enemy-glow unit-info access
- KI#524.6 (BtS/K-Mod/AdvCiv + AdvCiv-SAS): prevent Partisans from calling initUnit(NO_UNIT), reject NO_UNIT before allocating a unit-container entry, and harden SASGameRecord military counting
- prove the full Partisans Python-exception and five-consumer native-crash chain through successive matching Debug-opt PDBs, then validate the source repair by replaying the same turn-428 autosave successfully past turn 430
- preserve debugger-friendly multiline C++ layout for complicated crash paths while retaining compact signatures and flat logging calls
- reconcile the C++ File Audit Album through C019-WIP11 and retain F224 as the next unused root

Investigated through the C++ File Audit Album with the help of ChatGPT-5.6-Sol and independently reviewed, diagnosed, fixed, replay-tested and documented with the help of GPT-5.6-Sol, thanks.
@wonderingabout
wonderingabout force-pushed the main branch 3 times, most recently from 74fe70f to a0a4ac6 Compare August 27, 2026 19:31
- KI#527: omit the unsupported land/sea Stack Compare diagnostic for selected aircraft while preserving air combat help; direct hover remains source-verified
- KI#534: skip transient empty groups in the planned-war mission census before querying war intent; Debug-opt autoplay completed successfully
- document ancestry, test scope, and verification limits
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
- KI#536: clear stale human-capitulation authorization during full cache reset/read while preserving it across ordinary turn refreshes
- KI#537: invalidate obsolete typical-unit, power and Fleet bombard data when a military branch loses every trainable candidate
- confirm a full autoplay and a BTG Lagoon turn-201 save/reload continuation completed successfully; retain exact stale-state transitions as source-verified
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
…#542

- KI#540: identify Fallout by exact feature type so SAS Jungle health no longer falsely enables cleanup at Metal Casting
- KI#541: require an actual city capable of training assault transports so Oil-less post-Combustion empires do not gain false naval-lift capacity
- KI#542: check cumulative Culture/Space stage 4 before stage 3 so UWAI uses the intended production opportunity costs
- confirm a huge BTG Cross autoplay completed successfully and document the source-verified exact cache transitions
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
…ile C++ audit album C019-WIP18

- KI#545: restore the pre-practical-2920 expansion-site formula so only the Settler adjustment, not the fixed site weight, is divided by 10
- KI#546: restore the 1.0 baseline for established war-trade hireability persistence without changing surrounding thresholds or tuning
- confirm a full Peirce SAS24 autoplay completed successfully and retain the exact internal values as source/arithmetic verified
- import and reconcile C019-WIP12 through WIP18, preserving F224-F229 as pending current-game findings
- retain F230 and the ancient-save note as album evidence without promoting backward-save compatibility that AdvCiv-SAS does not support
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
- KI#547: refresh the affected owner's aggregate assets after mid-turn city creation or destruction
- KI#550: restore the stateful city attack-priority ordering after pure destruction or razing
- make city removal report success and validate both cache containers before mutating either
- confirm a full Huge Pangaea autoplay completed successfully
- use SASGameRecord to trace Spain's unusually slow early development to 12 Forest plots and delayed Masonry/Metal Casting rather than Worker inactivity or a recent feature regression
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
…e accounting

- KI#543: evaluate nuclear deterrence across the owner's full master-team side instead of only the cache-owning player
- KI#544: count loaded units exactly once in both UWAI and inherited BBAI/K-Mod target-mission censuses
- preserve transport mission context while excluding boarded cargo from its separate selection-group contribution
- confirm a full Huge Pangaea autoplay completed successfully; retain the exact hidden deterrence and cargo states as source verified
- use SASGameRecord to confirm Dublin's slow early development came from its feature-heavy BFC and delayed Masonry/Metal Casting rather than these fixes
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
…overflow

- KI#548: reconstruct a revived player's incremental UWAI military inventory from units that already existed before cache initialization
- KI#552: saturate sponsored-war utility before signed-short storage so a large legal overpayment cannot wrap negative and erase its obligation
- confirm KI#548 through the save-file 547 Debug-opt reproduction with revived land and naval military units, exiting WorldBuilder without an assertion or crash
- retain KI#552's exact oversized-payment state as source/arithmetic verified because ordinary in-range bounty behavior is unchanged
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
- separate strategic route existence from fastest pairwise deployment duration
- preserve the primary-area restriction for land reachability while allowing a secondary port's valid naval route to establish reachability
- retain the shorter land duration for estimation without letting it hide a slower permitted sea route
- confirm a full autoplay completed successfully; retain the exact secondary-colony land/sea route combination as source verified
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
…gration

- migrate outsiders' persistent past-war history from the absorbed target team to the surviving team
- preserve the stronger sponsored-war bounty and sponsor so an ongoing paid war does not lose its obligation
- preserve human-capitulation readiness across the target-team identity change and clear the absorbed-team keys
- keep outsider migration separate from the existing survivor-member merge and leave derived maps to their normal refreshes
- confirm a Huge Pangaea mixed-team autoplay with Permanent Alliances enabled completed by Space Race on turn 420; no new alliance formed, so the exact migration remains source/lifecycle verified
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
… cache migration; reconcile C019-C020 audit album

- KI#538: initialize a promoted team leader's private war-hireability map to false instead of exposing stale or default-true values
- KI#539: merge the absorbed leader's history into only the original surviving members and across the full persistent civilization-team key domain
- keep KI#551's outsider target-key migration separate from the survivor-member merge
- confirm a Debug-opt Huge Pangaea mixed-team autoplay with Permanent Alliances enabled completed by Domination on turn 385, including a surviving-teammate leadership promotion
- reconcile ChatGPT-5.6-Sol's durable C019 UWAICache close and C020-WIP01 map-generator findings
- investigated through the ChatGPT-5.6-Sol C++ audit album and fixed with the help of GPT-5.6-Sol, thanks
…0-WIP03 audit album

- KI#564: bound grouped OneArea resources by the global target and active area cap, and prevent clusters from crossing landmasses
- KI#565: use map-script latitude policy consistently during area ranking and resource placement
- verify Huge Hub, Wheel, BTG Grid and Archipelago generation, BTG Grid save/reload, and a turn-101 Tiny Islands autoplay
- reconcile C020-WIP02/WIP03 and retain KI#566-KI#568 as pending map-generator findings
- investigated through the C++ File Audit Album with the help of ChatGPT-5.6-Sol; independently reviewed, fixed and documented with the help of GPT-5.6-Sol, and tested with the help of wonderingabout, thanks
- KI#566: restore sequential coastal eligibility for AdvCiv's batched random-lake placement
- KI#567: clear inherited stale river IDs and reset AdvCiv's short next-river counter when regenerating the whole network
- KI#568: let AdvCiv's uncapped OneArea fallback use valid small islands without weakening its first-pass distribution preference
- verify a full Huge Pangaea autoplay and a turn-101 Huge Archipelago Tiny Islands autoplay; retain repeated element regeneration as source-verified
- update the C++ File Audit Album's priority-next queue annotations
- investigated through the C020 C++ File Audit Album with the help of ChatGPT-5.6-Sol; independently reviewed, fixed and documented with the help of GPT-5.6-Sol, and tested with the help of wonderingabout, thanks
- KI#560: count ordinary air-combat units in UWAI's actual Army inventory, so Fighters, Bombers and Guided Missiles contribute their unit count and power
- KI#561: exclude nuclear weapons from the conventional Home Guard denominator and Army headcount partition, retaining their separately counted units unchanged
- validate a Huge Future Era Pangaea autoplay through its turn-500 Time victory, including Guided Missile production; retain KI#561 as source/arithmetic verified because the sample produced no nukes
- investigated with the help of ChatGPT-5.6-Sol and fixed and documented with the help of GPT-5.6-Sol, thanks
…C++ audit album to C021-WIP03

- KI#558: refresh UWAI's derived offensive and defensive trait flags after True Starts or another supported living-player leader replacement, without reinitializing persistent UWAI state
- KI#562: separate paid-war cleanup from history evaluation, preserving cleanup during early-scenario peace and restoring the full war-ending report before elimination teardown
- validate a Huge Normal-speed Pangaea True Starts autoplay through its turn-500 Time victory, with eight team eliminations repeatedly exercising the repaired lifecycle
- import ChatGPT-5.6-Sol's C020/C021 audit progress through the CvMapGenerator closure and InvasionGraph WIP03
- investigated with the help of ChatGPT-5.6-Sol and fixed, reviewed and documented with the help of GPT-5.6-Sol, thanks
…(KI#569-572)

- KI#569: preserve KI#202's valid AdvCiv second-pass repair while fixing the follow-up it exposed: revisited areas already count the current OneArea resource, so add "this one" only on fresh areas instead of counting it twice.
- KI#570: restore inherited AdvCiv hybrid getRiverAltitude modifiers used to guide Inland Sea and Great Plains rivers.
- KI#571: keep inherited AdvCiv zero-rounded OneArea rankings from hiding landmasses with legal recovery placements.
- KI#572: replace AdvCiv's ineffective final-lake local recalculation with one explicit whole-map CvArea rebuild after the batch.
- Add the previously omitted KI#202 menu entry and make Markdown CI reject numbered Known Issues that are missing from the main menu.

Current-build Inland Sea, Great Plains, Huge Archipelago Tiny Islands, Pangaea and Continents maps generated without an observed issue, with rivers visible where expected.

Investigated through the C++ File Audit Album with the help of ChatGPT-5.6-Sol, fixed with the help of GPT-5.6-Sol, and tested with the help of wonderingabout, thanks.
…I#573-574) and advance the C++ File Audit Album through C021-WIP10

- KI#573: replace stage-1-first Conquest/Domination helpers with shared highest-stage extraction so cumulative victory flags no longer make every active strategy appear to be stage 1.
- KI#574: unlink simulated eliminated or capitulated players from their primary targets, preventing defeated nodes from attacking later in the same InvasionGraph phase.
- Record a successful Huge Normal-speed mixed-team Debug-opt autoplay covering multi-party UWAI war projections.
- Advance the C++ File Audit Album through C021-WIP10, queuing KI#575-585 and retracting provisional KI#586 as a false positive.

Investigated through the C++ File Audit Album with the help of ChatGPT-5.6-Sol, fixed with the help of GPT-5.6-Sol, and tested with the help of wonderingabout, thanks.
…583) and advance the C++ File Audit Album through C021-WIP13

- KI#575 (original UWAI): use the conqueror's era and Army unit power when estimating conquest garrisons
- KI#576 (original UWAI): consume emergency defense only when a successful city-conquest step is actually applied
- KI#578 (original UWAI): preserve each participant's own Army portion when resolving cycle clashes
- KI#579 (Base AdvCiv regression): restore assignment instead of squaring partial Army portions during ally-confidence adjustment
- KI#581 (original UWAI): apply the actual defender's Defensive trait to simulated city defense
- KI#583 (AdvCiv/UWAI omission): apply attacker area weighting to the overlapping Cavalry branch
- verify the fixes with a successful Huge Normal-speed mixed-team Debug-opt autoplay
- advance the C++ File Audit Album through C021-WIP13

Investigated with the help of ChatGPT-5.6-Sol, reviewed and fixed with the help of GPT-5.6-Sol, and tested thanks to wonderingabout.
- KI#587: propagate coastal defender Fleet casualties into overlapping Logistics capacity so destroyed transports cannot support later naval invasions
- KI#588: scale the overlapping Cavalry subset with Army deployment-distance availability
- verify the changes with a successful current-build Debug-opt autoplay; retain source verification for the exact internal transitions

Investigated with the help of ChatGPT-5.6-Sol, reviewed and fixed with the help of GPT-5.6-Sol, and tested thanks to wonderingabout.
- consume Home Guard casualties from the remaining original branch before reducing simulated emergency-defender power
- keep virtual emergency-defender casualties out of original military-loss and war-cost reporting
- preserve the existing loss caps for every ordinary military branch and either combat participant
- verify the change with a successful current-build Debug-opt autoplay; retain source verification for the exact emergency-defender exhaustion sequence

Investigated with the help of ChatGPT-5.6-Sol, reviewed and fixed with the help of GPT-5.6-Sol, and tested thanks to wonderingabout.
…2, KI#584, KI#585) and advance the C++ File Audit Album through C021-WIP16

- KI#580 (original UWAI): convert Army-clash persistent and temporary casualties from confidence-modified power back to physical branch power
- KI#582 (Base AdvCiv regression): bound physical clash geometry before applying personality-specific attacker deployment effort
- KI#584 (original UWAI): remove the attacker-only inverse-confidence distortion from Logistics casualties
- KI#585 (original UWAI): apply repeat-trip capacity only to transports surviving the naval battle
- verify the batch with a successful Debug-opt autoplay through a Cultural victory
- preserve the unexplained Future-era city-screen switching/reopening observation for separate reproduction
- advance the C++ File Audit Album through C021-WIP16

Investigated with the help of ChatGPT-5.6-Sol, reviewed and fixed with the help of GPT-5.6-Sol, and tested thanks to wonderingabout.
- KI#590 (original UWAI): stop a surviving defender's unrelated offensive after it loses a city to a third-party attacker
- preserve mutual attacker/defender targeting and the existing terminal-node cleanup
- KI#592 (AdvCiv/UWAI practical 1289): subtract simulated city losses from per-area Army, Cavalry and garrison-rally counts
- keep hypothetical ownership inside InvasionGraph without mutating the real CvArea or city state
- verify the batch with a successful current-build Debug-opt autoplay
- record that the preceding Future-era city-screen switching/reopening did not recur, while retaining it as an isolated observation

Investigated with the help of ChatGPT-5.6-Sol, reviewed and fixed with the help of GPT-5.6-Sol, and tested thanks to wonderingabout.
…nce the audit album through C021-WIP17

- retain separate fastest mixed-route and qualifying land-only distances in UWAICache::City
- use land-only distance for land invasions, overland clashes, armament forecasts, land-target classification, defensibility and the SAS land-contact gate
- preserve mixed distance for naval clashes, naval invasions and generic target valuation
- bump UWAICache's existing save-format marker and update unconditional current-format write/read order, without adding uiFlag or legacy-save compatibility
- document the original UWAI ancestry, successful current-build autoplay and serialized-format guidance
- advance the C++ File Audit Album through C021-WIP17

Investigated through the C++ File Audit Album with the help of ChatGPT-5.6-Sol; independently reviewed, fixed and documented with the help of GPT-5.6-Sol, and tested thanks to wonderingabout.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant