Перейти к основному содержимому
The project's repository is archived as part of the GitHub Archive Program. RogueLibs' code and the documentation will no longer be updated.

Кастомные разблокировки

Класс UnlockWrapper​

Все разблокировки в игре обёрнуты в более гибкий класс - UnlockWrapper.

UnlockWrapper предоставляет методы для получения названия, описания, изображения разблокировки прочие штуки.

предупреждение

Вам наверное не стоит реализовывать UnlockWrapper напрямую. Используйте классы, описанные позже на странице.

Класс DisplayedUnlock​

DisplayedUnlock наследует от класса UnlockWrapper. Он предоставляет методы для отображения разблокировки в меню.

предупреждение

Вам наверное не стоит реализовывать DisplayedUnlock напрямую. Используйте классы, описанные позже на странице.

Классы разблокировок​

RogueLibs предоставляет следующие классы, от которых вы можете наследовать:

  • ItemUnlock - для предметов;
  • AbilityUnlock - для способностей;
  • TraitUnlock - для особенностей;
  • MutatorUnlock - для мутаторов;
  • AgentUnlock - для персонажей;
  • BigQuestUnlock - для Больших Квестов персонажей;
  • ExtraUnlock - для достижений и прочего;
  • FloorUnlock - для этажей;
примечание

Есть ещё несколько классов, но они в RogueLibs только ради совместимости.

Инициализация​

Вы можете инициализировать свои разблокировки следующим образом:

MyCustomItem.cs
public class MyCustomItem : CustomItem
{
[RLSetup]
public static void Setup()
{
RogueLibs.CreateCustomItem<MyCustomItem>()
.WithName(new CustomNameInfo("My Custom Item"))
.WithDescription(new CustomNameInfo("My Custom Item is very cool and does a lot of great stuff"))
.WithSprite(Properties.Resources.MyCustomItem)
.WithUnlock(new ItemUnlock
{
UnlockCost = 10,
CharacterCreationCost = 5,
LoadoutCost = 4,
});
}
}

Или вы можете инициализировать их напрямую (как в случае мутаторов):

RogueLibs.CreateCustomUnlock(new MutatorUnlock("MyMutator"))
.WithName(new CustomNameInfo("Mutator Name"))
.WithDescription(new CustomNameInfo("Mutator Description"));
The project's repository is archived as part of the GitHub Archive Program. RogueLibs' code and the documentation will no longer be updated.