Code Monkey home page Code Monkey logo

imperatortock3's Introduction

ImperatorToCK3

Converts Imperator: Rome saves into Crusader Kings III mods

This converter is documented on the Imperator: Rome wiki.

For troubleshooting, bugreporting, or other help, please visit the official release thread on the Paradox Interactive forums. To help with development, please visit the official development thread on the Paradox forums.


CodeFactor Codacy Badge Coverage Status

Credits

Iohannes - Data files, ideas comagoosie - librakaly save melter Idhrendur - Setting up the project, sanity checks and review IhateTrains - Lead, programming, data files, testing lukaslunt - Data files Zemurin - provinceMapper, review, advice Plati - Faith icons Radu - Ideas, province mappings Vielus - Mapping tweaks derekmark - Venetic culture flavour and Raetic name list from "Venetic Culture" mod (https://steamcommunity.com/sharedfiles/filedetails/?id=2830456287) nah34 - Suggestions for cultural traditions and martial customs Gawquon - Static de jure option The Fallen Eagle mod team - Permission to integrate the Rise of Islam mechanic from their mod (https://steamcommunity.com/sharedfiles/filedetails/?id=2243307127) TinWiz - Testing, integration of the Rise of Islam mechanic Wrench - Help with integration of the Rise of Islam mechanic AsiaExtended mod team - Permission to use Shan name list and Palaungic culture from their mod (https://steamcommunity.com/workshop/filedetails/?id=2706635752) Luka_Moscovite - Russian translations More Bookmarks+ mod team - Permission to use Natkokwe faith from their mod (https://steamcommunity.com/workshop/filedetails/?id=2216670956) When the World Stopped Making Sense mod team - Permission to use Eiateuta faith from their mod (https://steamcommunity.com/sharedfiles/filedetails/?id=2858562094) Izn - Research and localization for Ajivika religion B7E7, author of Africa Plus mod for CK3 (https://steamcommunity.com/sharedfiles/filedetails/?id=2552371897) - Permission to use Nhialacism faith from their mod Herkles, author of Dharmachakra mod for CK3 (https://steamcommunity.com/sharedfiles/filedetails/?id=2235344327) - Khasi culture

imperatortock3's People

Contributors

deo211 avatar dependabot[bot] avatar endsm avatar gawquon avatar idhrendur avatar ihatetrains avatar illgeo avatar iohannesiohannium avatar klorpa avatar matthewforrester avatar mayuri-dhote avatar radum84 avatar tinwiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

imperatortock3's Issues

Vanishing titles

Iohannes' report:

there is (and it was already here) a bug that makes some of these titles "vanish". E.g. Ptolemy the Liberator is scheduled to gain k_egypt, but instead he is reduced to a count. I have no idea why this happens. It is not the order of the file, as Chandragupta, with the same format, keeps his e_india.

Post-mapping religion setup tweaks

  • If Islam didn't spawn, make Muslim provinces in Arabia Arabic Pagan, make Muslim provinces in West Africa Berber Pagan, make Muslim provinces in South Africa Waaqi
  • If Coptic religion didn't emerge, make Coptic provinces Kushite or Egyptian Pagan
  • If Christianity/Orthodoxy didn't emerge, make Orthodox provinces Hellenic
  • Make that one Tengri county around Romania Balkanic Pagan, or preferably copy a neighboring county's religion

On succession laws

Succession laws can be converted from I:R to CK3.

# IMP-CK3 SUCCESSION LAW MAPPINGS #
# link = { imp = [law] ck3 = [law] }
# The CK3 law is output in the title's history
# folder, right after the line defining
# the holder, as succession_laws = { [law] }

# CK3 has default succession laws

# Multiple mappings mean both laws will be written out


# Monarchy

link = { imp = agnatic_succession_law ck3 = male_only_law }
link = { imp = agnatic_succession_law ck3 = single_heir_succession_law }
link = { imp = cognatic_succession_law ck3 = male_preference_law }
link = { imp = agnatic_seniority_succession_law ck3 = single_heir_dynasty_house }
link = { imp = agnatic_succession_law ck3 = single_heir_succession_law }
link = { imp = egyption_succession_law ck3 = equal_law }

# Republic

link = { imp = republican_election_1 ck3 = city_succession_law }
link = { imp = republican_election_2 ck3 = saxon_elective_succession_law }
link = { imp = republican_election_3 ck3 = city_succession_law }
link = { imp = republican_election_4 ck3 = princely_elective_succession_law }

# Rome

link = { imp = leges_genuciae ck3 = city_succession_law }
link = { imp = senatus_consultum_ultimum ck3 = saxon_elective_succession_law }
link = { imp = lex_antonia ck3 = city_succession_law }
link = { imp = princeps_civitatis ck3 = princely_elective_succession_law }

# Tribal

link = { imp = personal_loyalty_law ck3 = high_partition_succession_law }
link = { imp = increased_council_powers ck3 = scandinavian_elective_succession_law }
link = { imp = absolute_authority ck3 = gaelic_elective_succession_law }

"The Kingdom of Antigonid Kingdom"

The following I:R tags need to have definite_form=yes added as a line when they are generated as CK3 titles:

Fixed tags:

  • PRY (Antigonid Kingdom)
  • BPK (Bosporan Kingdom)
  • DOD (Dodekaschoinos, from Greek The Twelve Cities)
  • DEL (Nesiotic League)
  • SEL (Seleucid Empire)

Dynamic tags:

  • HELLENIC_LEAGUE_NAME (Hellenic League)
  • ARGEAD_NAME (Argead Empire)
  • roman_empire_name (Roman Empire)
  • western_roman_republic_name (WRE)
  • western_roman_empire_name (WRE)
  • western_roman_kingdom_name (WRE)
  • western_rome_name (WRE)
  • eastern_roman_republic_name (ERE)
  • eastern_roman_empire_name (ERE)
  • eastern_roman_kingdom_name (ERE)
  • eastern_rome_name (ERE)
  • roman_kingdom_name (Roman Kingdom)
  • PERSIAN_EMPIRE_NAME (Persian Empire)
  • MESOPOTAMIAN_EMPIRE_NAME (Mesopotamian Empire)
  • MEDIAN_EMPIRE_NAME (Median Empire)
  • CYRENAICAN_OPPOSITION (Cyrenaican Opposition)
  • PELOPONNESIAN_LEAGUE_NAME (Peloponnesian League)
  • SYR_TYRANNY (Syracusan Tyranny)
  • MAMERYES (Marsades Republic)
  • MAGADHA_EMPIRE_NAME (Magadhan Empire)
  • MACEDONIAN_EMPIRE_NAME (Macedonian Empire)

Conversion of title history

It should be checked if the converter converts historical leaderships of countries. If not, it should be implemented.

Conversion of government offices

We'll eventually consider converting them. We just need to remember to add 867.1.1 = { set_employer = ABC }, with ABC being their ruler, in the character's history file.

Office mappings (CK3 || I:R first choice, I:R other choice, etc.)

  • Court Chaplain || Augur, High Priest, Royal Tutor, Court Philosopher, Wise One
  • Chancellor || Censor, Chancellor, Arbitrator, Elder
  • Steward || Magistrate, Steward
  • Marshal || Tribune of the Soldiers, Tribune of the Treasury, Marshal, Master of the Guard, Warchief, Bodyguard
  • Spymaster || Tribune of the People

Furthermore, we have CK3 Court Physician, who is not a councillor but a courtier, and maps to I:R Physician and I:R Apothecary

Conversion of governors

Governors should map to vassals.

This, however, also requires a regionMap.txt mapping file to explain what title a governor gets.

Conversion of technology

Considering the absurd timegap, I suggest we recycle the system of EU4Vic2, where we check out the lowest and highest number of total inventions, divided by field, discovered by tags on map.
Then, we would check where does each tag stay in this scale.
At this point, an average would be calculated for all countries whose leader has the same CK3 culture.
From this number, we will then calculate an output:
e.g. All leaders of Etruscan culture have a Civic score of 50%, which means they'll get the innovation X

Innovations are output in /history/cultures/[culture].txt, with this syntax:

[yyyy.mm.dd] = { # A date, we'll use 100.1.1 and call it a day
	discover_innovation = [innovation] # One for each line
}

An innovation configurable file will need to be supplied. I propose for it the following syntax:

link = { type = [imp type] score = [number from 0 to 1] innovation = [CK3 innovation] }

imp type can only be any of the following: civic, martial, oratory, religious

We need to also define, as well, for which cultures this must not be calculated/output (those that are outside I:R and, thus, should have no I:R input)

Convert holy sites

I think a hybrid solution would be nice. Mark some holy sites in blankMod as permanent (probably with a comment that the converter will recognize), validate the rest (for example check if the site was a holy site in Imperator), and in place of those that failed the validation generate new ones based on Imperator.

Localization issue with Chinese

CK3 doesn't want to read locs of cultures in Simp Chinese. Reason of the bug unknown. It works perfectly for everything else and all other languages display locs correctly.

On BC dates and Anno Domini

A further conversion option should be added for people who may wish to convert their I:R game to the Gregorian calendar without teleporting people centuries after their birth.

The oldest ever used date in I:R files is 320 AVC (433 BCE) and CK3 cannot handle negative dates in any way. (Not counting Zoroaster, who is given a lifespan of 1-60 AVC/754-693 BC, but never ruled)

Hence, it is warned that users do not select this option unless they're converting saves from after 803 AVC/50 AD.

How will it do its job:

  • For any I:R date, check if the year value is lower or equal to 760
    • If YES: set the following variables:
      • A: I:R year minus 303
      • B: floor of {A divided by 100}
      • C: A modulo 100
      • D: floor of {C divided by 10}
      • E: C modulo 10
      • ... and then set the new I:R date to be {B+1}.{C+1}.{D+1} (yy.mm.dd.)
    • If NO: set the new I:R date to be {I:R year minus 753}.{I:R month}.{I:R day}

In this way, all rulers would appear in the correct succession, albeit they would never be aged more than mere months. This is useful only for the purpose of regnal numbers (i.e. having an Alexander V as Macedonia and not an Alexander I).

A further file, called prehistory.txt will need to be added to supply historical leaders that have died before I:R game start (and are thus not recorded in the savegame anyway): prehistory.txt

Determine holdings for CK3 provinces

Initial idea:

  • if Imperator territory is a Metropolis, add City holding
  • if territory is a City: if it has a fort, add a Castle holding, otherwise add a City holding
  • if territory is a Settlement: if it is an Imperator holy site, add a Temple holding, otherwise add a Tribe holding

Culture splitting

Approximate regions to split some culture groups:
image

Cultures in italics are not in vanilla CK3. I:R-CK3 converter does not support regional mappings.

Source → /↓ Region Germanic culture group Italic culture group (except Etruscan) Punic culture Hellenistic culture group
A iweric breathanach ythalonim eblanic
B scots transadrianic ythalonim scotinous
C anglo-saxon brythenig ualonuth prettanian
D norse läßin sicorathi hyperborean
E french norman symacom velgese
F french occitan ysthyalm metalpesian
G Vanilla German (bavarian, dutch, franconian, saxon, swabian) läßin sicorathi prinelbite
H pémiš wenedyk sythchy metalbite
I lombard cisalpine ynnocho prinalpesian
J ostrogothic pannonian mlachthi delmatic
K pémiš vlach inythmum macedonian (the Greek one, not the Slavic one)
L varangian euxinian gadolite anatolian
M aryan bazramani bythlimmoth susite
N gegenjiddisch judajca sidonian azotite
O wostiyasite salinatorian carthaginian carchidonian
P lombard italian taliaite italiote
Q lombard sicilian lacanite hyperochian
R mikligarðrish xliponian epicrateian greek
S lombard sardinian pmpese xarthic
T visigothic catalan ythbynuthi varquelonic
U visigothic aragonese ythbynuthi varquelonic
V visigothic asturleonese ychibarku vaskician
W suebi galician ychibarku vaskician
X visigothic castilian liphocaneth vaitic
Y visigothic portuguese mysehi lousitanian

Special cases:

  • Italic cultures (as well as Etruscan) held by the Roman Empire are always converted to Roman
  • Hebrew becomes ashkenazi in regions D, G, H; sephardi in regions T through Y; khazar in region L; shuadit in region F; zarphatic in region E.

Sent through public Wi-Fi.

Convert pregnancy

Save snippet:

	unborn={ {
			mother=22576
			father=22571
			date=451.7.7
		}
 }

Actually support Imperator mods

The converter only reads CK3 stuff from CK3 game path. It should also read from mods' folders.

EDIT: The new goal is to support Imperator mods.

  • read localization from mods
  • read regions from mods
  • read genes from mods

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.