•Другой случай пока не используется - Hruks, 25.05.2010 9:49:36
Другой случай пока не используется (речь про радиус 2 клетки). Однако функция больше похожа на квадратичную. Достаточно в excel построить её график. Но и даже если учесть ошибки округления, то ровной параболы получить не удаётся. Тем не менее приближённая формула слишком простая - линейная и излом на 15% имеет. Я бы предпочёл вот такую формулу:
if r <= area then result := round(attk * (1 - 0.8 * r * r / area / area));
разница в том, что зависимость по пораболе и она плавно загибается от 100% до 20% соответственно от эпицентра до максимального радиуса.
Такая формула даёт чуть сильнее удар, чем в оригинале и гораздо сильнее, чем первый вариант формулы. Для значения area = 2 можно оставить табличный вариант.