Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions db/re/skill_db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35975,6 +35975,7 @@ Body:
Type: Weapon
TargetType: Self
DamageFlags:
Critical: true
Splash: true
Range: 9
Hit: Single
Expand Down Expand Up @@ -36119,6 +36120,7 @@ Body:
Type: Weapon
TargetType: Attack
DamageFlags:
Critical: true
Splash: true
Range: 3
Hit: Single
Expand Down Expand Up @@ -36241,6 +36243,7 @@ Body:
Type: Weapon
TargetType: Attack
DamageFlags:
Critical: true
Splash: true
Range: 3
Hit: Multi_Hit
Expand Down Expand Up @@ -36273,7 +36276,7 @@ Body:
Splash: true
Range: 3
Hit: Multi_Hit
HitCount: -3
HitCount: 3
Element: Weapon
SplashArea: 3
GiveAp: 4
Expand Down Expand Up @@ -36363,7 +36366,7 @@ Body:
HitCount: 5
Element: Weapon
SplashArea: 3
Cooldown: 1000
Cooldown: 700
Requires:
SpCost:
- Level: 1
Expand Down Expand Up @@ -43587,7 +43590,7 @@ Body:
HitCount: -3
GiveAp: 3
Element: Weapon
SplashArea: 2
SplashArea: 3
Cooldown: 3500
FixedCastTime: 500
Duration1: 2500
Expand Down Expand Up @@ -44787,7 +44790,7 @@ Body:
- Level: 5
Area: 3
AfterCastActDelay: 300
Cooldown: 1000
Cooldown: 750
Requires:
SpCost:
- Level: 1
Expand Down
4 changes: 3 additions & 1 deletion src/map/battle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1969,9 +1969,11 @@ int64 battle_calc_damage(block_list *src,block_list *bl,struct Damage *d,int64 d
damage += damage * 120 / 100;
break;
case HN_MEGA_SONIC_BLOW:
case HN_SPIRAL_PIERCE_MAX:
damage *= 2;
break;
case HN_SPIRAL_PIERCE_MAX:
damage += damage * 130 / 100;
break;
}
}

