Mirosya, я все-таки думаю что ресист это все-таки некоторая константа после фитинга корабля на станции... ибо это через чур затратно при каждом выстреле топать вызывать функцию, топать вычислять резист, топать обратно... ну нафиг...
Просто ты не видишь хотя бы возможной механики подсчета с точки зрения сервера.
Маленький пример:
Есть корабль с шестью резистивными модулями. Наша задача - вычислять результирующий резист в зависимости от того какие модули включены.
В результате что нам нужно для подсчетов
а) начальный резист шипа (вот он как раз константа)
б) массив в который мы добавляем резисты если включается модуль и выбрасываем оттуда если выключается
Итого при запросе мы берем начальный резист и бежим по массиву выгребая рабочие резисты - подставляем в формулу и даем результат.
В твоем варианте мы держим еще переменную на результирующее значение. Но вот беда - вполне возможен варинт когда отключение модуля и необхожимость получить свежее значение резиста совпадают. То есть паралельно работают два куска программы:
Первый кусок - получить текущий резист шипа (или готовое значение из твоей переменной или налету посчитанное по формуле)
Второй кусок - убрать из массива выключенный резист (+ пересчитать текущий резист если используется результирующая переменная)
Если первый кусок будет отрабатывать не взирая на работу второго - то пока ты включаешь модуль - дамаж по твоему кораблю идет по старому резисту - его еще не успели пересчитать.
Делаем исключение - то есть при работе второго куска ака включение/выключения модуля первый должен всегда ждать окончания его работы.
Еше раз пересматриваем алгоритм запроса резиста:
1) Если модули постоянно включены - то делаем расчет по формуле или берем готовое значение
2) Если в этот момент включается.выключается модуль то мы модифицируем массив модулей(+ пересчитываем резист наново в отдельную переменную) и выдаем результат из пересчета на лету(из посчитанной переменной)
В первой ситуации в случае пересчета на лету - нагрузка на процессор, в случае переменной - использование лишней памяти под переменную.
Во втором случае в случае пересчета на лету - таже нагрузка на процессор, в случае с переменной - кушаем лишнюю память и все таже нагрузка на процессор (пересчитать то надо!)
ПС это только случай с резистом - а ведь модификаторов как шипа так и персонажа довольно много. Помимо всех модификаторов(модулей/имплантов), которые просто приходится хранить - чтобы знать а чего вообще одето.снято, мы получаем кучу "результирующих переменных" - которые тоже надо хранить
ПС2 черт - коротко не получилось