|
function getCurrentModuleDamageRate_ATMage(obj) {
local rate = 100;
local skillLevel = sq_GetSkillLevel(obj, 254);
local zzsh = sq_GetSkillLevel(obj, 254, 40, skillLevel);
if (obj.sq_GetSkillLevel(254) > 0) {
rate = rate * (40 + zzsh) / 100;
}
if (obj.sq_GetSkillLevel(169) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 169, 0, obj.sq_GetSkillLevel(169)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(169) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 169, 1, obj.sq_GetSkillLevel(169)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(50) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 50, 5, obj.sq_GetSkillLevel(50)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(51) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 51, 2, obj.sq_GetSkillLevel(51)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(198) > 0 && sq_getGrowType(obj) == 2) {
rate = rate * (100 + sq_GetLevelData(obj, 198, 0, obj.sq_GetSkillLevel(198)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(199) > 0 && sq_getGrowType(obj) == 1) {
rate = rate * (100 + sq_GetLevelData(obj, 199, 0, obj.sq_GetSkillLevel(199)) / 10) / 100;
}
if (obj.sq_GetSkillLevel(34) > 0) {
rate = rate * (100 + sq_GetLevelData(obj, 34, 0, obj.sq_GetSkillLevel(34)) / 10) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Character/ATMage/ManaBurst/ap_ATMage_ManaBurst.nut")) {
//atmage delusion character increase attackRate
local atkRate = sq_GetLevelData(obj, 28, 3, obj.sq_GetSkillLevel(28)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/delusion/ap_delusion.nut")) {
//atmage delusion character increase attackRate
local atkRate = sq_GetLevelData(obj, 158, 1, obj.sq_GetSkillLevel(158));
rate = rate * (100 + atkRate) / 100;
}
if (obj.sq_GetSkillLevel(119) > 0) {
local atkRate = sq_GetLevelData(obj, 119, 0, obj.sq_GetSkillLevel(119)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "Character/ATMage/Resonance/ap_ATMage_element_attack_water.nut")) {
local atkRate = sq_GetLevelData(obj, 31, 3, obj.sq_GetSkillLevel(31)) / 10;
rate = rate * (100 + atkRate) / 100;
}
local voidObj = getParticleVoid(obj);
if (voidObj && voidObj.getVar("state").get_vector(0) == 0) {
local atkRate = sq_GetLevelData(obj, 160, 0, obj.sq_GetSkillLevel(160)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/bloodfire/ap_bloodfire.nut")) {
//atmage bloodMage character increase attackRate
local atkRate = sq_GetLevelData(obj, 97, 1, obj.sq_GetSkillLevel(97)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/bloodone/ap_bloodone2.nut")) {
local atkRate = sq_GetLevelData(obj, 122, 0, obj.sq_GetSkillLevel(122)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (obj.sq_GetSkillLevel(170) > 0 && sq_getGrowType(obj) == 4) {
rate = rate * (1000 + sq_GetLevelData(obj, 170, 3, obj.sq_GetSkillLevel(170))) / 1000;
}
if (sq_GetSkillLevel(obj, 162) > 0 && sq_getGrowType(obj) == 0) {
local stoneNum = getBreakSenseMagicStoneCount(obj);
local atkRate = sq_GetLevelData(obj, 162, 2, obj.sq_GetSkillLevel(162)) / 10;
if (stoneNum == 2) {
atkRate = sq_GetLevelData(obj, 162, 3, obj.sq_GetSkillLevel(162)) / 10;
}
else if (stoneNum >= 3) {
atkRate = sq_GetLevelData(obj, 162, 4, obj.sq_GetSkillLevel(162)) / 10;
}
rate = rate * (100 + atkRate) / 100;
}
if (sq_GetSkillLevel(obj, 161) > 0) {
local stoneNum = getBreakSenseMagicStoneCount(obj);
local atkRate = sq_GetLevelData(obj, 161, 1, obj.sq_GetSkillLevel(161)) / 10;
if (stoneNum == 2) {
atkRate = sq_GetLevelData(obj, 161, 3, obj.sq_GetSkillLevel(161)) / 10;
}
else if (stoneNum >= 3) {
atkRate = sq_GetLevelData(obj, 161, 5, obj.sq_GetSkillLevel(161)) / 10;
}
rate = rate * (100 + atkRate) / 100;
}
if (sq_GetSkillLevel(obj, 164) > 0) {
local atkRate = sq_GetLevelData(obj, 164, 0, obj.sq_GetSkillLevel(164)) / 10;
rate = rate * (100 + atkRate) / 100;
}
if (CNSquirrelAppendage.sq_IsAppendAppendage(obj, "character/atmage/windbuff/ap_windbuff.nut")) {
local atkRate = sq_GetLevelData(obj, 142, 1, obj.sq_GetSkillLevel(142)) / 10;
rate = rate * (100 + atkRate) / 100;
}
return rate.tofloat() / 100.0;
} |
|