Changelog for Patch 22.214.171.124 (added 15 October 2018) - Part II:
We changed the way we calculate AV and DV from equipment across similar body parts:
* Previously, creatures always received AV and DV modifiers from equipment equipped on any body part that was part of their original body plan. Body parts added later (e.g., via mutations such as Multiple Legs) were treated differently; equipment equipped on these parts didn't have their AV and DV modifiers factored into the creature's final AV and DV calculations. This approach generally worked well until a recent patch where we added more realistic body plans for several creature types. The old system gave creatures with several natural body parts (e.g., spiders and crabs) an unintended advantage; they could stack AV or DV simply by equipping a bunch of armor to their limbs. For example, a spider could stack AV by equipping four sets of steel boots. We changed the calculation to be more simulative. Now, AV and DV modifiers are averaged across all similar body parts. The example spider now has the AV and DV modifiers from its Feet equipment averaged over all four sets of feet.
* Rounding is done once for each of the total AV and DV tallies. We round away from zero. For example, if you have two Feet slots and you wear a pair of +3AV/-3DV boots on one of them, assuming no other armor modifications, you'll get +2 AV and -2 DV.
* If the AV/DV calc results in a piece of equipment contributing more or less AV or DV than its stats imply, the display color of that stat is changed (red for 'contributing less' and green for 'contributing more'). An explanation is also appended to the item's description.
* We removed the UI elements that explained which slots don't contribute to AV or DV as they're no longer relevant.
* We changed snakeskin armlet to +2 DV and tread guards to +2 AV. This change replicates their balance in the old system since -- generally speaking -- you have two arms and, with the motorized treads implant, two treads.
* Equipment bonuses and penalties other than AV and DV are still contributed individually per body part.
We generalized the effects of normality gas and made them variable instead of binary:
* To support this change, we added two new status effects: astrally burdened and astrally tethered. Burdened creatures have difficulty performing actions that morph spacetime. Tethered creatures can't perform those actions at all.
* The density of normality gas now determines whether it bestows the burdened or tethered effect on things it shares a tile with.
* Astral effects now interdict Clairvoyance and Precognition.
* Added normality fields.
* Added a new piece of rare furniture: norm core.
* Added a new item: ontological anchor.
* Historic relics found outside of historic sites now have much better generated names.
* If you have motorized treads, you can no longer use the interaction menu equip and autoequip commands to inappropriately equip footgear on your lower body.
* Puddles on the ground are now displayed under the Liquids category.
* The following items no longer modify your reputation if equipped inappropriately (i.e. held or put in the thrown weapon slot): croccasins, blood-stained neck-ring, goggles, mirrorshades, Issachari banner, Issachari sun veil, mechanical wings, gyrocopter backpack, portable beehive, leafy helm, leafy vest, symbiotic firefly, puma chitin vest, ape fur cloak, ape fur gloves, ape fur hat, electric snail shell, fork-horned helmet, fungal infections, the Ruin of House Isner, engraved items, painted items, jewel-encrusted items, figurines, and reputation-altering relics.
* Scavenging through trash now yields items based on the depth the trash was found in, not the depth it was rifled through.
* Fixed a bug that allowed you to gain arbitrary amounts of reputation while dominating a creature by removing and re-equipping gear on your original body.
* Fixed a bug with cooking in the Rainbow Wood.
* Fixed a bug that caused swarm racks not to fire.
* Fixed a bug that broke flamethrowers.
* [modding] The IActivePart part base has a new boolean property, WorksOnEquipper, to specify that the item only works if the item is properly equipped (in an armor slot if it has the Armor part, and held otherwise). AddsRep and EquipStatBoost have this property set to true by default, and the WorksHeld argument has been removed from EquipStatBoost.AppendBoostOnEquip().
* [modding] AddsRep is now an IActivePart, inheriting its properties and supported functionality.
* [modding] DeploymentGrenade's UsabilityEvent is now sent to the grenade object instead of the cell it lands in.
* [modding] Added an item property, RealityStabilization, that generates astral burdening and tethering effects. It has the following properties: Visibility (number 0-3, 0 = effect produced is invisible, 1 = effect shows up in look, 2 = effect shows up in look + has a render effect, 3 = shows up in look + has more dramatic render effect; defaults to 2), SelfVisibility (the visibility to use on the effect the object applies to itself, if any; defaults to 0), UseCharge (if > 0, the part runs on energy cell charge and the strength of the effect produced depends on the remaining charge in the cell. Anything over 2500 charge use Strength = 100), FromGas (the Strength of the effect produced is equal to the density of the Gas part of the item), Strength (if specified, explicitly sets the effect's base strength, overriding UseCharge and FromGas), VariableStrength (die roll; if specified, the higher of the result and the value set for Strength will be used), HitpointsAffectPerformance (whether the strength of the effect produced is reduced in proportion to damage to the item, defaults to false), CellEffect (whether the item puts its effects on things in the same cell as it, defaults to true), AffectsSelf (whether the item puts its effect on itself, defaults to true), WorksOnEquip (whether the item puts its effect on someone equipping it regardless of how it's equipped, defaults to false), WorksOnEquipAsArmor (whether the item puts its effect on someone equipping it if they're equipping it in the proper slot according to its Armor part), and Projective (whether the effect produced can potentially affect tiles the subject of the effect is trying to move to; defaults to false). Devices whose effects might be interdicted by astral tethering can have an intproperty, called RealityStabilizationPenetration, which will be subtracted from the effective strength of tethering effects the devices are contesting.
* [modding] Added a RealityDistortionBased flag to several mutations. Use it to control whether a mutation's effects are interdicted by astral tethering. Mutations affected: Clairvoyance, Precognition, Psychometry, Sense Psychic, Telepathy, Domination, Sunder Mind, Syphon Vim, and Beguiling. The flag is on by default for Clairvoyance, Precognition, and Psychometry.
* [modding] Added a new part, DeploymentMaintainer, for items. It is an IPoweredPart and has the inherited properties. Its own properties include: Blueprint (the blueprint of the objects it creates), Duration (how long the objects last, die roll, defaults to null i.e. permanent), Radius (integer radius it fills with objects, or -1 for every tile in the zone), Chance (the percentage chance a given tile will receive an object, defaults to 100), AtLeast (a minimum number of objects to try to deploy when Chance is in use, defaults to 0), MaintenanceInterval (the number of turns that must pass between attempts at maintaining the deployment, defaults to 10), UsabilityEvent (an event that must be successfully fired on the tile the item is in in order for the item to work, defaults to null i.e. none), AccessibilityEvent (an event that must be successfully fired on a given tile in its radius in order to deploy an object there, defaults to null i.e. none), ActiveMaintenance (whether objects deployed are actively maintained by the item and disappear if it is nonfunctional, defaults to true), RealRadius (whether to deploy in a circular radius rather than the usual engine square radius), BlockedBySolid (whether solid tiles block deployment, defaults to true), BlockedByNonEmpty (whether tiles must be empty for deployment, defaults to true), Seeping (whether BlockedBySolid use seeping logic where objects like stakes don't block), DustPuffEach (whether each deployed object generates a dust puff, defaults to false), NoXPValue (whether objects with XP value get it cleared out, defaults to true), and LinkRealityStabilization (whether to configure the deployment maintainer, which should have a RealityStabilization part, as an effect strength source on any RealityStabilization parts on deployed objects).