Tsygan
Популярные репозитории
- C#
- C#
- C#
- C#
141 активность за последний год
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/MBM.ModLoader2 месяца назад
- TsyganДобавлены коммиты в ветку test в репозиторий Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/MBM.ModLoader2 месяца назад
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/MBM.ModLoader
- TsyganВлит запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/ComplexBreedingRedux
- ecffaac
Улучшение, Исправление дефекта, Документация
- 12a8aff
## [0.4.1.0] ### Улучшения - **Система идентификации видов** — полностью заменён механизм определения вида персонажа. Старая система: вид кодировался в alpha-канале `SkinColor` (каждому виду присваивался уникальный alpha вроде `0.999114f`), определялся через `GameData.ColorId()` = `(int)Math.Round(c.a * 1_000_000f)`. Ограничения: 1 цвет кожи на вид, блокировка кастомизации, хрупкость из-за float-точности. Новая система: вид хранится в баффе `SpeciesIdentity` (`EBuffType 4001`) как строка `InternalName` (например `"Drake"`, `"Angel"`). Бафф персистентен в сохранениях. Определение вида — чтение баффа через `GameData.GetSpeciesIdentity()`. `SkinColors` стал массивом `Color[]` (палитра), цвет выбирается случайно при создании. Затронуто ~15 файлов: - `ConfigBuffs.cs` — добавлен `SpeciesIdentity = (EBuffType)4001` - `ISpeciesData.cs` / `SpeciesData.cs` — `Color SkinColor` → `Color[] SkinColors` - `SpeciesRegistry.cs` (24 вида) — убран alpha из `SkinColor`, переименовано в `SkinColors[]` - `SpeciesCoreRegistry.cs` (8 базовых видов) — убран alpha `0.998111f` из `SkinColors` - `GameData.cs` — удалён `ColorId()`, `TryGetSpecies(Character)` переписан на чтение баффа, добавлены `SetSpeciesIdentity()` / `GetSpeciesIdentity()` + перегруз `TryGetSpecies(string?)` - `FemaleSpeciesSetup.cs` — `SetSpecies()` использует `SkinColors[Random]` + проставляет бафф - `BreedingSystem.cs` — `ApplyFetus()` проставляет бафф, `ApplySpeciesColors()` сравнивает по баффу вместо `ColorId`, `ApplyCoreColors()` сравнивает RGB напрямую - `NpcInitPatches.cs` — NPC с evolved-видами (Bella/Drake, Karen/Werewolf, Nero/Nekomata, Niel/Drake) получают бафф при инициализации, `SkinColor` → `SkinColors[0]` - `SkinColorPatch.cs` — упрощён до `__result.a = 1f` (страховка для старых сохранений с alpha-хаком) - `SkinColorSetPatch.cs` — удалён (alpha больше не несёт данных) - `SpeciesCoreDataMigrator.cs` — `SkinColor` → `SkinColors` - `SkinColorMigration.cs` (**новый**) — lazy-миграция старых сохранений: словарь 24 legacy alpha → InternalName, вызывается как fallback из `TryGetSpecies` при отсутствии баффа, читает сырой `m_SkinColor` через рефлексию, проставляет бафф и исправляет alpha на 1 - **`SkinColorSystem` — палитра для всех персонажей** — принудительное применение палитры расширено с Female на всех `Character`. При первом обращении к геттеру `SkinColor` персонаж получает цвет из палитры своего вида, если текущий RGB не совпадает ни с одним вариантом палитры. Male-монстры разрешают палитру по имени C#-типа → `SpeciesRegistry` (Goblin, Orc, Werewolf, Minotaur, Horse, Salamander). Исключены: 14 ванильных уникальных NPC (Anna, Aure, Bella, Claire, Karen, Nero, Sylvia, Vivi, Amilia2, Barbara2, Flora2, Lena2, Niel2, Sena2) и клиенты борделя (Client, TestClient) - **`SkinColorSystem` — гибридная палитра** — `PickRandom` выбирает случайный базовый цвет из палитры и добавляет случайное отклонение `±Deviation` (0.06 ≈ ±15/255) по каждому каналу RGB с `Clamp01`. Каждый персонаж одного вида получает уникальный оттенок вместо одинакового цвета. `IsInPalette` использует `Tolerance = 0.07` (чуть больше Deviation для float-погрешности) — уже назначенные цвета с отклонением распознаются как валидные и не перезаписываются при повторном обращении к геттеру - **`SkinColorSystem` — палитра HairColors** — система управления цветом расширена на `HairColor` для Male Minotaur, Salamander и Werewolf (тело/чешуя/шерсть рендерится через hair-слоты). Добавлены `ResolveHairPalette()`, `EnforceHairPalette()` с явным whitelist `MaleHairPaletteTypes`. `EnforcePalette` применяет две независимых палитры: SkinColors и HairColors — каждая проверяется и корректируется отдельно при загрузке сохранений. `EnforceHairPalette` проверяет `character is Male` — Female не затрагиваются - **`ISpeciesData.HairColors`** — свойство `Color? HairColor` (единичный цвет) заменено на `Color[]? HairColors` (палитра) в `ISpeciesData` и `SpeciesData`. Единая палитра для Female и Male, аналогично `SkinColors`. Все 20 видов с `HairColor` переведены на `HairColors = [color]`. `FemaleSpeciesSetup.SetSpecies` — `PickRandom(HairColors)` вместо детерминированного `HairColor`. `BreedingSystem.ApplySpeciesColors` — `PickRandom(HairColors)` + Lerp с `HairColorFocus`. Обработка для Male ограничена whitelist `MaleHairPaletteTypes` (Minotaur, Salamander, Werewolf) — новые виды добавляют `HairColors` в реестр и whitelist без правки патчей - **`SpeciesRegistry` — расширена палитра Goblin** — вместо одного цвета кожи Goblin получил палитру из 5 зелёных оттенков: тёмно-бирюзовый (оригинал), болотно-зелёный, светло-зелёный, тёмно-тиловый, оливково-зелёный. В сочетании с гибридной палитрой (±0.06) даёт широкую вариативность внешности гоблинов - **`SpeciesRegistry` — расширена палитра Orc** — 1→5 оливково-коричневых оттенков: оригинальный оливковый, тёплый оливковый, тёмно-болотный, хаки-коричневый, серо-оливковый - **`SpeciesRegistry` — расширена палитра Werewolf** — SkinColors: 1→5 бледно-серых оттенков для Female: оригинальный светло-серый, тёплый бежево-серый, холодный пепельный, оливково-серый, серо-коричневый. HairColors: собственная 5-цветная палитра шерсти Male (перенесена из SkinColors) — обработка через `MaleHairPaletteTypes` наравне с Minotaur и Salamander - **`SpeciesRegistry` — расширена палитра Minotaur** — SkinColors 1→5: светло-персиковый (оригинал), тёмно-коричневый бычий, красно-бурый, чёрно-коричневый, серо-коричневый. HairColors (5 тонов, совпадают с SkinColors) — шерсть Male рендерится через hair-слоты, каждый минотавр получает независимый оттенок шерсти из палитры - **`SpeciesRegistry` — расширена палитра Salamander** — SkinColors (брюшко) 1→5: кремовый (оригинал), тёплый персик, слоновая кость, мягкий бежевый, бледно-розовый крем. HairColors (5 красно-бордовых тонов для Male): тёмно-красный (оригинал), тёплый малиновый, глубокий бордовый, тёмная ржавчина, тёмный винный — чешуя Male рендерится через hair-слоты. `ScaleColors` (чешуя Female) без изменений — 1 оригинальный тёмно-красный
- d1ddae0
.
- b1cd5e6
## [0.4.1.0-dev-3] - в разработке ### Улучшения - **`SkinColorSystem` — палитра для всех персонажей** — принудительное применение палитры расширено с Female на всех `Character`. При первом обращении к геттеру `SkinColor` персонаж получает цвет из палитры своего вида, если текущий RGB не совпадает ни с одним вариантом палитры. Male-монстры разрешают палитру по имени C#-типа → `SpeciesRegistry` (Goblin, Orc, Werewolf, Minotaur, Horse, Salamander). Исключены: 14 ванильных уникальных NPC (Anna, Aure, Bella, Claire, Karen, Nero, Sylvia, Vivi, Amilia2, Barbara2, Flora2, Lena2, Niel2, Sena2) и клиенты борделя (Client, TestClient) - **`SkinColorSystem` — гибридная палитра** — `PickRandom` теперь выбирает случайный базовый цвет из палитры и добавляет случайное отклонение `±Deviation` (0.06 ≈ ±15/255) по каждому каналу RGB с `Clamp01`. Каждый персонаж одного вида получает уникальный оттенок вместо одинакового цвета. `IsInPalette` использует `Tolerance = 0.07` (чуть больше Deviation для float-погрешности) — уже назначенные цвета с отклонением распознаются как валидные и не перезаписываются при повторном обращении к геттеру - **`SkinColorSystem` — палитра HairColors** — система управления цветом расширена на `HairColor` для видов с отдельной палитрой hair-слотов Male (шерсть Minotaur, чешуя Salamander). Добавлены `ResolveHairPalette()`, `EnforceHairPalette()`. `EnforcePalette` применяет две независимых палитры: SkinColors и HairColors — каждая проверяется и корректируется отдельно при загрузке сохранений - **`ISpeciesData.HairColors`** — добавлено свойство `Color[]? HairColors` в `ISpeciesData` и `SpeciesData`. Виды, у которых Male рендерит тело/чешую/шерсть через hair-слоты (не skin-слоты), указывают палитру в `HairColors`. Обработка в `MaleAppearancePatch`, `MaleInitPatches`, `SkinColorSystem.EnforceHairPalette` — единая generic проверка `species.HairColors is { Length: > 0 }` вместо видоспецифичных if/else цепочек. Единственное исключение — Werewolf (`HairColor = SkinColor`, структурная особенность: skinSlots=0). Новые виды добавляют `HairColors` в реестр без правки патчей - **`SpeciesRegistry` — расширена палитра Goblin** — вместо одного цвета кожи Goblin получил палитру из 5 зелёных оттенков: тёмно-бирюзовый (оригинал), болотно-зелёный, светло-зелёный, тёмно-тиловый, оливково-зелёный. В сочетании с гибридной палитрой (±0.06) даёт широкую вариативность внешности гоблинов - **`SpeciesRegistry` — расширена палитра Orc** — 1→5 оливково-коричневых оттенков: оригинальный оливковый, тёплый оливковый, тёмно-болотный, хаки-коричневый, серо-оливковый - **`SpeciesRegistry` — расширена палитра Werewolf** — 1→5 бледно-серых оттенков: оригинальный светло-серый, тёплый бежево-серый, холодный пепельный, оливково-серый, серо-коричневый - **`SpeciesRegistry` — расширена палитра Minotaur** — SkinColors 1→5: светло-персиковый (оригинал), тёмно-коричневый бычий, красно-бурый, чёрно-коричневый, серо-коричневый. Добавлен `HairColors` (5 тонов, совпадают с SkinColors) — шерсть Male рендерится через hair-слоты, каждый минотавр получает независимый оттенок шерсти из палитры - **`SpeciesRegistry` — расширена палитра Salamander** — SkinColors (брюшко) 1→5: кремовый (оригинал), тёплый персик, слоновая кость, мягкий бежевый, бледно-розовый крем. Добавлен `HairColors` (5 красно-бордовых тонов для Male): тёмно-красный (оригинал), тёплый малиновый, глубокий бордовый, тёмная ржавчина, тёмный винный — чешуя Male рендерится через hair-слоты (нет `MaleScaleColorSlotNameList`). `ScaleColors` (чешуя Female) без изменений — 1 оригинальный тёмно-красный
2 месяца назад - TsyganПрокомментирован запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganСоздан запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку test в репозиторий Tsygan/ComplexBreedingRedux
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/TimeScaleOptimizer2 месяца назад
- TsyganДобавлены коммиты в ветку test в репозиторий Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку test в репозиторий Tsygan/ComplexBreedingRedux
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/TimeScaleOptimizer2 месяца назад
- TsyganВлит запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку master в репозиторий Tsygan/ComplexBreedingRedux
- 7c10ae8
Исправление дефекта, Улучшение, Документация
- 217c52a
.
- 30bfca6
## [0.4.0.0-dev-2] ### Улучшения - **`WombStretchSystem`** — добавлен множитель прогресса растяжения матки от тира класса faction-клиента. Клиенты низких рангов (Unknown ×0.5, Obscure ×0.75) почти не влияют на растяжение, высоких рангов (Reputable ×1.5, Famous ×2.0, Fabled ×2.5) — значительно. Монстры не затронуты (×1.0). Тир определяется по `FactionClass.StartingFromReputation` клиента - **`WombStretchSystem`** — добавлен прогресс растяжения при сексе с презервативом (×0.7). Ранее презерватив полностью блокировал прогресс, т.к. не вызывался ни `BeImpregnated`, ни увеличение `CumshotOutsideCount`. Теперь `CumShotOutsidePatch` отслеживает переход состояния `CumShotInside/CumShotOutside → Idle` при наличии баффа `Condom`. Четыре варианта финиша: inside ×1.0, outside ×0.3, condom inside ×0.7, condom outside ×0.21 - **`WombStretchSystem`** — увеличены делители стоимости перехода уровня матки: S→A ÷2.0, A→B ÷2.5, B→H ÷3.0, H→E ÷4.0 (ранее ÷1.0, ÷1.5, ÷2.0, ÷3.0). Прокачка матки стала заметно медленнее на всех уровнях
- efb60b1
## [0.4.0.0-dev-1] ### Улучшения - **`TentacleSystem`** — полностью переработана механика скиллов комнаты тентаклей. Старая система: одноразовый 30%-бросок при окончании каждого акта, максимум 1 скилл за акт, чистый рандом без гарантии прогресса. Новая система: каждый скилл накапливает прогресс за каждый акт, при достижении порога (1.0) эффект срабатывает гарантированно. Все скиллы копят прогресс одновременно и независимо. Три уровня скорости: **быстрые** (25%/акт → 4 акта) — Drain Breasts, Drain Magical/Demonic/Elemental/Feral; **средние** (20%/акт → 5 актов) — Enlarge Breasts, Drain Womb, Drain Sacred; **медленные** (15%/акт → 7 актов)— Enlarge Womb, Taint, Drain Eternal. Прогресс хранится в баффе `TentacleProgress` на персонаже. Vitality списывается только в момент срабатывания — если не хватает, прогресс сохраняется. Дополнительно исправлен баг старой системы: скиллы дрейна эссенций (96–101) блокировали все последующие скиллы даже при неудаче - **`ApplyUnitString`** — в тултипе эссенций отображается текст прогресса вытягивания (`Вытягивание: 75%`) для рабынь в комнате тентаклей. Прогресс виден только при активном скилле дрейна соответствующей эссенции - **`EssenceDrainProgressUI`** — ~~под текстом прогресса в тултипе трейта отображался визуальный прогресс-бар (Image, anchorMax)~~ **УДАЛЕНО** — заменено на единый прогресс-бар в hover-тултипе персонажа. Удалены файлы `EssenceDrainProgressUI.cs`, `TooltipDrainBarPatch.cs`, убран код прогресса из `ApplyUnitString` case 23 и `ReferenceUnitGetStringPatch` - **`TentacleProgressBar`** — в hover-тултипе персонажа (наведение на рабыню в комнате тентаклей) отображаются прогресс-бары всех активных скиллов: Drain/Enlarge Breasts, Drain/Enlarge Womb, Taint, Drain 6 эссенций. Бар реализован через цветные Unicode-символы `█` в rich text (`<color=#66CC22>` заполнение / `<color=#333>` фон). Отображается только для активных скиллов. Эссенции берут локализованное имя из `IEssenceData.Name`. Добавлен метод `TentacleSystem.GetSkillProgress` для получения прогресса любого скилла - **`TooltipAutoWidth`** — ширина hover-тултипа рабыни автоматически расширяется под контент. Через `TMP_Text.GetPreferredValues()` вычисляется ширина самой длинной строки, затем `sizeDelta` увеличивается на `Vertical` (контент) и `Horizontal` (обёртка). `ContentSizeFitter.horizontalFit` отключается, чтобы не перезаписывать ручное значение. Vanilla-ширина 362px, при наличии длинных эссенций (например «Эссенция: Демоническая») панель расширяется автоматически - **`State_Milk`** — в hover-тултипе персонажа добавлена строка запаса молока: `Молоко: xx/960 [1/s]` (текущий запас / макс. ёмкость + скорость производства). Скорость `[x/s]` перенесена из строки «Грудь» в строку «Молоко»; строка «Грудь» теперь отображает только размер и ёмкость: `Грудь: Средняя [960]` - **`WombStretchSystem`** — полностью переработана механика расширения матки. Старая система: 5% рандом при каждой беременности (от 1 до 50+ попыток). Новая система: аккумулятивный прогресс за каждый половой акт с учётом расы самца, размера пениса, количества плодов и типа финиша. **Категории рас**: люди (Client — 3%/акт), маленькие (Goblin — 4%/акт), средние (Orc/Werewolf — 7%/акт), крупные (Horse/Minotaur/Salamander — 12%/акт). **Множитель пениса**: Normal ×1.0, Big ×1.5 (Horse всегда ×1.0). **Бонус плодов**: +25% за каждый дополнительный плод. **Тип финиша**: внутрь ×1.0, наружу ×0.3. **Стоимость уровня**: S→A ÷1.0, A→B ÷1.5, B→H ÷2.0, H→E ÷3.0. Требование `BirthCount > wombSize × 2`. Прогресс хранится в баффе `WombStretchProgress` на персонаже, отображается Unicode-баром в hover-тултипе под строкой «Матка»
- 79d3cd5
[0.4.0.0] — in development Enhancements - TentacleSystem — completely reworked the tentacle room skill mechanics. The old system: a single 30% roll at the end of each act, at most 1 skill per act, pure randomness with no guaranteed progress. The new system: each skill accumulates progress per act; upon reaching the threshold (1.0) the effect triggers guaranteed. All skills accumulate progress simultaneously and independently. Three speed tiers: fast (25%/act → 4 acts) — Drain Breasts, Drain Magical/Demonic/Elemental/Feral; medium (20%/act → 5 acts) — Enlarge Breasts, Drain Womb, Drain Sacred; slow (15%/act → 7 acts) — Enlarge Womb, Taint, Drain Eternal. Progress is stored in the TentacleProgress buff on the character. Vitality is deducted only at the moment of triggering — if insufficient, progress is preserved. Additionally, a bug from the old system was fixed: essence drain skills (96–101) would block all subsequent skills even on failure - ApplyUnitString — in the essence tooltip, drain progress text (Draining: 75%) is now displayed for slaves in the tentacle room. Progress is visible only when the corresponding essence drain skill is active - EssenceDrainProgressUI — removed the visual progress bar (Image, anchorMax) that used to appear below the progress text in the trait tooltip. Replaced with a unified progress bar in the character hover tooltip. Files EssenceDrainProgressUI.cs and TooltipDrainBarPatch.cs have been deleted; progress code from ApplyUnitString case 23 and ReferenceUnitGetStringPatch has been removed - TentacleProgressBar — in the character hover tooltip (when mousing over a slave in the tentacle room), progress bars for all active skills are displayed: Drain/Enlarge Breasts, Drain/Enlarge Womb, Taint, Drain for 6 essences. Bars are implemented using coloured Unicode █ characters in rich text (<color=#66CC22> fill / <color=#333> background). Shown only for active skills. Essences use the localized name from IEssenceData.Name. Added TentacleSystem.GetSkillProgress to retrieve progress for any skill - TooltipAutoWidth — the width of the slave hover tooltip now automatically expands to fit content. Using TMP_Text.GetPreferredValues(), the width of the longest line is calculated; then sizeDelta is increased on both the Vertical (content) and Horizontal (wrapper) RectTransforms. ContentSizeFitter.horizontalFit is disabled to prevent it from overwriting the manual value. Vanilla width is 362px; when long essence names (e.g., “Essence: Demonic”) are present, the panel expands automatically - State_Milk — added a milk storage line to the character hover tooltip: Milk: xx/960 [1/s] (current / max capacity + production rate). The [x/s] rate has been moved from the “Breasts” line to the “Milk” line; the “Breasts” line now only displays size and capacity: Breasts: Medium [960]
2 месяца назад - TsyganПрокомментирован запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganПрокомментирован запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganСоздан запрос на слияние в Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку test в репозиторий Tsygan/ComplexBreedingRedux2 месяца назад
- TsyganДобавлены коммиты в ветку test в репозиторий Tsygan/ComplexBreedingRedux