master
Initial commit
v2.7.0 Added Customize Trait Scroll — horizontal scrolling marquee for trait descriptions in the Customize (Niel) window. In MBM 2.1.2.0 the vanilla TextStreamer was removed from UI prefabs; the mod restores it at runtime on Type → Text (TMP) rows (mirroring BreedingRoom2 / UpgradedOptions). New files: TextStreamerRestore/CustomizeTraitTextStreamerLogic.cs, Patches/TextStreamerRestorePatch.cs. Customize Trait Scroll setting in the MBM.ModLoader menu (enabled by default). Localization: EN / RU / ZH-CN. Slave and Monster coverage — trait paths are generated for both tabs (Slave, Monster): Race Trait0/1 and Trait0–Trait7 (20 Type rows total). Scroll restart on race change — postfix on PlayData.NielCustomizeRaceLeft / NielCustomizeRaceRight: after changing race, text is refreshed and the marquee restarts from the right edge. FixCustomizePatch (original: LanFengVVV / Waventus) — fixes for the Customize (Niel) panel in MBM 2.1.2.0: one-time InfoBlock height increase; restores positive/negative trait name and description coloring via BinderTextMeshPro + ReferenceCharacter. In TSO v2.7.0 the patch was refined and integrated with the marquee: dynamic search for all Type nodes under Content/Trait (no hard-coded Slave/Monster paths); TargetIndex on Type (index from parent name TraitN); EnsureBinderTextMeshPro to avoid NRE on 2.1.2.0. File: Patches/FixCustomizePatch.cs (Priority.Last, after TextStreamer). Fixes / compatibility Flatten <BR> for horizontal scroll — postfix on ReferenceUnit.GetString (dataType 21 / 23) collapses line breaks and <BR> into a single line (English and localized descriptions in vanilla UI). Complex Breeding Redux (CBR) — [HarmonyAfter("ComplexBreedingRedux")] + [HarmonyPriority(Priority.Last)] on the GetString patch so flatten runs after CBR's LocalizationSystem.ApplyUnitString. For CBR descriptions, only the main text is scrolled: metadata blocks (characteristics, requirements, stat tables) are trimmed at the <size=11> marker. TextStreamer stability — prefix guard on TextStreamer.OnEnable (null m_TargetRectTransform); prefix on Updater.Awake (EnsureReferenceArray); custom LateUpdate for Customize with scroll anchored to the Type viewport. Pixy return — corpse to morgue (STD / death in work room) — regression in the pixy return fix (v2.6.0): a slave with STD dies in a milking, delivery, Birth Show, brothel, or underground room; the animation does not change and pixies do not take the body to the morgue until decay contaminates the room. Cause: after pixy dispatch PreviousRoomIdStack remains set, so UpdatePixy takes the return branch instead of vanilla morgue outbound logic; the return patch kept PixyIsWaiting and tried to send the corpse back. Fix in Patches/PixyReturnFixPatch.cs: PrepareDeadForMorgueTransport (UpdatePixy prefix) — when IsDead and pixy corpse transport is enabled, cancels active MovePixy, clears return stacks and PixyUnitSeqList so vanilla morgue logic runs on the same tick; TryForceDeadPresentation — forces EState.Dead for stuck work animations (birth, milking, sex, brothel); ShouldVanillaReturn, supplement, and repair skip dead slaves that need morgue transport.
Добавить .gitattributes, .gitignore, README.md и LICENSE.txt.
.
## v2.5.0
Обновление манифеста