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
4 changes: 4 additions & 0 deletions db/re/mob_db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109053,6 +109053,7 @@ Body:
AttackMotion: 960
ClientAttackMotion: 480
DamageMotion: 576
DamageTaken: 10
Ai: 24
- Id: 20849
AegisName: SUMMON_WOODEN_FAIRY
Expand All @@ -109076,6 +109077,7 @@ Body:
AttackMotion: 1152
ClientAttackMotion: 864
DamageMotion: 576
DamageTaken: 10
Ai: 24
- Id: 20850
AegisName: SUMMON_CREEPER
Expand All @@ -109099,6 +109101,7 @@ Body:
AttackMotion: 840
ClientAttackMotion: 600
DamageMotion: 576
DamageTaken: 10
Ai: 24
- Id: 20851
AegisName: SUMMON_HELLTREE
Expand All @@ -109122,6 +109125,7 @@ Body:
AttackMotion: 1080
ClientAttackMotion: 840
DamageMotion: 480
DamageTaken: 10
Ai: 24
# - Id: 20856
# AegisName: MD_N_ARENA_1
Expand Down
10 changes: 1 addition & 9 deletions db/re/skill_db.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36687,8 +36687,6 @@ Body:
- Level: 5
Amount: 60
State: Shield
Status:
Attack_Stance: true
Status: Shield_Power
- Id: 5266
Name: IG_OVERSLASH
Expand Down Expand Up @@ -37618,8 +37616,6 @@ Body:
Amount: 55
- Level: 5
Amount: 60
Weapon:
Dagger: true
- Id: 5292
Name: SHC_IMPACT_CRATER
Description: Impact Crater
Expand All @@ -37630,7 +37626,7 @@ Body:
Splash: true
Critical: true
Hit: Multi_Hit
HitCount: 1
HitCount: 5
Element: Weapon
SplashArea:
- Level: 1
Expand Down Expand Up @@ -37668,10 +37664,6 @@ Body:
Amount: 70
- Level: 5
Amount: 78
Weapon:
Katar: true
Status:
Rollingcutter: true
Status: WeaponBlock_On
- Id: 5293
Name: SHC_ENCHANTING_SHADOW
Expand Down
7 changes: 6 additions & 1 deletion src/map/battle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3082,8 +3082,13 @@ static bool is_attack_critical(struct Damage* wd, block_list *src, const block_l
case GC_CROSSIMPACT:
case SHC_SAVAGE_IMPACT:
case SHC_ETERNAL_SLASH:
case SHC_IMPACT_CRATER:
case SHC_CROSS_SLASH:
cri /= 2;
break;
case SHC_IMPACT_CRATER:
if (sd == nullptr || sd->weapontype1 != W_KATAR)
return false;

cri /= 2;
break;
case WH_GALESTORM:
Expand Down
7 changes: 0 additions & 7 deletions src/map/skills/thief/impactcrater.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,6 @@
SkillImpactCrater::SkillImpactCrater() : SkillImplRecursiveDamageSplash(SHC_IMPACT_CRATER) {
}

void SkillImpactCrater::modifyDamageData(Damage& dmg, const block_list& src, const block_list& target, uint16 skill_lv) const {
const status_change *sc = status_get_sc(&src);

if (sc != nullptr && sc->hasSCE(SC_ROLLINGCUTTER))
dmg.div_ = sc->getSCE(SC_ROLLINGCUTTER)->val1;
}

void SkillImpactCrater::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);

Expand Down
1 change: 0 additions & 1 deletion src/map/skills/thief/impactcrater.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ class SkillImpactCrater : public SkillImplRecursiveDamageSplash {
public:
SkillImpactCrater();

void modifyDamageData(Damage& dmg, const block_list& src, const block_list& target, uint16 skill_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 castendNoDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const override;
};
13 changes: 2 additions & 11 deletions src/map/skills/thief/shadowstab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,13 @@ SkillShadowStab::SkillShadowStab() : WeaponSkillImpl(SHC_SHADOW_STAB) {
void SkillShadowStab::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 + 550 * skill_lv;
skillratio += 5 * sstatus->pow;

if (wd->miscflag & SKILL_ALTDMG_FLAG) {
skillratio += 100 * skill_lv + 2 * sstatus->pow;
}
skillratio += -100 + 650 * skill_lv;
skillratio += 5 * sstatus->pow; // TODO : check pow ratio

RE_LVL_DMOD(100);
}

void SkillShadowStab::castendDamageId(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32& flag) const {
status_change *sc = status_get_sc(src);

if (sc && sc->getSCE(SC_CLOAKINGEXCEED))
flag |= SKILL_ALTDMG_FLAG;

status_change_end(src, SC_CLOAKING);
status_change_end(src, SC_CLOAKINGEXCEED);

Expand Down
Loading