Corrected Eleanor's Eternal Quick Combo behavior (fixes #1568)
* Adjusted skill type to misc. * Added missing damage calculation. * Corrected the Equipment ATK reduction. * Moved the Stun addition and Tinder Breaker removal to skill_additional_effect.
This commit is contained in:
@@ -1411,7 +1411,7 @@
|
||||
8035,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, MH_ANGRIFFS_MODUS,Attack Mode
|
||||
8036,3:4:5:6:7,6,1,0,0,0,5,1,no,0,0x0200,0,weapon,0,0x0, MH_TINDER_BREAKER,Tinder Breaker
|
||||
8037,1,6,4,0,0,0,5,1,no,0,0x200,0,weapon,0,0x0, MH_CBC,Continual Break Combo
|
||||
8038,1,6,4,0,0,0,5,1,no,0,0x200,0,weapon,0,0x0, MH_EQC,Eternal Quick Combo
|
||||
8038,1,6,4,0,0,0,5,1,no,0,0x200,0,misc,0,0x0, MH_EQC,Eternal Quick Combo
|
||||
8039,0,6,4,3,0x2,1:1:1:2:2,5,1,no,0,0,0,weapon,0,0x0, MH_MAGMA_FLOW,Magma Flow
|
||||
8040,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, MH_GRANITIC_ARMOR,Granitic Armor
|
||||
8041,7,6,2,3,0x2,0,5,1,no,0,0,1,weapon,0,0x0, MH_LAVA_SLIDE,Lava Slide
|
||||
|
||||
@@ -1418,7 +1418,7 @@
|
||||
8035,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, MH_ANGRIFFS_MODUS,Attack Mode
|
||||
8036,3:4:5:6:7,6,1,0,0,0,5,1,no,0,0x0200,0,weapon,0,0x0, MH_TINDER_BREAKER,Tinder Breaker
|
||||
8037,1,6,4,0,0,0,5,1,no,0,0x200,0,weapon,0,0x0, MH_CBC,Continual Break Combo
|
||||
8038,1,6,4,0,0,0,5,1,no,0,0x200,0,weapon,0,0x0, MH_EQC,Eternal Quick Combo
|
||||
8038,1,6,4,0,0,0,5,1,no,0,0x200,0,misc,0,0x0, MH_EQC,Eternal Quick Combo
|
||||
8039,0,6,4,3,0x2,1:1:1:2:2,5,1,no,0,0,0,weapon,0,0x0, MH_MAGMA_FLOW,Magma Flow
|
||||
8040,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0, MH_GRANITIC_ARMOR,Granitic Armor
|
||||
8041,7,6,2,3,0x2,0,5,1,no,0,0,1,weapon,0,0x0, MH_LAVA_SLIDE,Lava Slide
|
||||
|
||||
@@ -2251,8 +2251,8 @@ SC_EQC (SI_EQC)
|
||||
desc:
|
||||
val1:
|
||||
val2: -% Def
|
||||
val3: -% Atk
|
||||
val4: -%MaxHP
|
||||
val3: -%MaxHP
|
||||
val4:
|
||||
|
||||
SC_GOLDENE_FERSE (SI_GOLDENE_FERSE)
|
||||
desc:
|
||||
|
||||
@@ -4449,6 +4449,12 @@ struct Damage battle_attack_sc_bonus(struct Damage wd, struct block_list *src, s
|
||||
ATK_ADD(wd.damage, wd.damage2, 200);
|
||||
#ifdef RENEWAL
|
||||
ATK_ADD(wd.equipAtk, wd.equipAtk2, 200);
|
||||
#endif
|
||||
}
|
||||
if (sc->data[SC_EQC]) {
|
||||
ATK_ADDRATE(wd.damage, wd.damage2, -sc->data[SC_EQC]->val2);
|
||||
#ifdef RENEWAL
|
||||
ATK_ADDRATE(wd.equipAtk, wd.equipAtk2, -sc->data[SC_EQC]->val2);
|
||||
#endif
|
||||
}
|
||||
if(sc->data[SC_STYLE_CHANGE]) {
|
||||
@@ -6543,6 +6549,9 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
|
||||
// kRO 2014-02-12: Damage: Caster's DEX, Target's current HP, Skill Level
|
||||
md.damage = ((200 + status_get_dex(src)) * skill_lv * 10) + sstatus->hp; // (custom)
|
||||
break;
|
||||
case MH_EQC:
|
||||
md.damage = max(tstatus->hp - sstatus->hp, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
if (nk&NK_SPLASHSPLIT) { // Divide ATK among targets
|
||||
|
||||
@@ -1684,6 +1684,16 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
||||
case KO_MAKIBISHI:
|
||||
sc_start(src,bl, SC_STUN, 10 * skill_lv, skill_lv, skill_get_time2(skill_id,skill_lv));
|
||||
break;
|
||||
case MH_EQC:
|
||||
{
|
||||
struct homun_data *hd = BL_CAST(BL_HOM, src);
|
||||
|
||||
if (hd) {
|
||||
sc_start2(src, bl, SC_STUN, 100, skill_lv, bl->id, 1000 * hd->homunculus.level / 50 + 500 * skill_lv);
|
||||
status_change_end(bl, SC_TINDER_BREAKER2, INVALID_TIMER);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case MH_LAVA_SLIDE:
|
||||
sc_start4(src,bl, SC_BURNING, 10 * skill_lv, skill_lv, 1000, src->id, 0, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
|
||||
@@ -575,7 +575,7 @@ void initChangeTables(void)
|
||||
set_sc(MH_TINDER_BREAKER , SC_TINDER_BREAKER2 , SI_TINDER_BREAKER , SCB_FLEE );
|
||||
set_sc(MH_TINDER_BREAKER , SC_TINDER_BREAKER , SI_TINDER_BREAKER_POSTDELAY , SCB_FLEE );
|
||||
set_sc(MH_CBC , SC_CBC , SI_CBC , SCB_FLEE );
|
||||
set_sc(MH_EQC , SC_EQC , SI_EQC , SCB_DEF2|SCB_BATK|SCB_MAXHP );
|
||||
set_sc(MH_EQC , SC_EQC , SI_EQC , SCB_DEF2|SCB_MAXHP );
|
||||
|
||||
add_sc( MER_CRASH , SC_STUN );
|
||||
set_sc( MER_PROVOKE , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK );
|
||||
@@ -2948,7 +2948,7 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) {
|
||||
if(sc->data[SC_GT_CHANGE]) // Max HP decrease: [Skill Level x 4] %
|
||||
bonus -= (4 * sc->data[SC_GT_CHANGE]->val1);
|
||||
if(sc->data[SC_EQC])
|
||||
bonus -= sc->data[SC_EQC]->val4;
|
||||
bonus -= sc->data[SC_EQC]->val3;
|
||||
}
|
||||
// Max rate reduce is -100%
|
||||
bonus = cap_value(bonus,-100,INT_MAX);
|
||||
@@ -5602,8 +5602,6 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan
|
||||
batk += 100 * sc->data[SC_SATURDAYNIGHTFEVER]->val1;
|
||||
if( sc->data[SC_ZANGETSU] )
|
||||
batk += sc->data[SC_ZANGETSU]->val2;
|
||||
if(sc->data[SC_EQC])
|
||||
batk -= batk * sc->data[SC_EQC]->val3 / 100;
|
||||
if(sc->data[SC_QUEST_BUFF1])
|
||||
batk += sc->data[SC_QUEST_BUFF1]->val1;
|
||||
if(sc->data[SC_QUEST_BUFF2])
|
||||
@@ -8814,9 +8812,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
status_change_end(bl,SC_FOOD_DEX_CASH,INVALID_TIMER);
|
||||
status_change_end(bl,SC_FOOD_LUK_CASH,INVALID_TIMER);
|
||||
break;
|
||||
case SC_EQC:
|
||||
status_change_end(bl,SC_TINDER_BREAKER2,INVALID_TIMER);
|
||||
break;
|
||||
case SC_FIGHTINGSPIRIT:
|
||||
case SC_OVERED_BOOST:
|
||||
case SC_MAGICPOWER:
|
||||
@@ -10435,9 +10430,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
break;
|
||||
case SC_EQC:
|
||||
val2 = 5 * val1; // def % reduc
|
||||
val3 = 5 * val1; // atk % reduc
|
||||
val4 = 2 * val1; // HP drain %
|
||||
sc_start2(src, bl,SC_STUN,100,val1,bl->id,(1000*status_get_lv(src))/50+500*val1);
|
||||
val3 = 2 * val1; // HP drain %
|
||||
break;
|
||||
case SC_ASH:
|
||||
val2 = 0; // hit % reduc
|
||||
|
||||
Reference in New Issue
Block a user