Skip to content

Commit

Permalink
docs: Add remaining notes on civics, espionage, UI
Browse files Browse the repository at this point in the history
  • Loading branch information
bmaupin committed Feb 20, 2024
1 parent c906489 commit a1bba2c
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 9 deletions.
14 changes: 12 additions & 2 deletions docs/notes/civics.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
# Civics

#### Simplify civics?
## Motivation

In previous versions of Civilization, including Civ Rev, civics were limited to government types. Would it be possible to remove other civic types in Civ 4?
Previous versions of Civilization, including Civ Rev, were limited to government types. Civ 4 added five categories of civics with five civics each.

This adds friction when trying to play quickly; there's a popup every time a new civic is discovered with a suggestion to change to that civic.

Beyond that, it can be annoying because other civilisations may not like the civics of your civilisation and may pester you to change your civics or even go to war over them.

Even Soren Johnson, the creator of Civ 4, expresses some frustration about this: [Three Moves Ahead Episode 134: The Alpha Centauri Show](https://www.idlethumbs.net/3ma/episodes/the-alpha-centauri-show) (starts around 42:00)

## Simplify civics?

Would it be possible to remove non-governmental civics from Civ 4 to make it more like previous versions of Civilization, that only had government types?

#### ~~Alternate idea: remove favourite civics of each civ~~

Expand Down
46 changes: 41 additions & 5 deletions docs/notes/espionage.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,59 @@
# Espionage

## Motivation

- Espionage in Civ 4 is more than just a unit, it's an entire separate system that adds friction when trying to play quickly
- Espionage events in particular can be frustrating when trying to play quickly, such as having a technology stolen, a building or improvement destroyed, your entire treasury stolen, etc.
- "... espionage has become somewhat of a hindrance in the pursuit of normal diplomatic victories. The act of catching opposing AI controlled spies will devastate your diplomatic relations with those players forcing you into a negative relationship that you cannot recover from." ([source](https://en.wikipedia.org/wiki/Civilization_IV:_Beyond_the_Sword))

## Espionage in other Civ games

In Civ 1 - 3 and Civ Rev, espionage consisted almost entirely of a spy (or diplomat in Civ 1) unit that could perform a variety of missions, including:

- Establish embassy
- Investigate city
- Steal technology
- Destroy a building or production in a city
- Gain control of the city (starts a war)
- Reduce city population by 1
- Plant a nuclear device
- Reveal location of enemy units

## Disable espionage

#### For now, disable espionage by default

⚠️ For now espionage is disabled by setting it as disabled by default in the game options as this is low effort with the added advantage that it allows players to enable it if they wish. However, as per the [End of Espionage Mod](https://forums.civfanatics.com/resources/end-of-espionage-mod.13540/), it seems that this effectively converts espionage points to culture points, which can end up making the game unbalanced.

## Later, simplify espionage or remove it altogether

#### Simplify espionage?
#### Idea: ~~Remove all but the spy unit~~

In earlier Civ games as well as Civ Rev, espionage consisted of a spy who could infiltrate enemy cities. Would it be possible to do something like this, just with XML changes? I'm not sure ...

For example, could we just remove espionage buildings, triggers, events, great people, etc. and just leave the spy unit?
For example, could we just remove espionage buildings, triggers, events, great people, etc. and just leave the spy unit? Although this would require espionage points in order for the spy to perform missions, I think this would still work because you could still use the espionage slider to accumulate espionage points.

#### Remove espionage altogether
But my current thinking is we should remove the spy unit as well, because I'm not sure performing spy missions would be compatible with the goal of extreme reduction of playtime.

#### Idea: Remove destructive spy missions

Remove all entities related to espionage (buildings, triggers, events, great people, units, etc.) but don't hide the espionage avisor button from the UI. This would remove friction from having espionage buildings and units in the city production list as well as remove the annoyance of destructive espionage missions. However, I think this might still allow for "passive" missions, such as seeing demographics, research, and information on enemy cities.

This would require use of the espionage slider to accumulate espionage points.

#### Idea: Remove espionage altogether

If simplifying espionage isn't possible and disabling espionage in the game options ends up being problematic, a better approach may be to remove espionage altogether; this could potentially be done by removing espionage buildings, units, triggers, events, great people, etc.

To remove it from the UI, see [ui.md](ui.md)
I think we would need to:

- Remove all entities related to espionage (buildings, triggers, events, great people, units, etc.)
- Set espionage to disabled in the game options by default
- I think this should take care of hiding the advisor button and also the espionage slider, and also prevent the AI from conducting passive espionage missions

#### Research

- Included Charlemagne mod has espionage removed from UI, so it seems to reason it would also be removed; to verify
- Included Charlemagne mod has espionage removed from UI
- The spy unit seems to have been removed from most Python and XML asset files
- The great spy is still in CIV4UnitInfos.xml but seems to have been removed from other asset files (buildings, civilizations, events, technologies)
- Espionage buildings have been removed (which makes sense since the buildings are modern and the mod is set in the medieval era)
9 changes: 7 additions & 2 deletions docs/notes/ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,18 @@ e.g. to remove the corporation, espionage, or religion advisor button from the t
#screen.moveToFront( "CorporationAdvisorButton" )
```

⚠️ Only commenting out these lines will leave a gap in the UI unless `iBtnX += iBtnAdvance` is also commented out

#### Research

- Broken Star: comments all instances of `screen.hide`, `screen.moveToFront`, or `screen.show` for `CorporationAdvisorButton`
- Broken Star: comments `screen.setImageButton` and surrounding code and all instances of `screen.hide`, `screen.moveToFront`, or `screen.show` for `CorporationAdvisorButton`
- Charlemagne
- Comments all instances of `screen.hide`, `screen.moveToFront`, or `screen.show` for `EspionageAdvisorButton`
- The `screeen.setImageButton` and surrounding code isn't commented, but there's no `iBtnX += iBtnAdvance` line, so I think that's why there's no gap for the button
- `CorporationAdvisorButton` isn't in file
- Dune Wars: removes `screen.setImageButton` and surrounding code for `CorporationAdvisorButton`
- All instances of `screen.hide`, `screen.moveToFront`, or `screen.show` are unchanged ...
- Final Frontier doesn't have any code for `CorporationAdvisorButton` in `Assets/Python/EntryPoints/CvScreensInterface.py`
- Mesoamerica comments `screen.setImageButton` and surrounding code for `CorporationAdvisorButton`
- Road to war: all `screen.show` instances for `CorporationAdvisorButton` have been set to `screen.hide` and `screen.moveToFront` has been commented out, but this leaves a gap where the corporation advisor button was
- All instances of `screen.hide`, `screen.moveToFront`, or `screen.show` are unchanged ...
- Road to war: all `screen.show` instances for `CorporationAdvisorButton` have been set to `screen.hide` and `screen.moveToFront` has been commented out, **but this leaves a gap** where the corporation advisor button was

0 comments on commit a1bba2c

Please sign in to comment.