Combat System

Материал из Wiki
Перейти к: навигация, поиск

Расчет урона оружия

dam = {<weapon.dam.min> <weapon.dam.max>} //базовый урон оружия случайное число от мин до макс (до удара)

dam = ((<dam> * <weapon.repair>) / <weapon.max_repair>) //понижение урона от повреждения оружия

dam = (<dam> * (<tactics> + 500)) / 1000) //бонус от тактики (помним что все навыки считаются как 100.0 или 1000)

dam = (<dam> + ((<dam> * <str>) / 500)) //бонус от силы

dam = (<dam> + ((<dam> * <anatomy>) / 5000)) //бонус от анатомии

dam = ((<dam> * (100 + (<skill> / 10))) / 200) //бонус от боевого навыка


//расчет бонуса от магии или цвета оружия (см.таблицу цветов)
if <weapon.damage_plus>
   dam = (<dam> + <weapon.damage_plus>)
elseif (<weapon.magic>)
   dam = (<dam> + ((((<weapon.magic> / 70) + 1) * 5) / 2))
endif


if (<weapon.дистанционное>) && (<distance> <= 1) && НЕТ great_elven_archer //бонус от кольца при стрельбе вплотную
   dam = <dam> * 2/3
endif
- Часть формул может быть скрыта или представлена не в том виде, в котором она существует на данный момент. Это сделано ввиду существующих коллизий. Их список возможно будет представлен позже.


Таблица цветов

    weapon/armor magic plus:
    of Ruin +5
    of Might +10
    of Force +15
    of Power +20
    of Vanquishing +25
    weapon/armor damage plus:
    Hot/Rose +0
    Agapite +5
    Flame/Gold +5 
    Orion +5
    Verite +5
    Dwarf + 10
    Shadow +10
    Valorite +15
    Holy/Silver +15
    Crystal +15
    Infernal/Magma +20
    Obsidian +25
    Mythic +25
    Titan Leather +5
    Daemon Leather +10
    Red Leather +5
    Blue Leather +20
    Green Leather +20
    Yellow Leather +20
    Gray Leather +15
    Gold Leather +20
    Silver Leather +20
    Crystal Leather +20
    Black Leather +20
    dragon_increase:        armor.magic = ((<str> + 15) * 10)
    titan_increase:         armor.magic = ((<str> + 15) * 10)
    chrome_increase:        armor.magic = ((<str> + 15) * 10)
    platinum_increase:      armor.magic = ((<str> + 15) * 10)


    i_dragon_claw:          weapon.magic = ((<swordsmanship> * 2) / 3)
    i_titan_fist:           weapon.magic = ((<macefighting> * 2) / 3)
    i_chrome_lance:         weapon.magic = ((<fencing> * 2) / 3)
    i_platinum_broadsword:  weapon.magic = ((<swordsmanship> * 2) / 3)


Расчет защиты

//выбор слоя для защиты

armor_base = //базовая защита в зависимости от типа доспехов
                
dfns = (<armor_base> * LAYER_[]_AC_K) / 1000 //коэффициент защиты конкретного слоя
                
dfns =  (<dfns> * <armor.more1l>) / <armor.more1h> //понижение защиты от повреждения доспеха

//расчет бонуса от магии или цвета доспеха (см.таблицу цветов)

if <armor.armor_plus>
   dfns = <dfns> + <armor.armor_plus>
elseif (<armor.attr> & attr_magic)
   dfns = <dfns> + (<armor.magic> / 70)
endif


//Бонус защиты от магических и алхимических эффектов
spell_effect = 1
potion_effect = 1

dfns = <dfns> + <p_layer_i.armor_bonus> //повышение защиты от бонуса слоев, непосредственно не участвующих в защите (квестовые предметы)


Расчет парирования

shield_size = //коэффициент размера щита

if (rand(75) < <shield_size>) //удача на абсорбацию урона щитом, если успех, то рассчитывает далее.


//расчет бонуса от магии или цвета щита (см.таблицу цветов)
if <shield.shield_plus>
   absorbed = <absorbed> + <shield.shield_plus> + 9
elseif (<shield.attr> & attr_magic)
   absorbed = <absorbed > + (<shield.magic> / 70) + 9>
endif
absorbed  = (<shield_size> * <absorbed>) / 100
absorbed  = (<absorbed > * (100 + (<parrying> / 10))) / 200
absorbed = <absorbed> * <shield.repair> / <shield.max_repair> //понижение поглощения в зависимости от повреждения щита