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
8 changes: 0 additions & 8 deletions src/map/battle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8234,14 +8234,6 @@ struct Damage battle_calc_magic_attack(block_list *src,block_list *target,uint16
if (sd && ad.div_ > 0)
ad.div_ *= -1; //For players, damage is divided by number of hits
break;
case HW_NAPALMVULCAN:
#ifdef RENEWAL
skillratio += -100 + 70 * skill_lv;
RE_LVL_DMOD(100);
#else
skillratio += 25;
#endif
break;
case NJ_KOUENKA:
skillratio -= 10;
if(sd && sd->spiritcharm_type == CHARM_TYPE_FIRE && sd->spiritcharm > 0)
Expand Down
6 changes: 6 additions & 0 deletions src/map/map-server-generator.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -316,13 +316,16 @@
<ClInclude Include="skills/mage/firewall.hpp" />
<ClInclude Include="skills/mage/frostdiver.hpp" />
<ClInclude Include="skills/mage/frostnova.hpp" />
<ClInclude Include="skills/mage/ganbantein.hpp" />
<ClInclude Include="skills/mage/gravitationfield.hpp" />
<ClInclude Include="skills/mage/heavensdrive.hpp" />
<ClInclude Include="skills/mage/icewall.hpp" />
<ClInclude Include="skills/mage/jupitelthunder.hpp" />
<ClInclude Include="skills/mage/lightningbolt.hpp" />
<ClInclude Include="skills/mage/lordofvermilion.hpp" />
<ClInclude Include="skills/mage/meteorstorm.hpp" />
<ClInclude Include="skills/mage/napalmbeat.hpp" />
<ClInclude Include="skills/mage/napalmvulcan.hpp" />
<ClInclude Include="skills/mage/quagmire.hpp" />
<ClInclude Include="skills/mage/safetywall.hpp" />
<ClInclude Include="skills/mage/sense.hpp" />
Expand Down Expand Up @@ -592,13 +595,16 @@
<ClCompile Include="skills/mage/firewall.cpp" />
<ClCompile Include="skills/mage/frostdiver.cpp" />
<ClCompile Include="skills/mage/frostnova.cpp" />
<ClCompile Include="skills/mage/ganbantein.cpp" />
<ClCompile Include="skills/mage/gravitationfield.cpp" />
<ClCompile Include="skills/mage/heavensdrive.cpp" />
<ClCompile Include="skills/mage/icewall.cpp" />
<ClCompile Include="skills/mage/jupitelthunder.cpp" />
<ClCompile Include="skills/mage/lightningbolt.cpp" />
<ClCompile Include="skills/mage/lordofvermilion.cpp" />
<ClCompile Include="skills/mage/meteorstorm.cpp" />
<ClCompile Include="skills/mage/napalmbeat.cpp" />
<ClCompile Include="skills/mage/napalmvulcan.cpp" />
<ClCompile Include="skills/mage/quagmire.cpp" />
<ClCompile Include="skills/mage/safetywall.cpp" />
<ClCompile Include="skills/mage/sense.cpp" />
Expand Down
18 changes: 18 additions & 0 deletions src/map/map-server-generator.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,12 @@
<ClInclude Include="skills/mage/frostnova.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/ganbantein.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/gravitationfield.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/heavensdrive.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
Expand All @@ -618,6 +624,9 @@
<ClInclude Include="skills/mage/napalmbeat.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/napalmvulcan.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/quagmire.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
Expand Down Expand Up @@ -1283,6 +1292,12 @@
<ClCompile Include="skills/mage/frostnova.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/ganbantein.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/gravitationfield.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/heavensdrive.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
Expand All @@ -1304,6 +1319,9 @@
<ClCompile Include="skills/mage/napalmbeat.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/napalmvulcan.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/quagmire.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
Expand Down
6 changes: 6 additions & 0 deletions src/map/map-server.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -316,13 +316,16 @@
<ClInclude Include="skills/mage/firewall.hpp" />
<ClInclude Include="skills/mage/frostdiver.hpp" />
<ClInclude Include="skills/mage/frostnova.hpp" />
<ClInclude Include="skills/mage/ganbantein.hpp" />
<ClInclude Include="skills/mage/gravitationfield.hpp" />
<ClInclude Include="skills/mage/heavensdrive.hpp" />
<ClInclude Include="skills/mage/icewall.hpp" />
<ClInclude Include="skills/mage/jupitelthunder.hpp" />
<ClInclude Include="skills/mage/lightningbolt.hpp" />
<ClInclude Include="skills/mage/lordofvermilion.hpp" />
<ClInclude Include="skills/mage/meteorstorm.hpp" />
<ClInclude Include="skills/mage/napalmbeat.hpp" />
<ClInclude Include="skills/mage/napalmvulcan.hpp" />
<ClInclude Include="skills/mage/quagmire.hpp" />
<ClInclude Include="skills/mage/safetywall.hpp" />
<ClInclude Include="skills/mage/sense.hpp" />
Expand Down Expand Up @@ -592,13 +595,16 @@
<ClCompile Include="skills/mage/firewall.cpp" />
<ClCompile Include="skills/mage/frostdiver.cpp" />
<ClCompile Include="skills/mage/frostnova.cpp" />
<ClCompile Include="skills/mage/ganbantein.cpp" />
<ClCompile Include="skills/mage/gravitationfield.cpp" />
<ClCompile Include="skills/mage/heavensdrive.cpp" />
<ClCompile Include="skills/mage/icewall.cpp" />
<ClCompile Include="skills/mage/jupitelthunder.cpp" />
<ClCompile Include="skills/mage/lightningbolt.cpp" />
<ClCompile Include="skills/mage/lordofvermilion.cpp" />
<ClCompile Include="skills/mage/meteorstorm.cpp" />
<ClCompile Include="skills/mage/napalmbeat.cpp" />
<ClCompile Include="skills/mage/napalmvulcan.cpp" />
<ClCompile Include="skills/mage/quagmire.cpp" />
<ClCompile Include="skills/mage/safetywall.cpp" />
<ClCompile Include="skills/mage/sense.cpp" />
Expand Down
18 changes: 18 additions & 0 deletions src/map/map-server.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,12 @@
<ClInclude Include="skills/mage/frostnova.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/ganbantein.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/gravitationfield.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/heavensdrive.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
Expand All @@ -618,6 +624,9 @@
<ClInclude Include="skills/mage/napalmbeat.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/napalmvulcan.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
<ClInclude Include="skills/mage/quagmire.hpp">
<Filter>Header Files\Skills\Mage</Filter>
</ClInclude>
Expand Down Expand Up @@ -1283,6 +1292,12 @@
<ClCompile Include="skills/mage/frostnova.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/ganbantein.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/gravitationfield.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/heavensdrive.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
Expand All @@ -1304,6 +1319,9 @@
<ClCompile Include="skills/mage/napalmbeat.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/napalmvulcan.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
<ClCompile Include="skills/mage/quagmire.cpp">
<Filter>Source Files\Skills\Mage</Filter>
</ClCompile>
Expand Down
29 changes: 1 addition & 28 deletions src/map/skill.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1448,9 +1448,7 @@ int32 skill_additional_effect( block_list* src, block_list *bl, uint16 skill_id,
#ifndef RENEWAL
case PA_PRESSURE:
status_percent_damage(src, bl, 0, 15+5*skill_lv, false);
[[fallthrough]];
case HW_GRAVITATION:
//Pressure and Gravitation can trigger physical autospells
//Pressure can trigger physical autospells
attack_type |= BF_NORMAL;
attack_type |= BF_WEAPON;
break;
Expand Down Expand Up @@ -1583,7 +1581,6 @@ int32 skill_additional_effect( block_list* src, block_list *bl, uint16 skill_id,
sc_start(src,bl,SC_BLIND,100,skill_lv,skill_get_time2(skill_id,skill_lv));
break;

case HW_NAPALMVULCAN:
case HN_NAPALM_VULCAN_STRIKE:
sc_start(src,bl,SC_CURSE,5*skill_lv,skill_lv,skill_get_time2(skill_id,skill_lv));
break;
Expand Down Expand Up @@ -5286,7 +5283,6 @@ int32 skill_castend_damage_id (block_list* src, block_list *bl, uint16 skill_id,
flag |= SD_PREAMBLE; // a fake packet will be sent for the first target to be hit
[[fallthrough]];
case MA_SHOWER:
case HW_NAPALMVULCAN:
case NJ_HUUMA:
case NPC_PULSESTRIKE:
case NPC_PULSESTRIKE2:
Expand Down Expand Up @@ -13044,9 +13040,6 @@ int32 skill_castend_pos2(block_list* src, int32 x, int32 y, uint16 skill_id, uin
case NJ_HYOUSYOURAKU:
case NJ_RAIGEKISAI:
case NJ_KAMAITACHI:
#ifdef RENEWAL
case HW_GRAVITATION:
#endif
case NPC_EVILLAND:
case NPC_VENOMFOG:
case NPC_COMET:
Expand Down Expand Up @@ -13305,26 +13298,6 @@ int32 skill_castend_pos2(block_list* src, int32 x, int32 y, uint16 skill_id, uin
}
break;

case HW_GANBANTEIN:
if (rnd()%100 < 80) {
int32 dummy = 1;
clif_skill_poseffect( *src, skill_id, skill_lv, x, y, tick );
i = skill_get_splash(skill_id, skill_lv);
map_foreachinallarea(skill_cell_overlap, src->m, x-i, y-i, x+i, y+i, BL_SKILL, HW_GANBANTEIN, &dummy, src);
} else {
if (sd) clif_skill_fail( *sd, skill_id );
return 1;
}
break;

#ifndef RENEWAL
case HW_GRAVITATION:
if ((sg = skill_unitsetting(src,skill_id,skill_lv,x,y,0)))
sc_start4(src,src,type,100,skill_lv,0,BCT_SELF,sg->group_id,skill_get_time(skill_id,skill_lv));
flag|=1;
break;
#endif

// Plant Cultivation [Celest]
case CR_CULTIVATION:
if (sd) {
Expand Down
26 changes: 26 additions & 0 deletions src/map/skills/mage/ganbantein.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#include "ganbantein.hpp"

#include "map/clif.hpp"
#include "map/pc.hpp"

SkillGanbantein::SkillGanbantein() : SkillImpl(HW_GANBANTEIN) {
}

void SkillGanbantein::castendPos2(block_list* src, int32 x, int32 y, uint16 skill_lv, t_tick tick, int32& flag) const {
map_session_data* sd = BL_CAST( BL_PC, src );

if (rnd()%100 < 80) {
int32 dummy = 1;
clif_skill_poseffect( *src, getSkillId(), skill_lv, x, y, tick );
bool i = skill_get_splash(getSkillId(), skill_lv);
map_foreachinallarea(skill_cell_overlap, src->m, x-i, y-i, x+i, y+i, BL_SKILL, getSkillId(), &dummy, src);
} else {
if (sd) clif_skill_fail( *sd, getSkillId() );

flag |= SKILL_NOCONSUME_REQ;
return;
}
}
13 changes: 13 additions & 0 deletions src/map/skills/mage/ganbantein.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#pragma once

#include "../skill_impl.hpp"

class SkillGanbantein : public SkillImpl {
public:
SkillGanbantein();

void castendPos2(block_list* src, int32 x, int32 y, uint16 skill_lv, t_tick tick, int32& flag) const override;
};
41 changes: 41 additions & 0 deletions src/map/skills/mage/gravitationfield.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#include "gravitationfield.hpp"

#include <config/const.hpp>
#include <config/core.hpp>

#include "map/status.hpp"

SkillGravitationField::SkillGravitationField() : SkillImpl(HW_GRAVITATION) {
}

void SkillGravitationField::calculateSkillRatio(const Damage *wd, const block_list *src, const block_list *target, uint16 skill_lv, int32 &skillratio, int32 mflag) const {
#ifdef RENEWAL
skillratio += -100 + 100 * skill_lv;
RE_LVL_DMOD(100);
#endif
}

void SkillGravitationField::castendPos2(block_list* src, int32 x, int32 y, uint16 skill_lv, t_tick tick, int32& flag) const {
#ifdef RENEWAL
flag|=1;//Set flag to 1 to prevent deleting ammo (it will be deleted on group-delete).
skill_unitsetting(src,getSkillId(),skill_lv,x,y,0);
#else
std::shared_ptr<s_skill_unit_group> sg;
sc_type type = skill_get_sc(getSkillId());

if ((sg = skill_unitsetting(src,getSkillId(),skill_lv,x,y,0)))
sc_start4(src,src,type,100,skill_lv,0,BCT_SELF,sg->group_id,skill_get_time(getSkillId(),skill_lv));
flag|=1;
#endif
}

void SkillGravitationField::applyAdditionalEffects(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32 attack_type, enum damage_lv dmg_lv) const {
#ifndef RENEWAL
// Gravitation can trigger physical autospells
attack_type |= BF_NORMAL;
attack_type |= BF_WEAPON;
#endif
}
15 changes: 15 additions & 0 deletions src/map/skills/mage/gravitationfield.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#pragma once

#include "../skill_impl.hpp"

class SkillGravitationField : public SkillImpl {
public:
SkillGravitationField();

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 castendPos2(block_list* src, int32 x, int32 y, uint16 skill_lv, t_tick tick, int32& flag) const override;
};
25 changes: 25 additions & 0 deletions src/map/skills/mage/napalmvulcan.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#include "napalmvulcan.hpp"

#include <config/const.hpp>
#include <config/core.hpp>

#include "map/status.hpp"

SkillNapalmVulcan::SkillNapalmVulcan() : SkillImplRecursiveDamageSplash(HW_NAPALMVULCAN) {
}

void SkillNapalmVulcan::calculateSkillRatio(const Damage *wd, const block_list *src, const block_list *target, uint16 skill_lv, int32 &skillratio, int32 mflag) const {
#ifdef RENEWAL
skillratio += -100 + 70 * skill_lv;
RE_LVL_DMOD(100);
#else
skillratio += 25;
#endif
}

void SkillNapalmVulcan::applyAdditionalEffects(block_list *src, block_list *target, uint16 skill_lv, t_tick tick, int32 attack_type, enum damage_lv dmg_lv) const {
sc_start(src,target,SC_CURSE,5*skill_lv,skill_lv,skill_get_time2(getSkillId(),skill_lv));
}
14 changes: 14 additions & 0 deletions src/map/skills/mage/napalmvulcan.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#pragma once

#include "../skill_impl.hpp"

class SkillNapalmVulcan : public SkillImplRecursiveDamageSplash {
public:
SkillNapalmVulcan();

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;
};
Loading
Loading