Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Random world kingdoms and empires lack HIP/EMF's custom creation & usurpation requirements. #612

Open
zijistark opened this issue Feb 13, 2019 · 0 comments

Comments

@zijistark
Copy link
Member

If the alternate start parameters dejure_kingdoms or dejure_empires are set to random, which of course is the default, all de jure kingdoms and empires on the map will be dynamically-created [by hard-code] titles that have no allow for custom creation / usurpation requirements. For EMF, that means that none of these titles will ever obey our title_king_basic_allow or title_emperor_basic_allow triggers.

Major consequences, from a quick glance back at those standard triggers, include:

  • Titular kingdoms and empires that are auto-destroyed when a ruler gains a same- or higher-tier de jure title will be marked as officially defunct in order to prevent the AI from looping between creating them (and wasting gold and piety and gaining free prestige) and them being destroyed again. But the emf_defunct title flag will never stop this from happening due to the lack of our custom creation requirements.
  • Automatic Empire Disintegration mechanic would have to be disabled entirely, because AIs and players could easily create empires which would not be large enough for AED and then be promptly destroyed — we'd be asking for a ragequit here.
  • If such a de jure kingdom becomes titular for some reason (drift, script, etc.), it could be created by anybody — vassals, tiny republics, etc.
  • AI emperors would be allowed to create titular kingdoms again, which as we've seen already, results in them spamming them and then either screwing up their succession or granting them to vassals.
  • In general, the game rule Titular Title Creation would be utterly disrespected, resulting in much confusion. [Exception: Duchies aren't randomized, so protection against duke-tier titular title creation would still be in force.]
  • The Imperial Kingdom Creation crown law would be useless and completely unenforced. Vassal kings asserting themselves in the Byzantine Empire left and right, e.g.
  • Nomads would again be allowed to create or usurp empires, which results in sometimes catastrophic behavior (e.g., automatic destruction of the title).

Though I'm loathe to embark upon any big(ish) project before release at this point (I wanted to release HIP tonight), I just don't think we can tolerate this mess of incoherency and/or tons of mechanics we'd have to disable (while still not protecting against various bad stuff that isn't a mechanic on its own). We need a solution either before Furry1's release or Furry2's release.

Nevertheless, I could be convinced still to simply disable all of the mechanics aforementioned which would be broken by the lack of our title create/usurp triggers for Furry1 and enact a few measures to minimize the incoherency of the Titular Title Creation game rule (i.e., for our statically-defined titular titles which still retain their allow, never allow their creation in a random de jure scenario).

Facts:

  • A title's allow / creation-usurpation requirements cannot be set dynamically from script.
  • A title's name and CoA and adjective but not map color can be copied from any other title.
  • A de jure kingdom or empire title can be replaced in-place by another title.

My conceptual solution:

Code-generate a fairly large number of spare kingdom and empire titles (larger than on the map historically, because the alternate start parameters for de jure kingdom/empire size can be set to make them more numerous/small). These titles will have an allow which enforces the appropriate standard creation/usurpation requirements in a world with random de jure setup. They'll otherwise be active = no in title history.

In our on_alternate_start on_action handler (which executes before on_startup), simply swap out the hard-code-generated titles on the map de jure with random selections from the spare titles, then deactivate + destroy the hard-code-generated titles after granting the spare statically-defined title to hard-code-generated title's holder (if any).

The only thing which might make this hard but could be deferred until a later time would be assigning colors to the spare titles which are fairly distant from each other & probably putting them into color classes (grouped by various title flags or scripted triggers) which the on_alternate_start title-switcher could use to do its best to pick spare titles for usage on the map that do not have a similar color to adjacent de jure titles.

Upon consideration of how much work I'd probably want to put into this, perfectionist as I am, I think this "real solution" ought to be deferred until Furry2. For Furry1, we'll simply have a more vanilla-like experience with random de jure setup, and I can disable the various mechanics which rely upon these standard title creation/usurpation conditions' existence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants