Skip to content

Апгрейды

Апгрейды - это различные мутации, импланты и подобные штуки персонажа. Апгрейды есть как у энтити, так и у частей тела, поэтому лучше сначала ознакомиться с их страничками, прежде чем читать тут.

Все улучшаемо!

Еще есть апгрейды у оружия и брони. Но они рассматриваются там же, где итемы, потому что работают по другой механике.

Апгрейды энтити

Мехи пока неулучшаемые

Для MechaEntity апгрейды не предусмотрены. Пока что. Это будет исправлено.

Поля класса EntityUpgrades
uid: str
Айдишник апгрейда.
display_name: str
Отображаемое имя апгрейда.
description: str
Описание апгрейда.
buffs: Buffs
Таблица баффов, такая же, как везде. Она расписана на страничке энтити
abilities: AbilitiesTable
Абилки, ничем не отличается от других AbilitiesTable. При активации абилки, энтити ищет абилки в том числе в каждом трейте.
resists: ResistTable
Обычный ResistTable, дополнительные резисты.
events: dict
подробнее о том, как работают эвенты, можно почитать на их страничке.
psychosis: Psychosis
Психоз. У каждого импланта свой психоз. Подробнее о работе психоза будет расписано ниже.

Я не буду расписывать подробно, что их баффы, резисты и эвенты работают точно так же, как и от болезней или трейтов. По сути, это и есть трейты, но с ограничением в виде психозов, а не души, как в случае с трейтом.

Апгрейды частей тела

Поля класса EntityUpgrades
uid: str
Айдишник трейта.
display_name: str
Отображаемое имя апгрейда.
description: str
Описание апгрейда.
extra_hp: float
Дополнительное ХП конечности.
accuracy_coefficient: float
Это число прибавляется к текущему модификатору точности. С этим лучше быть осторожным.
inability_percentage: float
Это число прибавляется к текущему проценту неработоспобности.
buffs: Buffs
Таблица баффов, такая же, как везде.
abilities: AbilitiesTable
Абилки, ничем не отличается от других AbilitiesTable. При активации абилки, энтити ищет абилки в том числе в каждом трейте.
resists: ResistTable
Обычный ResistTable, дополнительные резисты.
events: dict
подробнее о том, как работают эвенты, можно почитать на их страничке.
psychosis: Psychosis
Психоз. У каждого импланта свой психоз. Подробнее о работе психоза будет расписано ниже.
required_tags: list[Tag]
Массив из требуемых тэгов на части тела, чтобы этот имплант можно было добавить на эту часть тела. Например, логично, что стальные когти как у Россомахи можно установить только в руку. Хотя, наверное, можно и в ногу, тут уже как задизайнить. Обязательно наличие всех тэгов из этого списка.

Установка имплантов

Все импланты ставятся через энтити. Эти методы уже расписаны на страничке энтити, но приведем их еще раз, чтобы далеко не ходить:

add_upgrade(upgrade: EntityUpgrade)
Добавляет апгрейд энтити.
remove_upgrade(upgrade: EntityUpgrade)
Убирает апгрейд энтити.
add_bodypart_upgrade(part_upgrade: PartUpgrade, part_key: str)
Добавляет апгрейд на часть тела по ее ключу.
remove_bodypart_upgrade(part_upgrade: PartUpgrade, part_key: str)
Убирает апгрейд с части тела по ее ключу.

Психоз

Психоз единый для апгрейдов и апгрейдов частей тела. По сути - это лимит имплантов, которые вы можете вставить в своего персонажа.

Хардкап это хорошо или плохо?

В данный момент это именно хардкап, то есть вы просто не можете накатить импланты выше вашего психоза. Возможно в будущем это будет изменено на софткап, то есть вы сможете поставить импланты выше лимита, получив взамен какой-то дебафф.

Поля класса Psychosis
cyberpsychosis: int
Киберпсихоз.
biopsychosis: int
Биопсихоз.
aetherpsychosis: int
Эфиропсихоз.

Лимит каждого из психозов зависит от типа энтити EntityType (список есть в константах). Так же у каждого импланта может быть любое количество любого психоза, то есть он может одновременно добавлять как биопсихоз, так и эфиропсихоз.

Расширение лимитов

Если сделать значение одного из психозов отрицательным, то позволит вставить больше имплантов. Так же у энтити есть врожденный psychosis, где находится класс с дефолтными значениями (все по 0), который тоже можно подправить, если вы хотите расширить психоз для конкретной энтити.

Лимиты психозов

Я не вижу никакого смысла это подробно расписывать, взгляните лучше сюда:

psy_organic = Psychosis(cyberpsychosis=0, biopsychosis=30, aetherpsychosis=0)
psy_synthetic = Psychosis(cyberpsychosis=30, biopsychosis=0, aetherpsychosis=0)
psy_aetheric = Psychosis(cyberpsychosis=0, biopsychosis=0, aetherpsychosis=30)
psy_cyborg = Psychosis(cyberpsychosis=15, biopsychosis=15, aetherpsychosis=0)
psy_magical = Psychosis(cyberpsychosis=0, biopsychosis=15, aetherpsychosis=15)
psy_cybertheric = Psychosis(cyberpsychosis=15, biopsychosis=0, aetherpsychosis=15)
psy_abberation = Psychosis(cyberpsychosis=10, biopsychosis=10, aetherpsychosis=10)

Это и есть лимиты психозов. Если вы хотите их исправить, они лежат в properties/psychosis.py