Skip to content

Резисты и урон

Энам Damage
  • KINETIC
  • PIERCING
  • BURSTING
  • PSIONIC
  • WITHERING
  • OCEANIC
  • CORRUPTIVE
  • ENERGY
  • THERMAL
  • TOXIC
  • DIMENSIONAL
  • UNSTOPPABLE

Весь урон имеет определенный тип, который контрится резистами. Работает это так - резист это число от любого отрицательного числа до 1.

  • Если резист 1, то урон будет умножаться на 0.
  • Если резист 0, то урон будет браться без изменений.
  • Если резист -1, то урон будет удваиваться.

Формально резист может быть и -5000, но это вряд ли возможно в реальности. Резисты лежат в таблице резистов.

Таблица резистов (ResistTable)

Формально таблица резистов есть в статусах, энергощитах, броне, тринкетах и где-то еще.

Собственно, резист-тейбл по сути представляет из себя класс с полями, которые называются так же, как типы урона, перечисленные выше. Например, KINETIC это поле таблицы резистов. Чтобы не баловаться напрямую, есть два метода:

Список методов класса ResistTable
get(resist_type: str)
Единственный аргумент ожидает название резиста. По сути resist_table.get("KINETIC") эквивалентен resist_table.KINETIC
mod(resist_type: str, mod: str)
Так же передается строкой название резиста и модификатор. Позволяет изменить значение резиста.

Однако вы этими методами, скорее всего, никогда не будете пользоваться, вам должно хватить метода get_base_resist() и get_bodypart_resist() в энтити.