Implemented SH_KI_SUL_WATER_SPRAYING

MAX Lv: 7
Skill Requirement: Mystical Creature Mastery 1
Skill Form: Active
Type: Recovery
Target: Instant Casting
Recovery: AP 1
Description: Fires the water cannon contained healing power of Kisul, recovers HP to self and nearby party member around the user.
Recovers additional amount depends on level of Mystical Creature Mastery user learned, user's base level and CRT.
If the user learned Commune with Kisul, increases area of effect and healing amount.
_
[Level 1]: Healing amount: 500 + (Mystical Creature Mastery level x 100) / area of effect: 7 x 7 cells.
Commune With Kisul: Healing amount: 750 + (Mystical Creature Mastery level x 150) / area of effect: 11 x 11 cells.
[Level 2]: Healing amount: 1000 + (Mystical Creature Mastery level x 100) / area of effect: 7 x 7 cells.
Commune With Kisul: Healing amount: 1500 + (Mystical Creature Mastery level x 150) / area of effect: 11 x 11 cells.
[Level 3]: Healing amount: 1500 + (Mystical Creature Mastery level x 100) / area of effect: 9 x 9 cells.
Commune With Kisul: Healing amount: 2250 + (Mystical Creature Mastery level x 150) / area of effect: 13 x 13 cells.
[Level 4]: Healing amount: 2000 + (Mystical Creature Mastery level x 100) / area of effect: 9 x 9 cells.
Commune With Kisul: Healing amount: 3000 + (Mystical Creature Mastery level x 150) / area of effect: 13 x 13 cells.
[Level 5]: Healing amount: 2500 + (Mystical Creature Mastery level x 100) / area of effect: 11 x 11 cells.
Commune With Kisul: Healing amount: 3750 + (Mystical Creature Mastery level x 150) / area of effect: 15 x 15 cells.
[Level 6]: Healing amount: 3000 + (Mystical Creature Mastery level x 100) / area of effect: 11 x 11 cells.
Commune With Kisul: Healing amount: 4500 + (Mystical Creature Mastery level x 150) / area of effect: 15 x 15 cells.
[Level 7]: Healing amount: 3500 + (Mystical Creature Mastery level x 100) / area of effect: 13 x 13 cells.
Commune With Kisul: Healing amount: 5250 + (Mystical Creature Mastery level x 150) / area of effect: 17 x 17 cells.

(no rebalance)
This commit is contained in:
Atemo 2023-10-28 16:35:53 +02:00
parent c006ae4da7
commit 76d7234565
2 changed files with 72 additions and 0 deletions

View File

@ -41529,6 +41529,52 @@ Body:
Name: SH_COMMUNE_WITH_KI_SUL
Description: Commune with Chulho
MaxLevel: 1
- Id: 5439
Name: SH_KI_SUL_WATER_SPRAYING
Description: Kisul Water Spraying
MaxLevel: 7
Type: Magic
TargetType: Self
GiveAp: 1
DamageFlags:
NoDamage: true
Splash: true
SplashArea:
- Level: 1
Area: 3
- Level: 2
Area: 3
- Level: 3
Area: 4
- Level: 4
Area: 4
- Level: 5
Area: 5
- Level: 6
Area: 5
- Level: 7
Area: 6
CastCancel: true
CastTime: 1700
AfterCastActDelay: 1000
FixedCastTime: 1000
Cooldown: 300
Requires:
SpCost:
- Level: 1
Amount: 61
- Level: 2
Amount: 65
- Level: 3
Amount: 69
- Level: 4
Amount: 73
- Level: 5
Amount: 77
- Level: 6
Amount: 81
- Level: 7
Amount: 85
- Id: 5443
Name: SH_COMMUNE_WITH_HYUN_ROK
Description: Commune with Hyunrok

View File

@ -12826,6 +12826,32 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id);
break;
case SH_KI_SUL_WATER_SPRAYING:
if (flag & 1)
{
int heal = 500 * skill_lv + status_get_int(src) * 5;
if (sd)
heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY)*100;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
{
heal += 250 * skill_lv;
if (sd)
heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) * 50;
}
heal = heal * (100 + status_get_crt(src)) * status_get_lv(src) / 10000;
status_heal(bl, heal, 0, 0, 0);
clif_skill_nodamage(0, bl, AL_HEAL, heal, 1);
}
else
{
i = skill_get_splash(skill_id, skill_lv);
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
i += 2;
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_PARTY | SD_SPLASH | 1, skill_castend_nodamage_id);
}
break;
default: {
std::shared_ptr<s_skill_db> skill = skill_db.find(skill_id);