Destructive Changes - KonradHeinser/EBSGFramework GitHub Wiki
Things listed on this page are alterations to basic xml stuff that will be triggered by a new version of Rimworld, but are too numerous to list in the updates page. When these changes are direct replacements for something, they will always have the same default function as before unless explicitly stated otherwise.
When going through other pages in this wiki, some of the code may be different than your existing code, but those changes aren't listed here. In those cases, I was able to make my changes in a way that shouldn't have any impact going forward, and updating those portions of your code is recommended, but optional.
Ability Validator has merged many of its effects into ranges. This means that instead of using a min tag and a max tag, they are merged into singular ranges with an xml change that would look something like this:
<min>A</min>
<max>B</max>
<range>A~B</range>
The new ranges and the tags they replace:
- bodySize : minBodySize and maxBodySize
- targetLightLevel : minTargetLightLevel and maxTargetLightLevel
- casterLightLevel : minCasterLightLevel and maxCasterLightLevel
- progressThroughDay : minPartOfDay and maxPartOfDay
- rainRate : minimumRainRate and maximumRainRate
- snowRate : minimumSnowRate and maximumSnowRate
The success chance stuff for Create Linked Hediffs will have a minor change to them. Instead of all the success chance stuff sitting directly in the comp, they will be in a special item in the comp labelled successChance. For example, the example on that page changed its comp like so:
<comps>
<li Class="EBSGFramework.CompProperties_CreateLinkedHediff">
<hediffOnCaster>DevilsBargain_Might</hediffOnCaster>
<hediffOnTarget>DevilsBargain_MightBuff</hediffOnTarget>
<baseSuccessChance>0.75</baseSuccessChance>
<casterStatChance>SocialImpact</casterStatChance>
<targetStatChance>SocialImpact</targetStatChance>
<successMessage>BargainAccepted</successMessage>
<failureMessage>BargainRejected</failureMessage>
</li>
</comps>
<comps>
<li Class="EBSGFramework.CompProperties_CreateLinkedHediff">
<hediffOnCaster>DevilsBargain_Might</hediffOnCaster>
<hediffOnTarget>DevilsBargain_MightBuff</hediffOnTarget>
<successChance>
<baseSuccessChance>0.75</baseSuccessChance>
<casterStatChance>SocialImpact</casterStatChance>
<targetStatChance>SocialImpact</targetStatChance>
<successMessage>The bargain was accepted</successMessage>
<failureMessage>The bargain was rejected</failureMessage>
</successChance>
</li>
</comps>
The old multiply/divide setup has also changed to make it easier to use a wider variety of stats. casterStatDivides changed into casterStatEffect, and targetStatMultiplies changed into targetStatEffect. Instead of a True False situation, it now uses the following options: Multiply, Divide, OneMinusMultiply, and OneMinusDivide. The OneMinus options mean 1 - Stat Value, and the effects default to the same thing the original booleans would have done.
Dynamic Resource Genes that use the conditions on resource drain/regeneration have their light level merged into a singular range and the time period changed into a single range, similar to the ability validator's change mentioned above:
<min>A</min>
<max>B</max>
<range>A~B</range>
The new ranges and the tags they replace:
- lightLevel : minLightLevel and maxLightLevel
- progressThroughDay : startTime and endTime
Genetic Romance Chance is replacing its current clunky bool system with an enum system. In both cases, the options are Higher, and Lower. The other notable difference is that the higher/lower check will now compare the current value with the default instead of 1, so stats like PawnBeauty should be less confused by these settings than before
- carrierReq replaces onlyWhileLoweredCarrier and onlyWhileRaisedCarrier
- otherReq replaces onlyWhileLoweredOther and onlyWhileRaisedOther
For example, the example on that page went from this:
<modExtensions>
<li Class="EBSGFramework.GRCExtension">
<carrierStat>PsychicSensitivity</carrierStat>
<otherStat>PsychicSensitivity</otherStat>
<onlyWhileLoweredOther>True</onlyWhileLoweredOther>
</li>
</modExtensions>
to this:
<modExtensions>
<li Class="EBSGFramework.GRCExtension">
<carrierStat>PsychicSensitivity</carrierStat>
<otherStat>PsychicSensitivity</otherStat>
<otherReq>Lower</otherReq>
</li>
</modExtensions>
Hediffs at Age replaces the minAge and maxAge with a singular validAges. For example, a 0 min 40 max becomes 0~40 in validAges
<validAges>0~40</validAges>
Various Conditional Stat Affecters related to the map have been updated to use ranges instead of the previous min/max separated tags. More specifically:
-
Light : minLightLevel and maxLightLevel become lightLevel
-
Rain and Snow : minimumRainRate and maximumRainRate become rainRate, while minimumSnowRate and maximumSnowRate become snowRate
-
Temperature : minTemp and maxTemp become temp
-
Time : minPartOfDay and maxPartOfDay become progressThroughDay
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minHemogen and maxHemogen merge into a singular range called validHemogen
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- minSeverity and maxSeverity merge into a singular range called validSeverity
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- checkedGenes become relatedGenes which acts the same
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- checkedGenes become relatedGenes which acts the same
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- relatedGene becomes relatedGenes, which is a list of genes instead of the old singular gene system
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- relatedGene becomes relatedGenes, which is a list of genes instead of the old singular gene system
Gene in Colony Mood Toggle Precept
- EBSGFramework.EBSGExtension becomes EBSGFramework.EBSGThoughtExtension
- relatedGene becomes relatedGenes, which is a list of genes instead of the old singular gene system
Related to the precept updates, the Revered Meme Example has also been updated for those who rely on a more robust example
Most explosions in the framework will switch from using a bool system to get exclusions to using an enumerable system. To update yours, delete injureSelf, injureAllies, and injureNonHostiles, and replace them with exclusions. The options for exclusions is None, Self, Allies, and NonHostiles:
<exclusions>NonHostiles</exclusions>