Extending Monster Data
Эта страница описывает внутренний код движка, доступный исключительно лицензиатам реда кций Source и Studio.
Модель данных монстров MCE спроектирована для расширения. Эта страница охватывает ключевые структуры данных, добавление новых монстров с пользовательскими формами, работу системы эволюции и безопасное расширение модели без нарушения существующих файлов сохранения.
Обзор модели данных
MonsterEntry (ScriptableObject — один на вид)
├── DexNumber
├── AvailableForms: List<Form>
└── DataByForm: List<DataByFormEntry> ← одна запись на форму
├── Graphics (спрайты, материалы, иконки, мировые спрайты)
├── Types (FirstType, SecondType)
├── Dex (описание, вид, рост, вес, крик)
├── Abilities (обычные + скрытые)
├── Training (EVYield, CatchRate, BaseFriendship, BaseExperience, GrowthRate)
├── Breeding (EggGroups, EggCycles, BreedingData, соотношение полов)
├── Wild (шанс побега, удерживаемые предметы)
├── Moves (по уровню, при эволюции, яйцевые атаки, другие/TM)
├── BaseStats: Dictionary<Stat, byte>
├── Evolutions: List<EvolutionData> ← полиморфный
├── MegaEvolutions: Dictionary<Item, Form>
└── Flags (IsLegendary, IsMythical, IsUltraBeast, CanLearnAnyMove)
Во время выполнения MonsterInstance оборачивает MonsterEntry с состоянием конкретного экземпляра: уровень, IVs, EVs, текущее HP, прозвище, удерживаемый предмет, дружба и активная форма.
Добавление нового монстра
Шаг 1: Создание актива MonsterEntry
Используйте меню Assets > Create > MCE > Monster Database > Monster (или правый клик Create > MCE > Monster Database > Monster), чтобы создать новый MonsterEntry ScriptableObject.
Заполните следующие поля:
- DexNumber — Индекс монстра в покедексе.
- LocalizableName — Ключ локализации (автозаполняется кнопкой "Auto" на основе имени актива по шаблону
Monsters/{name}). - AvailableForms — Как минимум, добавьте один актив
Form(обычно "Normal"). Движок автоматически читает блестящие варианты изShinyVersionкаждой формы.
Шаг 2: Настройка DataByFormEntry
Для каждой формы в AvailableForms запись DataByFormEntry хранится в списке DataByForm. Каждая запись содержит:
Graphics
| Поле | Тип | Назначение |
|---|---|---|
Front / Back | Material | Материалы боевых спрайтов (самка/по умолчанию) |
FrontMale / BackMale | Material | Материалы для самца (показываются, если HasMaleMaterialOverride) |
FrontShiny / BackShiny | Material | Материалы блестящих вариантов |
Icon / IconShiny / IconMale / IconShinyMale | Sprite | Иконки меню/команды |
EggMaterial / EggIcon | Material / Sprite | Визуализация яйца |
WorldIdleSprite* / WorldWalkingSprite* | Sprite / List<Sprite> |