Как известно, в StarCraft 2 всё, что может наносить урон - использует эффект типа Damage. Это самый основной и корректный способ нанесения урона боевым единицам.
Этот эффект по умолчанию много чего может делать.
- Он позволяет наносить урон по области вокруг целевой единицы/точки,
- В нём можно задать сколько единиц урона блокируется за единицу брони
- Добавить дополнительный урон по единицам, имеющие определенные атрибуты (например по легким наносит +5 ед. урона)
Но а что если нужно нанести дополнительный урон по определенным типам единиц? Скажем, нужно чтобы оружие наносило +15 урона только по гидралискам?
И вправду. Это просто так не сделать одним полем в эффекте.
Так а как же это сделать?
В чем заключается логика?
В оружиях помимо основного эффекта, который должен накладываться на цель, можно указать ещё и Pre Effect. Туда можно дополнительно указать любой эффект, например тот, что будет предназначен для бонусного урона по определенным единицам.
Ближе к делу
В вашем специально созданном валидаторе типа Unit Type укажите тот тип единицы, по которому хотите сделать нанесение дополнительного урона.
Далее этот валидатор, вам нужно вставить в другой валидатор уже типа Combine, предназначенный как ни странно для комбинирования нескольких валидаторов в один.
а затем, этот валидатор Combine, нужно указать в ваш эффект урона, для дополнительного наносимого урона.
Краткое напоминание
Любые эффекты урона, перед своим выполнением на единицах или точках, могут сначала проверить свои валидаторы, указанные в их поле Validators. Если хотя бы один валидатор даст ошибку, то эффект не запуститься
В данном случае, валидатор Combine присвоенный эффекту, даст ошибку если целевой юнит не будет гидралиском.
Отображение бонусного урона в подсказке
Есть только проблема что таким способом, этот бонусный урон по конкретному типу единиц не выведется в подсказке при наведении на оружие.
Но и на это есть решение!
Всё что нужно - это самостоятельно прописать подсказку в поле оружия Tooltip
Всё что нужно - это самостоятельно прописать подсказку в поле оружия Tooltip
И лучше всего использовать ссылки на данные <d ref=""/> в тексте подсказки, так игра сама подставит в текст, актуальные значения урона, даже после проведенных улучшений.
А как добавить больше юнитов на бонусный урон?
Очень просто, достаточно создать ещё один валидатор типа Unit Type проверяющего нужный тип юнита и добавить его в созданный валидатор Combine.
Тогда валидатор Combine проверит первый валидатор (с проверкой на гидралиска) и второй валидатор (например с проверкой на таракана).

SC2












