|
@@ -7758,62 +7758,60 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
skillratio += 200 * skill_lv;
|
|
skillratio += 200 * skill_lv;
|
|
break;
|
|
break;
|
|
case AG_DEADLY_PROJECTION:
|
|
case AG_DEADLY_PROJECTION:
|
|
- skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 2800 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_DESTRUCTIVE_HURRICANE:
|
|
case AG_DESTRUCTIVE_HURRICANE:
|
|
- skillratio += -100 + 1600 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 250 + 2800 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
if (sc && sc->getSCE(SC_CLIMAX))
|
|
if (sc && sc->getSCE(SC_CLIMAX))
|
|
{
|
|
{
|
|
if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
- skillratio *= 2;
|
|
|
|
|
|
+ skillratio *= 3;
|
|
else if (sc->getSCE(SC_CLIMAX)->val1 == 5)
|
|
else if (sc->getSCE(SC_CLIMAX)->val1 == 5)
|
|
- skillratio += skillratio * 70 / 100;
|
|
|
|
|
|
+ skillratio += skillratio * 50 / 100;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case AG_RAIN_OF_CRYSTAL:
|
|
case AG_RAIN_OF_CRYSTAL:
|
|
- skillratio += -100 + 150 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 180 + 760 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_MYSTERY_ILLUSION:
|
|
case AG_MYSTERY_ILLUSION:
|
|
- skillratio += -100 + 500 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 950 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_VIOLENT_QUAKE_ATK:
|
|
case AG_VIOLENT_QUAKE_ATK:
|
|
- skillratio += -100 + 120 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 200 + 1200 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
if (sc && sc->getSCE(SC_CLIMAX)) {
|
|
if (sc && sc->getSCE(SC_CLIMAX)) {
|
|
if (sc->getSCE(SC_CLIMAX)->val1 == 1)
|
|
if (sc->getSCE(SC_CLIMAX)->val1 == 1)
|
|
skillratio /= 2;
|
|
skillratio /= 2;
|
|
else if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
else if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
- skillratio *= 2;
|
|
|
|
|
|
+ skillratio *= 3;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case AG_SOUL_VC_STRIKE:
|
|
case AG_SOUL_VC_STRIKE:
|
|
- skillratio += -100 + 180 * skill_lv + 3 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 250 * skill_lv + 3 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_STRANTUM_TREMOR:
|
|
case AG_STRANTUM_TREMOR:
|
|
- skillratio += -100 + 250 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 100 + 730 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_ALL_BLOOM_ATK:
|
|
case AG_ALL_BLOOM_ATK:
|
|
- skillratio += -100 + 100 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 200 + 1200 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
if (sc && sc->getSCE(SC_CLIMAX)) {
|
|
if (sc && sc->getSCE(SC_CLIMAX)) {
|
|
- if (sc->getSCE(SC_CLIMAX)->val1 == 2)
|
|
|
|
- skillratio /= 2;
|
|
|
|
- else if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
|
|
- skillratio *= 2;
|
|
|
|
|
|
+ if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
|
|
+ skillratio *= 4;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case AG_ALL_BLOOM_ATK2:// Is this affected by BaseLV and SPL too??? [Rytech]
|
|
case AG_ALL_BLOOM_ATK2:// Is this affected by BaseLV and SPL too??? [Rytech]
|
|
- skillratio += -100 + 7000 + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 85000 + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_CRYSTAL_IMPACT:
|
|
case AG_CRYSTAL_IMPACT:
|
|
- skillratio += -100 + 800 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 250 + 1300 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
if (sc && sc->getSCE(SC_CLIMAX)) {
|
|
if (sc && sc->getSCE(SC_CLIMAX)) {
|
|
if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
if (sc->getSCE(SC_CLIMAX)->val1 == 3)
|
|
@@ -7829,21 +7827,21 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
skillratio += skillratio * 150 / 100;
|
|
skillratio += skillratio * 150 / 100;
|
|
break;
|
|
break;
|
|
case AG_TORNADO_STORM:
|
|
case AG_TORNADO_STORM:
|
|
- skillratio += -100 + 90 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 100 + 760 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_FLORAL_FLARE_ROAD:
|
|
case AG_FLORAL_FLARE_ROAD:
|
|
- skillratio += -100 + 200 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 50 + 740 * skill_lv + 5 * sstatus->spl;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_ASTRAL_STRIKE:
|
|
case AG_ASTRAL_STRIKE:
|
|
- skillratio += -100 + 500 * skill_lv + 10 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 1800 * skill_lv + 10 * sstatus->spl;
|
|
if (tstatus->race == RC_UNDEAD || tstatus->race == RC_DRAGON)
|
|
if (tstatus->race == RC_UNDEAD || tstatus->race == RC_DRAGON)
|
|
- skillratio += 600 * skill_lv;
|
|
|
|
|
|
+ skillratio += 340 * skill_lv;
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_ASTRAL_STRIKE_ATK:
|
|
case AG_ASTRAL_STRIKE_ATK:
|
|
- skillratio += -100 + 200 * skill_lv + 10 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 650 * skill_lv + 10 * sstatus->spl;
|
|
// Not confirmed, but if the main hit deal additional damage
|
|
// Not confirmed, but if the main hit deal additional damage
|
|
// on certain races then the repeated damage should too right?
|
|
// on certain races then the repeated damage should too right?
|
|
// Guessing a formula here for now. [Rytech]
|
|
// Guessing a formula here for now. [Rytech]
|
|
@@ -7852,19 +7850,19 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_ROCK_DOWN:
|
|
case AG_ROCK_DOWN:
|
|
- skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 950 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
|
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
|
- skillratio += 250 * skill_lv;
|
|
|
|
|
|
+ skillratio += 300 * skill_lv;
|
|
}
|
|
}
|
|
|
|
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_STORM_CANNON:
|
|
case AG_STORM_CANNON:
|
|
- skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 950 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
|
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
|
- skillratio += 250 * skill_lv;
|
|
|
|
|
|
+ skillratio += 300 * skill_lv;
|
|
}
|
|
}
|
|
|
|
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
@@ -7878,10 +7876,10 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|
|
break;
|
|
break;
|
|
case AG_FROZEN_SLASH:
|
|
case AG_FROZEN_SLASH:
|
|
- skillratio += -100 + 600 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
+ skillratio += -100 + 250 + 900 * skill_lv + 5 * sstatus->spl;
|
|
|
|
|
|
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
|
if( sc != nullptr && sc->getSCE( SC_CLIMAX ) ){
|
|
- skillratio += 250 * skill_lv;
|
|
|
|
|
|
+ skillratio += 150 + 350 * skill_lv;
|
|
}
|
|
}
|
|
|
|
|
|
RE_LVL_DMOD(100);
|
|
RE_LVL_DMOD(100);
|