migration
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
migration [2020/05/22 12:22] – maxime | migration [2023/04/18 15:26] – polymorphgames | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Migration Notes ====== | ====== Migration Notes ====== | ||
- | ===== Foundation | + | ===== Foundation |
+ | |||
+ | * [[changelog: | ||
+ | |||
+ | ==== Gendered fields ==== | ||
+ | |||
+ | In 1.9.3, we merged the Nun and Monk profiles and statuses together to avoid duplication. This brought in the notion of " | ||
+ | |||
+ | **Note: '' | ||
+ | |||
+ | ==== Text fields ==== | ||
+ | |||
+ | * If empty in gender, will take '' | ||
+ | * If we want the '' | ||
+ | * If empty, will LOG and ERROR and take the '' | ||
+ | * To convert: | ||
+ | <file lua> | ||
+ | -- OLD WAY | ||
+ | AgentProfile = { | ||
+ | DataType = " | ||
+ | ProfileName = " | ||
+ | } | ||
+ | |||
+ | -- NEW WAY | ||
+ | AgentProfile = { | ||
+ | DataType = " | ||
+ | ProfileNameGendered = { | ||
+ | -- MASCULINE | ||
+ | " | ||
+ | -- FEMININE | ||
+ | " | ||
+ | -- GENERIC | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Character Setup ==== | ||
+ | |||
+ | * '' | ||
+ | * Animations: If NONE in gender, will take the one from '' | ||
+ | * Left/Right Hand: If '' | ||
+ | * Clothing: If '' | ||
+ | * Lists: | ||
+ | * What is in '' | ||
+ | * No more need to duplicate stuff in both genders | ||
+ | * To convert: | ||
+ | <file lua> | ||
+ | -- OLD WAY | ||
+ | CharacterSetup = { | ||
+ | DataType = " | ||
+ | WalkAnimation = " | ||
+ | IdleAnimation = " | ||
+ | FemaleHatList = { | ||
+ | " | ||
+ | }, | ||
+ | MaleHatList = { | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | |||
+ | -- NEW WAY | ||
+ | CharacterSetup = { | ||
+ | DataType = " | ||
+ | CharacterSetupDataGendered = { | ||
+ | -- MALE | ||
+ | { | ||
+ | DataType = " | ||
+ | HatList = { | ||
+ | " | ||
+ | } | ||
+ | }, | ||
+ | -- FEMALE | ||
+ | { | ||
+ | DataType = " | ||
+ | HatList = { | ||
+ | " | ||
+ | } | ||
+ | }, | ||
+ | -- ALL | ||
+ | { | ||
+ | DataType = " | ||
+ | WalkAnimation = " | ||
+ | IdleAnimation = " | ||
+ | -- Things put in lists here will be used by all genders | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Assets ==== | ||
+ | '' | ||
+ | * Gendered Fields: | ||
+ | * '' | ||
+ | * Need to do conversion manually | ||
+ | * '' | ||
+ | * Will automatically bring the value in '' | ||
+ | * You can set it up manually if you want | ||
+ | * '' | ||
+ | * Will automatically bring the value in '' | ||
+ | * You can set it up manually if you want | ||
+ | * '' | ||
+ | * Will automatically bring the value in '' | ||
+ | * You can set it up manually if you want | ||
+ | |||
+ | '' | ||
+ | * Gendered Fields: | ||
+ | * '' | ||
+ | * Need to do conversion manually | ||
+ | * '' | ||
+ | * Will automatically bring the value in '' | ||
+ | * You can set it up manually if you want | ||
+ | * '' | ||
+ | * Will automatically bring the value in '' | ||
+ | * You can set it up manually if you want | ||
+ | * '' | ||
+ | * Will automatically bring the value in '' | ||
+ | * You can set it up manually if you want | ||
+ | |||
+ | ==== Data ==== | ||
+ | '' | ||
+ | * Gendered Fields: | ||
+ | * '' | ||
+ | * If '' | ||
+ | * Can use same quota for each gender, it will only evaluate villagers of that gender for the quota. | ||
+ | * If quota from '' | ||
+ | |||
+ | ===== Foundation 1.9.0.7 ===== | ||
+ | |||
+ | * [[changelog: | ||
+ | |||
+ | ==== Sub-buildings and building functions ==== | ||
+ | |||
+ | Buildings can now have sub-buildings, | ||
+ | |||
+ | Sub-buildings are available as soon as their parent building is available by feeding the list above. But like building parts, they can be unlocked later on using the game action '' | ||
+ | |||
+ | An example of sub-buildings is given in the '' | ||
+ | |||
+ | ==== Building part list ==== | ||
+ | |||
+ | The building part set list ('' | ||
+ | |||
+ | ==== Unlockables ==== | ||
+ | |||
+ | With the whole rework of the progression system for 1.9, unlockables have been reworked to improve the way content is unlocked throughout the game. | ||
+ | |||
+ | Unlockable types ('' | ||
+ | |||
+ | Examples are given in the '' | ||
+ | |||
+ | <file lua> | ||
+ | -- OLD UNLOCKABLE | ||
+ | mod: | ||
+ | DataType = " | ||
+ | Id = " | ||
+ | Name = " | ||
+ | Description = " | ||
+ | EstateInfluenceCostList = { | ||
+ | { Estate = " | ||
+ | }, | ||
+ | RelatedProp = " | ||
+ | }) | ||
+ | |||
+ | -- NEW UNLOCKABLE | ||
+ | mod: | ||
+ | DataType = " | ||
+ | Id = " | ||
+ | Name = " | ||
+ | Description = " | ||
+ | DataCost = { | ||
+ | ResourceCollection = { | ||
+ | { Resource = " | ||
+ | } | ||
+ | }, | ||
+ | ActionList = { | ||
+ | { | ||
+ | DataType = " | ||
+ | BuildingProgressData = { | ||
+ | AssetBuildingList = { | ||
+ | " | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | }) | ||
+ | </ | ||
+ | |||
+ | ==== Estates and progression ==== | ||
+ | |||
+ | Progression, | ||
+ | |||
+ | Unlockables are now added directly to progress tiers ('' | ||
+ | |||
+ | <file lua> | ||
+ | -- OLD PROGRESSION | ||
+ | mithrilFactoryMod: | ||
+ | Id = " | ||
+ | EstateProgressList = { -- Add a new estate progress tier | ||
+ | Action = " | ||
+ | { | ||
+ | DataType = " | ||
+ | SplendorRequired = 5, | ||
+ | VillagerStatusRequired = { Status = " | ||
+ | UpgradeList = { | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }) | ||
+ | |||
+ | -- NEW PROGRESS TIER | ||
+ | mithrilFactoryMod: | ||
+ | Id = " | ||
+ | UnlockableList = { | ||
+ | Action = " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | }) | ||
+ | </ | ||
+ | |||
+ | ==== Quests ==== | ||
+ | |||
+ | Quests have been greatly reworked, where instead of having a single '' | ||
+ | |||
+ | All of those are in the form of game conditions ('' | ||
+ | |||
+ | An example of quest is given in the '' | ||
+ | |||
+ | <file lua> | ||
+ | -- OLD QUEST | ||
+ | myMod: | ||
+ | DataType = " | ||
+ | Id = " | ||
+ | Name = " | ||
+ | Description = " | ||
+ | QuestFunction = { | ||
+ | DataType = " | ||
+ | Estate = " | ||
+ | ResourceListToDeliver = {{ Resource = " | ||
+ | DaysCount = 60 | ||
+ | }, | ||
+ | QuestRewardList = { | ||
+ | QuestRewardResources({{ Resource = " | ||
+ | } | ||
+ | }) | ||
+ | |||
+ | -- NEW QUEST | ||
+ | myMod: | ||
+ | DataType = " | ||
+ | Id = " | ||
+ | Name = " | ||
+ | Description = " | ||
+ | ObjectiveList = { | ||
+ | { | ||
+ | DataType = " | ||
+ | ResourceListToAccumulate = { | ||
+ | { Resource = " | ||
+ | }, | ||
+ | }, | ||
+ | { | ||
+ | DataType = " | ||
+ | IsNeedExecution = true, | ||
+ | ActionList = { | ||
+ | { | ||
+ | DataType = " | ||
+ | AmountToPay = { | ||
+ | { Resource = " | ||
+ | }, | ||
+ | IsDeliveryAction = true, | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | FailureConditionList = { | ||
+ | { | ||
+ | DataType = " | ||
+ | DaysToComplete = 30, | ||
+ | }, | ||
+ | }, | ||
+ | QuestSuccessActionList = { | ||
+ | { | ||
+ | DataType = " | ||
+ | BudgetCategory = " | ||
+ | ResourceCollection = { | ||
+ | { Resource = " | ||
+ | }, | ||
+ | }, | ||
+ | }, | ||
+ | QuestFailActionList = {}, | ||
+ | }) | ||
+ | </ | ||
+ | |||
+ | ==== Events ==== | ||
+ | |||
+ | Similarly to quests, events have been reworked to trigger a list of actions ('' | ||
+ | |||
+ | An example of event is given in the '' | ||
+ | |||
+ | ===== Foundation 1.8.0.0 ===== | ||
+ | |||
+ | * [[changelog: | ||
+ | |||
+ | ==== Resource bundles ==== | ||
+ | |||
+ | Building part costs have been changed to allow for building in steps, with the builder bringing a bundle of resources for each step. | ||
+ | |||
+ | To allow this, '' | ||
+ | |||
+ | The number of construction steps built for each bundle is proportional to a bundle' | ||
+ | |||
+ | ===== Foundation 1.7.1 ===== | ||
+ | |||
+ | * [[changelog: | ||
+ | |||
+ | ==== Texture loading ==== | ||
+ | |||
+ | Some '' | ||
+ | |||
+ | Therefore, we added a way to explicitly choose the type of an asset to load, when calling '' | ||
+ | |||
+ | This third parameter is currently only used for image assets. | ||
+ | |||
+ | <file lua> | ||
+ | mod: | ||
+ | mod: | ||
+ | mod: | ||
+ | </ | ||
+ | |||
+ | **Technical Info: | ||
+ | |||
+ | ===== Foundation | ||
==== BUILDING and MONUMENT asset types ==== | ==== BUILDING and MONUMENT asset types ==== | ||
- | Monuments have been reworked, and the '' | + | Monuments have been reworked, and the '' |
=== Buildings === | === Buildings === | ||
- | A building' | + | A building' |
<file lua> | <file lua> | ||
Line 34: | Line 367: | ||
=== Monuments === | === Monuments === | ||
- | Monuments are now created around a single building part, placed before all the others. This part is the one selected just after selecting the monument in the building selection menu. This part has to be specified in the property '' | + | Monuments are now created around a single building part, placed before all the others. This part is the one selected just after selecting the monument in the building selection menu. This part has to be specified in the property '' |
- | The core building part, if removed, will remove the whole monument. Like for the market, the core building part can be used for preview only, and be invisible once built by setting '' | + | The core building part, if removed, will remove the whole monument. Like for the market, the core building part can be used for preview only, and be invisible once built by setting '' |
<file lua> | <file lua> | ||
Line 44: | Line 377: | ||
if (foundation.getGameVersion == nil or version.cmp(foundation.getGameVersion(), | if (foundation.getGameVersion == nil or version.cmp(foundation.getGameVersion(), | ||
- | myMonument.DataType = " | + | myMonument.DataType = " |
myMonument.BuildingPartSetList = { | myMonument.BuildingPartSetList = { | ||
{ | { | ||
Line 51: | Line 384: | ||
} | } | ||
else | else | ||
- | myMonument.DataType = " | + | myMonument.DataType = " |
- | myMonument.AssetCoreBuildingPart = " | + | myMonument.AssetCoreBuildingPart = " |
myMonument.BuildingPartSetList = { | myMonument.BuildingPartSetList = { | ||
{ | { | ||
Line 70: | Line 403: | ||
Before: | Before: | ||
- | * CorePart - '' | + | * CorePart - '' |
- | * StartPart - '' | + | * StartPart - '' |
- | * EndPart - '' | + | * EndPart - '' |
Now: | Now: | ||
- | * CorePart - '' | + | * CorePart - '' |
- | * StartPart - '' | + | * StartPart - '' |
- | * EndPart - '' | + | * EndPart - '' |
==== Slope constructor ==== | ==== Slope constructor ==== | ||
- | Improvements have been made to the bridge, and you now have to setup bridge end parts ('' | + | Improvements have been made to the bridge, and you now have to setup bridge end parts ('' |
==== Building zone and basement ==== | ==== Building zone and basement ==== | ||
- | To improve the number of basement spawned, scalable building parts (with constructor '' | + | To improve the number of basement spawned, scalable building parts (with constructor '' |
+ | |||
+ | The [[api: | ||
===== Foundation 1.4.5.1009 ===== | ===== Foundation 1.4.5.1009 ===== |
migration.txt · Last modified: 2023/09/05 11:21 by mathieu