у меня есть базовый класс Buff, а от него уже идут остальные. Когда накладывается бафф, на объект через AddComponent вешается нужный скрипт(Если уже есть. то просто return) и выполняет какие-то действия. Насколько это выгодное решение, если баффов и дебафов в сумме не будет и 20 наверное?
привет) как я думаю... бафы ведь всегда одинаковые? можно их нацепить как нибдудь на 1 объект как компоненты и ссылки на них добавлять в определённого персонажа условно. наверное я бы сделал как то так, если не задумываться, а так может это уж сильно смахивает на синглтон... это может быть спорное решение
я бы сделал что-то вроде class CharacterParameters { private List<IBuff>() _buffs = new(); public float ParameterBase1; public float ParameterBaseN; public float ParameterModified1 {get; private set; } public float ParameterModifiedN { get; private set; } publlic void AddBuff(IBuff buff) { _buffs.Add(buff); CalcBuffs(); } private void CalcBuffs() { float v = ParameterBase1; foreach (IBuff buff in _buffs) { v = buff.ModifyParameter1(v); } ParameterModified1 = v; // ... ParameterodifiedN } } interface IBuff { float ModifyParameter1(float value); float ModifyParameterN(float value); } class BuffParameter1Double : IBuff { float ModifyParameter1(float value) => value*2; float ModifyParameterN(float value) => value; } далее там исходя из специфики того что и как баффы меняют можно что-то заоптимизировать (и механизм убирания баффов прикрутить)
хороший кста вариант
Спасибо за демонстративный код, хорошая пища для размышления😋
Только я бы сами бафы не через интерфейс ,а создал бы родительский компонет Spel и уже от него через scribtabel object наделал разных бафов/дебафов, и удобноей и вроде как проще
зачем? если можно это сделать просто класс и его накладывать без монобеха или без со?
И вам доброе утро.Можно,но у него как я понял будут несколько разных бафов/дебафов, со своим поведением,но с одинаковым набором функций(я не говорю что интерфейс в этом случае нельзя юзать,а то что по логике, легче создать конструктор спелов через СО,и там уже вертеть ими как угодно,добавлять убирать и они не будут на прямую зависить от персонажа
просто зачем СО если так же все можно описать в обычном классе. да если он хочет несколько вариаций одного спела легче будет хто сделать с СО
Согласен😂,ну просто как я понимаю ему нужно несколько спелов,ну я в принципи думаю что там будет меняться только набор параметров (ну если это баф то это количество маны для юзания,время отката,партикл, и ефект(там плюс минус к тому или тому)).
Обсуждают сегодня