Разработка нового планетарного уничтожения.
vasyamalevich: ПУ растянутого во времени
чтобы сделать ПУ разрушители будут стоять на корах планеты накапливая мощность
vasyamalevich: надо чтобы мощность накапливалась, но никогда не доходила до 100
vasyamalevich: сам выстрел когда делать решает игрок
vasyamalevich: луны, планеты и станции будут обладать "уровнем гравитационного поля" или как-то так, зависящим от массы (диаметра)
ПУ будет универсальным накапливаемым лучом разносить всё это
например, у луны ХП 100 000 000 000, у планеты 100 000 000 000 000 000
vasyamalevich: кол-во кораблей тоже должно нелинейно влиять
Вариант реализации. Теория.
В момент начала процесса ПУ расчитываются следующие параметры:
Tb - так называемое базовое время ПУ, абстрактный параметр, который рассчитывается по формуле (1):
Tb=D^k1+(D^k2)/(dmg*[1+tech*bonus]*N)^(1/2) минут, где
D - диаметр планеты,
k1 - параметр, позволяющий регулировать минимальное время Tb, для того, чтобы малые планеты не могли быть уничтожены слишком быстро. Мною было принято значение 0.6.
k2 - параметр, регулирующий "прочность" планеты. Мною был принят равным 1.7.
dmg - базовый урон за раунд юнитов с ПУ.
tech - уровень бонусной технологии для ПУ (Гравитационная, Мантрид, Спецвооружение тосов).
bonus - размер бонуса этой технологии.
N - число юнитов ПУ.
После этого начинается отсчет фактического времени ПУ - Tf.
Процент накопления шанса ПУ рассчитывается по формуле (2):
P=100*(Tf/Tb)/(Tf/Tb+k3), где
k3 - параметр, регулирующий скорость увеличения вероятности ПУ. Мною принят равным 0.1.
Tf и Tb подставляем в минутах.
Вариант реализации совместного ПУ.
В момент подключения нового игрока другим типом юнитов к уже происходящему процессу ПУ происходит пересчет параметра Tb по формуле (3):
Tbn=D^k1+(D^k2) / ((dmg1*[1+tech1*bonus1]*N1)^(1/2)+(dmg2*[1+tech2*bonus2]*N2)^(1/2)), где индексы переменных означают их принадлежность к первому или второму игроку.
Фактическое время перерасчитывается по формуле:
Tfn=Tbn*(Tf1/Tb1+Tf2/Tb2), где
Tb1 и Tb2 расчитываются по формуле (1) для флотов первого и второго игрока.
Tf1 и Tf2 - время удержания флотов ПУ первым и вторым игроками.
Далее пересчитанные параметры подставляем в формулу (2) и получаем:
p=100*(Tfn/Tbn)/(Tfn/Tbn+k3), %
Аналогичным образом поступаем с последующими вошедшими в бой союзными уничтожителями. Не союзные уничтожители не смогут иметь возможность совместного ПУ.
От идеи с как таковой "прочностью" планеты в явном виде пришлось отказаться так как она не позволяет реализовать нелинейное накопление.
При значении параметра k3=0.1 время накопления шанса ПУ до 90% равняется Tb, а для накопления шанса до 96% время удержания должно составить 2.5Tb.
С лунным уничтожением можно применять этот же принцип.
Просто потребуется изменить три параметра k1, k2 и k3. В моем варианте предлагаю значения k1=0.4; k2=1.4; k3=0.06.
Единственной проблемой в этом варианте ЛУ по-моему будет значение dmg узурпаторов, его придется прописывать отдельно как [урон за раунд]/4 для текущих реалий. А если ориентироваться на будущее, когда введут крафт компонентов кораблей, можно будет избавиться и от этого исключения.
Шанс обратной волны и для ПУ и для ЛУ будет расчитываться по формуле (4):
z=(100-p)/(log(N*C/100000+1)) %, где
N - число юнитов.
С - цена одного юнита в эквиваленте веспа.
Вовзможный вариант для совместных ЛУ и ПУ (но он мне пока что самому не нравится, возможно изменю):
z=(100-p)/log(summ(Ni*Ci/100000+1)) %, где
Ni - число уничтожителей i-го игрока.
Ci - стоимость в эквиваленте веспа юнитов i-го игрока.Растянутое во времени ПУ и ЛУ в будущем проекта, как я понял, неизбежно, поэтому ВМС прошу оценить именно вариант реализации, а не саму идею растянутых во времени миссий.Примеры и графики залью в ближайшее время.