From 0e9352b1d53970259610268889270f92ba92ad8a Mon Sep 17 00:00:00 2001 From: "Guilherme G. Menaldo" Date: Sun, 20 Aug 2023 01:00:49 -0300 Subject: [PATCH] Rebalance of MO_BLADESTOP (Root) - Cooldown added: 3s - Boss monsters are now affected - Duration changed: - Old: 10 + (SkillLevel * 10) seconds - New: 10 seconds (2 seconds on boss monsters) From massive skills rebalance (1st/2nd/transclass) (2018.10.31) --- db/re/skill_db.conf | 15 ++++----------- src/map/battle.c | 10 +++++++++- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 352fd6c5064..48f692ea5b7 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -8186,18 +8186,11 @@ skill_db: ( Lv9: 2100 Lv10: 2300 } - SkillData2: { - Lv1: 20000 - Lv2: 30000 - Lv3: 40000 - Lv4: 50000 - Lv5: 60000 - Lv6: 70000 - Lv7: 80000 - Lv8: 90000 - Lv9: 100000 - Lv10: 110000 + SkillData2: { // Effect duration (in miliseconds) + Lv1: 2_000 // Boss targets + Lv2: 10_000 // Non-Boss targets } + CoolDown: 3_000 FixedCastTime: 0 Requirements: { SPCost: 10 diff --git a/src/map/battle.c b/src/map/battle.c index 7bce4bc9262..5a02c444f3c 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -6652,8 +6652,10 @@ static bool battle_should_bladestop_attacker(struct block_list *src, struct bloc if (tsc == NULL || tsc->data[SC_BLADESTOP_WAIT] == NULL) return false; // Target is not in BladeStop wait mode +#ifndef RENEWAL if (is_boss(src)) return false; // Boss monsters are not affected +#endif // CHECKME: Is that right? if (src->type == BL_PC) @@ -6737,8 +6739,14 @@ static enum damage_lv battle_weapon_attack(struct block_list *src, struct block_ } if (battle->should_bladestop_attacker(src, target)) { uint16 skill_lv = tsc->data[SC_BLADESTOP_WAIT]->val1; - int duration = skill->get_time2(MO_BLADESTOP,skill_lv); status_change_end(target, SC_BLADESTOP_WAIT, INVALID_TIMER); + +#ifndef RENEWAL + int duration = skill->get_time2(MO_BLADESTOP, skill_lv); +#else + int duration = skill->get_time2(MO_BLADESTOP, is_boss(src) ? 1 : 2); +#endif + if (sc_start4(target, src, SC_BLADESTOP, 100, sd ? pc->checkskill(sd, MO_BLADESTOP) : 5, 0, 0, target->id, duration, MO_BLADESTOP)) { //Target locked. clif->damage(src, target, sstatus->amotion, 1, 0, 1, BDT_NORMAL, 0); //Display MISS.