Expand Down
4 changes: 3 additions & 1 deletion src/map/skills/acolyte/secondjudgement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ SkillSecondJudgement::SkillSecondJudgement() : SkillImplRecursiveDamageSplash(IQ
void SkillSecondJudgement::calculateSkillRatio(const Damage* wd, const block_list* src, const block_list* target, uint16 skill_lv, int32& skillratio, int32 mflag) const {
const status_data* sstatus = status_get_status_data(*src);

skillratio += -100 + 150 + 2600 * skill_lv + 7 * sstatus->pow;
skillratio += -100 + 2000 + 500 * skill_lv;
skillratio += 7 * sstatus->pow; // TODO : pow ratio has changed ?

RE_LVL_DMOD(100);
}

Expand Down
5 changes: 3 additions & 2 deletions src/map/skills/acolyte/thirdconsecration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ SkillThirdConsecration::SkillThirdConsecration() : SkillImplRecursiveDamageSplas
void SkillThirdConsecration::calculateSkillRatio(const Damage* wd, const block_list* src, const block_list* target, uint16 skill_lv, int32& skillratio, int32 mflag) const {
const status_data* sstatus = status_get_status_data(*src);

skillratio += -100 + 700 * skill_lv + 10 * sstatus->pow;
skillratio += -100 + 1200 * skill_lv;
skillratio += 10 * sstatus->pow;

RE_LVL_DMOD(100);
}

Expand All @@ -24,7 +26,6 @@ void SkillThirdConsecration::applyAdditionalEffects(block_list* src, block_list*

void SkillThirdConsecration::splashSearch(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32 flag) const {
clif_skill_nodamage(src, *target, getSkillId(), skill_lv);
status_heal(src, status_get_max_hp(src) * skill_lv / 100, status_get_max_sp(src) * skill_lv / 100, 0);

SkillImplRecursiveDamageSplash::splashSearch(src, target, skill_lv, tick, flag);
}
4 changes: 3 additions & 1 deletion src/map/skills/novice/shieldchainrush.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@ void SkillShieldChainRush::calculateSkillRatio(const Damage *wd, const block_lis
const status_data* sstatus = status_get_status_data(*src);
const map_session_data* sd = BL_CAST( BL_PC, src );

skillratio += -100 + 850 + 1050 * skill_lv;
skillratio += -100 + 600 + 1300 * skill_lv;
skillratio += pc_checkskill(sd, HN_SELFSTUDY_TATICS) * 3 * skill_lv;
skillratio += 5 * sstatus->pow;

RE_LVL_DMOD(100);
}

// TODO : refactor to SkillImplRecursiveDamageSplash
void SkillShieldChainRush::castendDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const {
if (flag & 1) {
WeaponSkillImpl::castendDamageId(src, target, skill_lv, tick, flag);
Expand Down
8 changes: 0 additions & 8 deletions src/map/skills/novice/spiralpiercemax.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,6 @@
SkillSpiralPierceMax::SkillSpiralPierceMax() : WeaponSkillImpl(HN_SPIRAL_PIERCE_MAX) {
}

void SkillSpiralPierceMax::applyAdditionalEffects(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32 attack_type, enum damage_lv dmg_lv) const {
map_session_data* dstsd = BL_CAST( BL_PC, target );
mob_data *dstmd = BL_CAST(BL_MOB, target);

if( dstsd || ( dstmd && !status_bl_has_mode(target,MD_STATUSIMMUNE) ) ) //Does not work on status immune
sc_start(src,target,SC_ANKLE,100,0,skill_get_time2(getSkillId(),skill_lv));
}

void SkillSpiralPierceMax::calculateSkillRatio(const Damage *wd, const block_list *src, const block_list *target, uint16 skill_lv, int32 &skillratio, int32 mflag) const {
const status_data* sstatus = status_get_status_data(*src);
const map_session_data* sd = BL_CAST( BL_PC, src );
Expand Down
1 change: 0 additions & 1 deletion src/map/skills/novice/spiralpiercemax.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ class SkillSpiralPierceMax : public WeaponSkillImpl {
public:
SkillSpiralPierceMax();

void applyAdditionalEffects(block_list* src, block_list* target, uint16 skill_lv, t_tick tick, int32 attack_type, enum damage_lv dmg_lv) const override;
void calculateSkillRatio(const Damage *wd, const block_list *src, const block_list *target, uint16 skill_lv, int32 &skillratio, int32 mflag) const override;
void castendDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const override;
};
3 changes: 2 additions & 1 deletion src/map/skills/taekwon/starcannon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ void SkillStarCannon::calculateSkillRatio(const Damage* wd, const block_list* sr
const map_session_data* sd = BL_CAST(BL_PC, src);
const status_data* sstatus = status_get_status_data(*src);

skillratio += -100 + 250 + 550 * skill_lv;
skillratio += -100 + 150 + 650 * skill_lv;
skillratio += pc_checkskill(sd, SKE_SKY_MASTERY) * 5 * skill_lv;
skillratio += 5 * sstatus->pow;

RE_LVL_DMOD(100);
}
3 changes: 2 additions & 1 deletion src/map/skills/taekwon/twinklinggalaxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ void SkillTwinklingGalaxy::calculateSkillRatio(const Damage* wd, const block_lis
const map_session_data* sd = BL_CAST(BL_PC, src);
const status_data* sstatus = status_get_status_data(*src);

skillratio += -100 + 300 + 500 * skill_lv;
skillratio += -100 + 250 + 600 * skill_lv;
skillratio += pc_checkskill(sd, SKE_SKY_MASTERY) * 3 * skill_lv;
skillratio += 5 * sstatus->pow;

RE_LVL_DMOD(100);
}
Loading