Skip to content
This repository was archived by the owner on Aug 22, 2025. It is now read-only.
This repository was archived by the owner on Aug 22, 2025. It is now read-only.

ТЗ - Система зависимости от реагентов #717

Description

@ThereDrD0

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

База

Каждый реагент должен иметь поле в прототипе, отвечающее за зависимости, где есть ответы на следующие вопросы:

  • Вызывает ли зависимость?
  • Какая доза вызывает зависимость?
  • Степень зависимости (В виде енума, подробнее про степени позже)

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

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

Если персонаж получил зависимость от реагента - на него должен надеваться компонент, где будет храниться список структур, в которых перечислено следующее:

  • От чего зависим?
  • Степень зависимости?
  • Требуемый объем реагента для поддержания состояния нормы

Компонент зависимости должен поддерживать выдачу его через прототипы, а не только через код, с сохранением функционала

Степени зависимости:

Их будет 3 для простоты понимания. Легкая, средняя и тяжелая.

Каждая степень хранит в себе:

  • Время, за которое игрок должен принять указанное в компоненте зависимости число юнитов реагента
  • ПротоАйди дебаффа к настроению при невыполнении условий
  • ПротоАйди баффа к настроению при выполнении условий
  • Список эффектов, которые будут даны персонажу при невыполнении
  • Список эффектов, которые будут даны при выполнении

Параметры времени и баффы дебаффы потом подумаем че куда, просто сделай заготовки для, где останется поменять только цифры.

Если игрок не получает нужное количество реагентов в указанный срок - он получает дебафф к настроению, указанный в зависимости, и все эффекты от невыполнения в срок.
Таймер начала следующего цикла потребностей начинается заново. Если игрок его выполняет - с него снимаются все негативные эффекты и дебаффы настроения и добавляются новые, баффы настроения и положительные эффекты.

Трейты

Должна быть возможность выбрать все возможные зависимости в качестве трейтов персонажа в редакторе. Это даст персонажу выбранную раундстартовую зависимость.

Showcase

В качестве примера готовой работы требуется сделать 2 самые базовые зависимости - от алкоголя и от сигарет.
Это послужит примером того, как в целом добавлять эти зависимости.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions