Skip to content

Commit

Permalink
Lunatic Carrot Beat, Catnip Meteor, Grand Cross (fixes #1219)
Browse files Browse the repository at this point in the history
- 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)
  • Loading branch information
Playtester committed May 2, 2016
1 parent c6187fa commit 89f86b2
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion db/pre-re/skill_cast_db.txt
Expand Up @@ -378,7 +378,7 @@
//-- CR_HOLYCROSS
253,0,0,0,0,30000,0
//-- CR_GRANDCROSS
254,2000,1500,900,900,30000,0
254,3000,1500,800,800,30000,0
//-- CR_DEVOTION
255,3000,0,0,0,30000:45000:60000:75000:90000,0
//-- CR_PROVIDENCE
Expand Down
6 changes: 3 additions & 3 deletions db/re/skill_cast_db.txt
Expand Up @@ -376,7 +376,7 @@
//-- CR_HOLYCROSS
253,0,0,0,0,20000,0,0
//-- CR_GRANDCROSS
254,1500,1500,900,900,20000,0,1500
254,1500,1500,800,800,20000,0,1500
//-- CR_DEVOTION
255,1500,0,0,0,30000:45000:60000:75000:90000,0,1500
//-- CR_PROVIDENCE
Expand Down Expand Up @@ -1778,7 +1778,7 @@
//-- SU_CN_POWDERING
5027,1500,1000,0,3000:4000:5000:6000:7000,0,0,0
//-- 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
5029,0,1000,0,7000:9000:11000:13000:15000,0,3000,0
//-- SU_SV_ROOTTWIST_ATK
Expand All @@ -1792,7 +1792,7 @@
//-- SU_ARCLOUSEDASH
5035,2500,1000,0,60000:70000:80000:90000:100000,0,10000,0
//-- SU_LUNATICCARROTBEAT
5036,3000,1000,0,0,5000,8000,0
5036,1500,1000,0,0,5000,6000,0
//-- SU_TUNABELLY
5038,2000,1000,0,0,0,8000:10000:12000:14000:16000,0
//-- SU_TUNAPARTY
Expand Down
4 changes: 2 additions & 2 deletions db/re/skill_db.txt
Expand Up @@ -1339,15 +1339,15 @@
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
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
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
5032,9,6,1,-1,0,0,5,1,yes,0,0,0,weapon,0,0x0, SU_SCAROFTAROU,Scar of Tarou
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
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
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
Expand Down
15 changes: 8 additions & 7 deletions src/map/battle.c
Expand Up @@ -3228,14 +3228,15 @@ struct Damage battle_calc_skill_base_damage(struct Damage wd, struct block_list
/*================================================= [Playtester]
* Applies DAMAGE_DIV_FIX and checks for min damage
* @param d: Damage struct to apply DAMAGE_DIV_FIX to
* @param skill_id: ID of the skill that deals damage
* @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) {
DAMAGE_DIV_FIX(d.damage, d.div_);
//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_;
} else if (d.div_ < 0) {
d.div_ *= -1;
Expand Down Expand Up @@ -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
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(wd.damage > 1 && wd.damage2 > 0) {
Expand Down Expand Up @@ -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);

//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);

Expand Down Expand Up @@ -6082,7 +6083,7 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
skillratio += 600;
break;
case SU_CN_METEOR:
skillratio += -60 + 20 * skill_lv;
skillratio += 100 + 100 * skill_lv;
break;
}

Expand Down Expand Up @@ -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

//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
#ifdef RENEWAL
Expand Down Expand Up @@ -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
md = battle_apply_div_fix(md);
md = battle_apply_div_fix(md, skill_id);

switch(skill_id) {
case RA_FIRINGTRAP:
Expand Down
4 changes: 2 additions & 2 deletions src/map/skill.c
Expand Up @@ -1856,14 +1856,14 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
break;
case SU_CN_METEOR:
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;
//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?
// break;
case SU_LUNATICCARROTBEAT:
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;
} //end switch skill_id

Expand Down

1 comment on commit 89f86b2

@Playtester
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Forgot to mention: Lunatic Carrot Beat always deals 3 hits now.

Please sign in to comment.