Предисловие
В думе, такие предметы как берсерк, сфера душ, радиационный костюм, сфера бессмертия — являются поверапами. В языке DECORATE поверапы настраиваются поверхностно, т.е. выбираешь из предложенных типов нужный, и настраиваешь время действия, сообщение при получении и картинку — под себя. Это очень ограничивает возможности, но при этом сильно упрощает создание.
Подготовка
Скачайте пак картинок на MEGA. И импортируйте их в свой wad между маркерами S_START и S_END, также не забывайте про смещение. Подробно узнать узнать про импортирование спрайтов и смещение, можно здесь.
Затем откройте файл DECORATE в своем ваде. И скопируйте туда следующий код.
actor power1 : PowerupGiver 10010
{
inventory.pickupmessage "you got a powerup"
powerup.duration 1000
powerup.type "Invulnerable"
+COUNTITEM
+Floatbob
+INVENTORY.AUTOACTIVATE
states
{
Spawn:
GODM A -1
stop
}
}
Разберем этот код.
actor power1 : PowerupGiver 10010
Чтобы создать поверап, нужно создать актор который будет наследоваться от PowerupGiver, что мы и сделали.
inventory.pickupmessage "you got a powerup"
inventory.pickupmessage — указывает сообщение, которое появляется когда подбираешь поверап.
powerup.duration 1000
powerup.duration — указывает время действия поверапа в тиках (1 секунда = 35 тиков)
powerup.type "Invulnerable"
powerup.type — указывает тип поверапа, в зависимости от типа будет меняться и эффект поверапа. Например: Invulnerable — дает бессмертие, Speed — дает скорость, Flight — дает полет.
+COUNTITEM
+COUNTITEM — флаг, который делает так, чтобы данный поверап учитывался в подсчете статистики (в конце уровня).
+Floatbob
+Floatbob — флаг, который делает данный актор — парящим (перемещается вверх/вниз).
+INVENTORY.AUTOACTIVATE
+INVENTORY.AUTOACTIVATE — данный флаг активирует поверап при поднятии. Дело в том что, когда ты соприкасаешься с поверапом, он добавляется к тебе в инвентарь (хотя ты этого не видишь), чтобы он не добавлялся в инвентарь, а сразу же активировался, я использовал данный флаг.
states
{
Spawn:
GODM A -1
stop
}
Стейт Spawn я подробно рассматривал здесь.
Ну вот и все, первый поверап создан. Вы можете его заспавнить, введя в консоли «summon power1«.

Нужно больше поверапов.
По аналогии я создал кучу поверапов. Они все одинаковые, за исключением картинки и типа поверапа.
actor power2 : power1 10011
{
powerup.type "Strength"
states
{
Spawn:
STRG A -1
stop
}
}
actor power3 : power1 10012
{
powerup.type "Invisibility"
states
{
Spawn:
BLND A -1
stop
}
}
actor power4 : power1 10013
{
powerup.type "Flight"
states
{
Spawn:
FLIG A -1
stop
}
}
actor power5 : power1 10014
{
powerup.type "LightAmp"
states
{
Spawn:
LIGH A -1
stop
}
}
actor power6 : power1 10015
{
powerup.type "Speed"
states
{
Spawn:
SPDP A -1
stop
}
}
actor power7 : power1 10016
{
powerup.type "Frightener"
states
{
Spawn:
FRIG A -1
stop
}
}
actor power8 : power1 10017
{
powerup.type "Drain"
states
{
Spawn:
VAMP A -1
stop
}
}
actor power9 : power1 10018
{
powerup.type "TimeFreezer"
Scale 0.1
states
{
Spawn:
ZAVA A -1
stop
}
}
actor power10 : power1 10019
{
powerup.type "Regeneration"
states
{
Spawn:
REGN A -1
stop
}
}
actor power11 : power1 10020
{
powerup.type "HighJump"
states
{
Spawn:
HIJP A -1
stop
}
}
Также у power9 я использовал комманду «Scale 0.1» чтобы уменьшить картинку поверапа в 10 раз.
В итоге мы имеем 11 поверапов:
- Пиво — бессмертие power1
- Гантеля — Увеличение силы power2
- Закрытый аниме глаз — невидимость power3
- Крылья — полет power4
- Сверкающие очки — очки ночного видения power5
- Красные ботинки — ускорение power6
- Коронавирус — поверап, который отпугивает всех монстров, в поле зрения. power7
- Ребенок вампир — вампиризм power8
- ZAVARDO — остановка времени power9
- Часы с плюсиками — регенирация power10
- Воздушные ботинки — высокий прыжок. power11
Итоговый результат.
