Size: a a a

2018 September 28

АТ

Александр Тужик in Alprog I/O
Michael Prophet
Я для рпг составляющей упёрся в то что выбор всяких эффектов, модификаторой, это чертов энум на дахуя значений, хотел это обойти путём создание, один SO один модификатор и его драгдропать в нужное место, но встала проблема с изменениями его параметров, теперь это какой то франкиштейн, который по энуму генерит классы через контейнер с статами.
Не очень понял схему. Что такое SO? У тебя кодогенерация?
источник

MP

Michael Prophet in Alprog I/O
Александр Тужик
Не очень понял схему. Что такое SO? У тебя кодогенерация?
SO - scriptable object,
Задача решалась такая, есть допустим оружие, нужно дать возможность накидывать разные эффекты на него, урон огнём, выстрел себе в колено и вот это вот всё. Я хотел что бы логика оружие и его эффектов были полностью разделены, то есть в оружии есть просто слоты в которые можно положить любой эффект, для удобства использовал SO, но вылезла проблема, что бы настроить параметры эффектов нужно каждый раз создавать новый SO. От этой идеи отказались, теперь в эффектах оружия есть просто объект контейнер с кучей параметров и энумом эффектов, для каждого эффекта написан свой кастомный редактор полей, и на выходе, есть фабрика которая получает контейнер, с типом эффекта, парамерами, и ебашить тебе класс-логику этого эффекта. Но чет как то криво. Добавление любого нового эффекте ведёт к тому что нужно, обновлять фабрику, обновлять кастомный редактор.
источник

АТ

Александр Тужик in Alprog I/O
У меня просто есть статы объекта, куда можно добавлять статус эффекты (классы), когда мы лезем за каким-либо статом, на оригинальное значение последовательно накладываются все эффекты (дергают функцию эффекта, которая преобразует оригинальное значение).
источник

АТ

Александр Тужик in Alprog I/O
Эффекты самые разнообразные. Наследуются друг от друга и всё такое прочее.
источник

MP

Michael Prophet in Alprog I/O
Александр Тужик
У меня просто есть статы объекта, куда можно добавлять статус эффекты (классы), когда мы лезем за каким-либо статом, на оригинальное значение последовательно накладываются все эффекты (дергают функцию эффекта, которая преобразует оригинальное значение).
А если эффект имеет параметры которых нету в статах ?
источник

ДС

Дмитрий Санников in Alprog I/O
А последовательность эффектов имеет значение ? ;)
источник

АТ

Александр Тужик in Alprog I/O
Ну так статус эффект - это класс. У него могут быть свои поля, время действия. Могут быть какие-либо условия (например, повышает силу, если здоровье меньше половины).
источник

АТ

Александр Тужик in Alprog I/O
Да, имеет, конечно.
источник

MP

Michael Prophet in Alprog I/O
Александр Тужик
Ну так статус эффект - это класс. У него могут быть свои поля, время действия. Могут быть какие-либо условия (например, повышает силу, если здоровье меньше половины).
А редактор этих полей сам подсасывает или руками прокидываете ?
источник

АТ

Александр Тужик in Alprog I/O
Редакторы всего свои.
источник

ДС

Дмитрий Санников in Alprog I/O
Норм система
источник

MP

Michael Prophet in Alprog I/O
чет туплю
то есть у тебя object[] effects, и  в каждом объекте свой класс с эффектом, который можно редактировать и он сериализуется и всё ок работает
источник

ДС

Дмитрий Санников in Alprog I/O
Помоему легче сделать глобальное хранилище эффектов
источник

ДС

Дмитрий Санников in Alprog I/O
На обьекты вещать ссылки
источник

АТ

Александр Тужик in Alprog I/O
Только не object[] а StatusEffect[]
источник

ДС

Дмитрий Санников in Alprog I/O
Глобальное хранилище забиваешь в редакторе
источник

АТ

Александр Тужик in Alprog I/O
У нас в глобальном ребакторе шаблоны эффектов.
источник

BS

Basil Semuonov in Alprog I/O
Дмитрий Санников
Глобальное хранилище забиваешь в редакторе
А где тогда хранить текущее состояние эффекта? они же отличаются у всех.
источник

АТ

Александр Тужик in Alprog I/O
В реалтайме клонируешь и вешаешь на персонажа.
источник

MP

Michael Prophet in Alprog I/O
Вот на сериализации и споткнулся =(
источник