From 13a8b0a3682748ebffa733b86a38a2fd50fa5511 Mon Sep 17 00:00:00 2001 From: Atemo Date: Sat, 28 Oct 2023 13:35:13 +0200 Subject: [PATCH] Implemented SH_CHUL_HO_SONIC_CLAW (2nd rebalance) MAX Lv: 7 Skill Requirement: Mystical Creature Mastery 1 Skill Form: Active Type: Ranged Physical Target: Single target Recovery: AP 1 Description: Using the sharp claw of Chulho by scratches the air towards the target, inflicts long ranged physical damage to the target. Deals additional damage depends on level of Mystical Creature Mastery user learned, user's base level and POW. If the user learned Commune With Chulho, increases skill damage and applies critical damage, the critical chance is the user's Cri. The effectiveness of critical modifier is applied by half. _ [Level 1]: (2500 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (2900 + (Mystical Creature level x 100))% Atk. [Level 2]: (4150 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (4950 + (Mystical Creature level x 100))% Atk. [Level 3]: (5800 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (7000 + (Mystical Creature level x 100))% Atk. [Level 4]: (7450 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (9050 + (Mystical Creature level x 100))% Atk. [Level 5]: (9100 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (11100 + (Mystical Creature level x 100))% Atk. [Level 6]: (10750 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (13150 + (Mystical Creature level x 100))% Atk. [Level 7]: (12400 + (Mystical Creature level x 50))% Atk. Commune With Chulho: (15200 + (Mystical Creature level x 100))% Atk. 1st rebalance : - Increases SP consumption from 42 to 54 based on level 7. - Increases damage from 2800%/3150%(Commune With Chulho)Atk to 5650%/6450%(Commune With Chulho)Atk based on level 7. - Increases factor weight of Mystical Creature skill level in skill formula from 30/50(Commune With Chulho) to 50/100(Commune With Chulho). 2nd rebalance : - Increases cast range from 9 cells to 11 cells. - Increases base damage from 5650%/6450%Atk to 12400%/15200%Atk based on level 7. --- db/re/skill_db.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/map/battle.cpp | 17 +++++++++++++++++ src/map/skill.cpp | 16 +++++++++++----- 3 files changed, 73 insertions(+), 5 deletions(-) diff --git a/db/re/skill_db.yml b/db/re/skill_db.yml index 5f62c8a766..899d84863a 100644 --- a/db/re/skill_db.yml +++ b/db/re/skill_db.yml @@ -41397,6 +41397,51 @@ Body: Name: SH_COMMUNE_WITH_CHUL_HO Description: Commune with Chulho MaxLevel: 1 + - Id: 5435 + Name: SH_CHUL_HO_SONIC_CLAW + Description: Chulho Sonic Claw + MaxLevel: 7 + Type: Weapon + TargetType: Attack + DamageFlags: + Critical: true + Range: -11 + Hit: Multi_Hit + HitCount: -2 + GiveAp: 1 + Element: Weapon + AfterCastActDelay: 500 + Cooldown: + - Level: 1 + Time: 1150 + - Level: 2 + Time: 1000 + - Level: 3 + Time: 850 + - Level: 4 + Time: 700 + - Level: 5 + Time: 550 + - Level: 6 + Time: 400 + - Level: 7 + Time: 250 + Requires: + SpCost: + - Level: 1 + Amount: 42 + - Level: 2 + Amount: 44 + - Level: 3 + Amount: 46 + - Level: 4 + Amount: 48 + - Level: 5 + Amount: 50 + - Level: 6 + Amount: 52 + - Level: 7 + Amount: 54 - Id: 5438 Name: SH_COMMUNE_WITH_KI_SUL Description: Commune with Chulho diff --git a/src/map/battle.cpp b/src/map/battle.cpp index 5a9ccce8a6..35924471c8 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -2954,6 +2954,10 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct case WH_GALESTORM: if (sc && !sc->getSCE(SC_CALAMITYGALE)) return false; + case SH_CHUL_HO_SONIC_CLAW: + if (!(sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || !(sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) + return false; + break; } if(tsd && tsd->bonus.critical_def) cri = cri * ( 100 - tsd->bonus.critical_def ) / 100; @@ -5727,6 +5731,19 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * case ABR_INFINITY_BUSTER:// Need official formula. skillratio += -100 + 50000; break; + case SH_CHUL_HO_SONIC_CLAW: { + int tmp_val = (sd ? pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) : 0); + skillratio += -100 + 850 + 1650 * skill_lv; + skillratio += 50 * tmp_val; + skillratio += 5 * sstatus->pow; + + if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { + skillratio += 100 + 400 * skill_lv; + skillratio += 50 * tmp_val; + } + RE_LVL_DMOD(100); + break; + } } return skillratio; } diff --git a/src/map/skill.cpp b/src/map/skill.cpp index a952f1941a..86dcd9b544 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -5217,20 +5217,26 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint sc_start(src, src, SC_SHIELD_POWER, 100, skill_lv, skill_get_time(skill_id, skill_lv)); break; case DK_DRAGONIC_AURA: - case DK_STORMSLASH: case IG_GRAND_JUDGEMENT: + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); + sc_start(src, src, SC_DRAGONIC_AURA, 100, skill_lv, skill_get_time(skill_id,skill_lv)); + break; + case IG_GRAND_JUDGEMENT: + clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); + skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); + sc_start(src, src, SC_SPEAR_SCAR, 100, skill_lv, skill_get_time(skill_id, skill_lv)); + break; + case DK_STORMSLASH: case CD_EFFLIGO: case ABC_FRENZY_SHOT: case WH_HAWKRUSH: case WH_HAWKBOOMERANG: case TR_ROSEBLOSSOM: case TR_RHYTHMSHOOTING: + case SH_CHUL_HO_SONIC_CLAW: clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag); - if (skill_id == DK_DRAGONIC_AURA) - sc_start(src, src, SC_DRAGONIC_AURA, 100, skill_lv, skill_get_time(skill_id,skill_lv)); - else if (skill_id == IG_GRAND_JUDGEMENT) - sc_start(src, src, SC_SPEAR_SCAR, 100, skill_lv, skill_get_time(skill_id, skill_lv)); break; case SHC_ETERNAL_SLASH: