Lunatic Carrot Beat, Catnip Meteor, Grand Cross (fixes #1219)
- Lunatic Carrot Beat and Catnip Meteor now deal 300% to 700% damage which is calculated once and split between multiple hits rather than calculating damage per hit; despite this, they can still hit plants - Reduced cast time of Lunatic Carrot Beat from 3000ms to 1500ms and cooldown from 8000ms to 6000ms according to latest tests on kRO - Fixed Catnip Meteor still having a fixed cast time - Increased stun chance of Lunatic Carrot Beat from 10% to 20% - Increased curse chance of Catnip Meteor from 10% to 20% - Increased cast time of Grand Cross in pre-re to 3000ms (see #1140) - Fixed Grand Cross sometimes having 4 intervals instead of 3 (see #1140)
This commit is contained in:
parent
c6187fa5c1
commit
89f86b2533
@ -378,7 +378,7 @@
|
|||||||
//-- CR_HOLYCROSS
|
//-- CR_HOLYCROSS
|
||||||
253,0,0,0,0,30000,0
|
253,0,0,0,0,30000,0
|
||||||
//-- CR_GRANDCROSS
|
//-- CR_GRANDCROSS
|
||||||
254,2000,1500,900,900,30000,0
|
254,3000,1500,800,800,30000,0
|
||||||
//-- CR_DEVOTION
|
//-- CR_DEVOTION
|
||||||
255,3000,0,0,0,30000:45000:60000:75000:90000,0
|
255,3000,0,0,0,30000:45000:60000:75000:90000,0
|
||||||
//-- CR_PROVIDENCE
|
//-- CR_PROVIDENCE
|
||||||
|
@ -376,7 +376,7 @@
|
|||||||
//-- CR_HOLYCROSS
|
//-- CR_HOLYCROSS
|
||||||
253,0,0,0,0,20000,0,0
|
253,0,0,0,0,20000,0,0
|
||||||
//-- CR_GRANDCROSS
|
//-- CR_GRANDCROSS
|
||||||
254,1500,1500,900,900,20000,0,1500
|
254,1500,1500,800,800,20000,0,1500
|
||||||
//-- CR_DEVOTION
|
//-- CR_DEVOTION
|
||||||
255,1500,0,0,0,30000:45000:60000:75000:90000,0,1500
|
255,1500,0,0,0,30000:45000:60000:75000:90000,0,1500
|
||||||
//-- CR_PROVIDENCE
|
//-- CR_PROVIDENCE
|
||||||
@ -1778,7 +1778,7 @@
|
|||||||
//-- SU_CN_POWDERING
|
//-- SU_CN_POWDERING
|
||||||
5027,1500,1000,0,3000:4000:5000:6000:7000,0,0,0
|
5027,1500,1000,0,3000:4000:5000:6000:7000,0,0,0
|
||||||
//-- SU_CN_METEOR
|
//-- SU_CN_METEOR
|
||||||
5028,7500,1000,0,1500:2000:2500:3000:3500,20000,5000,0
|
5028,7500,1000,0,1500:2000:2500:3000:3500,20000,5000,-1
|
||||||
//-- SU_SV_ROOTTWIST
|
//-- SU_SV_ROOTTWIST
|
||||||
5029,0,1000,0,7000:9000:11000:13000:15000,0,3000,0
|
5029,0,1000,0,7000:9000:11000:13000:15000,0,3000,0
|
||||||
//-- SU_SV_ROOTTWIST_ATK
|
//-- SU_SV_ROOTTWIST_ATK
|
||||||
@ -1792,7 +1792,7 @@
|
|||||||
//-- SU_ARCLOUSEDASH
|
//-- SU_ARCLOUSEDASH
|
||||||
5035,2500,1000,0,60000:70000:80000:90000:100000,0,10000,0
|
5035,2500,1000,0,60000:70000:80000:90000:100000,0,10000,0
|
||||||
//-- SU_LUNATICCARROTBEAT
|
//-- SU_LUNATICCARROTBEAT
|
||||||
5036,3000,1000,0,0,5000,8000,0
|
5036,1500,1000,0,0,5000,6000,0
|
||||||
//-- SU_TUNABELLY
|
//-- SU_TUNABELLY
|
||||||
5038,2000,1000,0,0,0,8000:10000:12000:14000:16000,0
|
5038,2000,1000,0,0,0,8000:10000:12000:14000:16000,0
|
||||||
//-- SU_TUNAPARTY
|
//-- SU_TUNAPARTY
|
||||||
|
@ -1339,7 +1339,7 @@
|
|||||||
5025,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_POWEROFLAND,Power of Land
|
5025,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_POWEROFLAND,Power of Land
|
||||||
5026,9,6,1,2:3:1:4:8,0x0,0,5,1,yes,0,0,0,magic,0,0x0, SU_SV_STEMSPEAR,Silvervine Stem Spear
|
5026,9,6,1,2:3:1:4:8,0x0,0,5,1,yes,0,0,0,magic,0,0x0, SU_SV_STEMSPEAR,Silvervine Stem Spear
|
||||||
5027,9,6,1,0,0x3,0,5,1,yes,0,0,1,none,0,0x0, SU_CN_POWDERING,Catnip Powdering
|
5027,9,6,1,0,0x3,0,5,1,yes,0,0,1,none,0,0x0, SU_CN_POWDERING,Catnip Powdering
|
||||||
5028,9,8,2,0,0,1:1:2:2:3,5,5,yes,0,0,0,magic,0,0x0, SU_CN_METEOR,Catnip Meteor
|
5028,9,8,2,0,0,1:1:2:2:3,5,-5,yes,0,0,0,magic,0,0x0, SU_CN_METEOR,Catnip Meteor
|
||||||
5029,9,6,1,0,0x1,0,5,1,yes,0,0,1,none,0,0x0, SU_SV_ROOTTWIST,Silvervine Root Twist
|
5029,9,6,1,0,0x1,0,5,1,yes,0,0,1,none,0,0x0, SU_SV_ROOTTWIST,Silvervine Root Twist
|
||||||
5030,0,6,1,5,0x30,0,5,1,no,0,0,1,magic,0,0x0, SU_SV_ROOTTWIST_ATK,Silver Vine Root Twist Attack
|
5030,0,6,1,5,0x30,0,5,1,no,0,0,1,magic,0,0x0, SU_SV_ROOTTWIST_ATK,Silver Vine Root Twist Attack
|
||||||
5031,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_POWEROFLIFE,Power of Life
|
5031,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_POWEROFLIFE,Power of Life
|
||||||
@ -1347,7 +1347,7 @@
|
|||||||
5033,9,8,1,-1,0,0,5,-5,yes,0,0,0,weapon,0,0x0, SU_PICKYPECK,Picky Peck
|
5033,9,8,1,-1,0,0,5,-5,yes,0,0,0,weapon,0,0x0, SU_PICKYPECK,Picky Peck
|
||||||
5034,0,8,1,-1,0,0,5,-5,yes,0,0,0,weapon,0,0x0, SU_PICKYPECK_DOUBLE_ATK,Picky Peck Double Attack
|
5034,0,8,1,-1,0,0,5,-5,yes,0,0,0,weapon,0,0x0, SU_PICKYPECK_DOUBLE_ATK,Picky Peck Double Attack
|
||||||
5035,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SU_ARCLOUSEDASH,Arclouse Dash
|
5035,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SU_ARCLOUSEDASH,Arclouse Dash
|
||||||
5036,9,8,1,-1,0x2,1:1:2:2:3,5,1:2:3:4:5,yes,0,0,0,weapon,0,0x0, SU_LUNATICCARROTBEAT,Lunatic Carrot Beat
|
5036,9,8,1,-1,0x2,1:1:2:2:3,5,-3,yes,0,0,0,weapon,0,0x0, SU_LUNATICCARROTBEAT,Lunatic Carrot Beat
|
||||||
5037,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_POWEROFSEA,Power of Sea
|
5037,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, SU_POWEROFSEA,Power of Sea
|
||||||
5038,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SU_TUNABELLY,Tuna Belly
|
5038,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SU_TUNABELLY,Tuna Belly
|
||||||
5039,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SU_TUNAPARTY,Tuna Party
|
5039,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0, SU_TUNAPARTY,Tuna Party
|
||||||
|
@ -3228,14 +3228,15 @@ struct Damage battle_calc_skill_base_damage(struct Damage wd, struct block_list
|
|||||||
/*================================================= [Playtester]
|
/*================================================= [Playtester]
|
||||||
* Applies DAMAGE_DIV_FIX and checks for min damage
|
* Applies DAMAGE_DIV_FIX and checks for min damage
|
||||||
* @param d: Damage struct to apply DAMAGE_DIV_FIX to
|
* @param d: Damage struct to apply DAMAGE_DIV_FIX to
|
||||||
|
* @param skill_id: ID of the skill that deals damage
|
||||||
* @return Modified damage struct
|
* @return Modified damage struct
|
||||||
*------------------------------------------------*/
|
*------------------------------------------------*/
|
||||||
static struct Damage battle_apply_div_fix(struct Damage d)
|
static struct Damage battle_apply_div_fix(struct Damage d, uint16 skill_id)
|
||||||
{
|
{
|
||||||
if(d.damage) {
|
if(d.damage) {
|
||||||
DAMAGE_DIV_FIX(d.damage, d.div_);
|
DAMAGE_DIV_FIX(d.damage, d.div_);
|
||||||
//Min damage
|
//Min damage
|
||||||
if((battle_config.skill_min_damage&d.flag) && d.damage < d.div_)
|
if(d.damage < d.div_ && (skill_id == SU_LUNATICCARROTBEAT || skill_id == SU_CN_METEOR || (battle_config.skill_min_damage&d.flag)))
|
||||||
d.damage = d.div_;
|
d.damage = d.div_;
|
||||||
} else if (d.div_ < 0) {
|
} else if (d.div_ < 0) {
|
||||||
d.div_ *= -1;
|
d.div_ *= -1;
|
||||||
@ -4799,7 +4800,7 @@ struct Damage battle_calc_attack_plant(struct Damage wd, struct block_list *src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
//For plants we don't continue with the weapon attack code, so we have to apply DAMAGE_DIV_FIX here
|
//For plants we don't continue with the weapon attack code, so we have to apply DAMAGE_DIV_FIX here
|
||||||
wd = battle_apply_div_fix(wd);
|
wd = battle_apply_div_fix(wd, skill_id);
|
||||||
|
|
||||||
//If there is left hand damage, total damage can never exceed 2, even on multiple hits
|
//If there is left hand damage, total damage can never exceed 2, even on multiple hits
|
||||||
if(wd.damage > 1 && wd.damage2 > 0) {
|
if(wd.damage > 1 && wd.damage2 > 0) {
|
||||||
@ -5490,7 +5491,7 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src, struct bl
|
|||||||
return battle_calc_attack_plant(wd, src, target, skill_id, skill_lv);
|
return battle_calc_attack_plant(wd, src, target, skill_id, skill_lv);
|
||||||
|
|
||||||
//Apply DAMAGE_DIV_FIX and check for min damage
|
//Apply DAMAGE_DIV_FIX and check for min damage
|
||||||
wd = battle_apply_div_fix(wd);
|
wd = battle_apply_div_fix(wd, skill_id);
|
||||||
|
|
||||||
wd = battle_calc_attack_left_right_hands(wd, src, target, skill_id, skill_lv);
|
wd = battle_calc_attack_left_right_hands(wd, src, target, skill_id, skill_lv);
|
||||||
|
|
||||||
@ -6082,7 +6083,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
skillratio += 600;
|
skillratio += 600;
|
||||||
break;
|
break;
|
||||||
case SU_CN_METEOR:
|
case SU_CN_METEOR:
|
||||||
skillratio += -60 + 20 * skill_lv;
|
skillratio += 100 + 100 * skill_lv;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6224,7 +6225,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
|
|||||||
} //Hint: Against plants damage will still be 1 at this point
|
} //Hint: Against plants damage will still be 1 at this point
|
||||||
|
|
||||||
//Apply DAMAGE_DIV_FIX and check for min damage
|
//Apply DAMAGE_DIV_FIX and check for min damage
|
||||||
ad = battle_apply_div_fix(ad);
|
ad = battle_apply_div_fix(ad, skill_id);
|
||||||
|
|
||||||
switch(skill_id) { // These skills will do a GVG fix later
|
switch(skill_id) { // These skills will do a GVG fix later
|
||||||
#ifdef RENEWAL
|
#ifdef RENEWAL
|
||||||
@ -6614,7 +6615,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Apply DAMAGE_DIV_FIX and check for min damage
|
//Apply DAMAGE_DIV_FIX and check for min damage
|
||||||
md = battle_apply_div_fix(md);
|
md = battle_apply_div_fix(md, skill_id);
|
||||||
|
|
||||||
switch(skill_id) {
|
switch(skill_id) {
|
||||||
case RA_FIRINGTRAP:
|
case RA_FIRINGTRAP:
|
||||||
|
@ -1856,14 +1856,14 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|||||||
break;
|
break;
|
||||||
case SU_CN_METEOR:
|
case SU_CN_METEOR:
|
||||||
if (skill_area_temp[3] == 1)
|
if (skill_area_temp[3] == 1)
|
||||||
sc_start(src, bl, SC_CURSE, 10, skill_lv, skill_get_time2(skill_id, skill_lv)); // TODO: What's the chance/time?
|
sc_start(src, bl, SC_CURSE, 20, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||||
break;
|
break;
|
||||||
//case SU_SCAROFTAROU:
|
//case SU_SCAROFTAROU:
|
||||||
// sc_start(src, bl, SC_STUN, 10, skill_lv, skill_get_time2(skill_id, skill_lv)); // TODO: What's the chance/time?
|
// sc_start(src, bl, SC_STUN, 10, skill_lv, skill_get_time2(skill_id, skill_lv)); // TODO: What's the chance/time?
|
||||||
// break;
|
// break;
|
||||||
case SU_LUNATICCARROTBEAT:
|
case SU_LUNATICCARROTBEAT:
|
||||||
if (skill_area_temp[3] == 1)
|
if (skill_area_temp[3] == 1)
|
||||||
sc_start(src, bl, SC_STUN, 10, skill_lv, skill_get_time2(skill_id, skill_lv)); // TODO: What's the chance/time?
|
sc_start(src, bl, SC_STUN, 20, skill_lv, skill_get_time2(skill_id, skill_lv));
|
||||||
break;
|
break;
|
||||||
} //end switch skill_id
|
} //end switch skill_id
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user