>>369436
Ад Нида в араме тонкий троллинг между прочим.
>>369445
Да у тебя ангельское терпение, няша. Основной скрипт свыше 4000 строчек, размером практически с сам жквейри. Алсо тебе не кажется, что в обычном ООП стиле с классами, конструкторами и, возможно, наследованием это было бы проще? Правда даже мысль про имитацию классов в голом джаваскрипте у меня вызывает головную боль, но есть же тот же кофескрипт. По-моему как-то так было бы проще, по крайней мере мне.
Вот например упрощенный кофескрипт вариант, подходящий для кушки Евы, понятно что бы определение класса подходило ко всем абилкам его надо значительно расширить и переработать (можно конечно и функции в конструктор как аргумент передавать, но как-то это не очень по-моему)
class Ability
constructor: (name, ap_coeff, ad_coeff, bonus_ad_coeff, power, type) ->
@name = name
@ap_coeff = ap_coeff
@ad_coeff = ad_coeff #an example of a superfluous parameter
@bonus_ad_coeff = bonus_ad_coeff
@power = power
@type = type
effect: (ap, ad, bonus_ad, ability_lvl) ->
(ap*@ap_coeff)+(ad*@ad_coeff)+(bonus_ad*@bonus_ad_coeff)+@power[ability_lvl]
eve = []
eve.q = new Ability 'Hate Spike', 0.45, 0, 0.5, [40, 60, 80, 100, 120], 'mdamage'
alert eve.q.effect 50, 70, 10, 2
и его трансляция в джаваскрипт
var Ability, eve;
Ability = (function() {
function Ability(name, ap_coeff, ad_coeff, bonus_ad_coeff, power, type) {
this.name = name;
this.ap_coeff = ap_coeff;
this.ad_coeff = ad_coeff;
this.bonus_ad_coeff = bonus_ad_coeff;
this.power = power;
this.type = type;
}
Ability.prototype.effect = function(ap, ad, bonus_ad, ability_lvl) {
return (ap * this.ap_coeff) + (ad * this.ad_coeff) + (bonus_ad * this.bonus_ad_coeff) + this.power[ability_lvl];
};
return Ability;
})();
eve = [];
eve.q = new Ability('Hate Spike', 0.45, 0, 0.5, [40, 60, 80, 100, 120], 'mdamage');
alert(eve.q.effect(50, 70, 10, 2));