Implemented SH_MARINE_FESTIVAL_OF_KI_SUL (2nd rebalance)
MAX Lv: 5 Skill Requirement: Mystical Creature Mastery 3, Kisul Water Spraying 3 Skill Form: Active Type: Buff Target: Instant Casting Recovery: AP 4 Description: With the power of the sea by Kisul, increases POW, CRT and CON to self and nearby party member around the user. If the user learned Commune With Kisul, increases area of effect and doubles the skill duration. Doesn't stack with Cardinal's Benedictum. _ [Level 1]: POW, CRT, CON + 2 / duration: 60 seconds / area of effect: 5 x 5 cells. Commune With Kisul: area of effect: 9 x 9 cells. [Level 2]: POW, CRT, CON + 4 / duration: 75 seconds / area of effect: 7 x 7 cells. Commune With Kisul: area of effect: 11 x 11 cells. [Level 3]: POW, CRT, CON + 6 / duration: 90 seconds / area of effect: 9 x 9 cells. Commune With Kisul: area of effect: 13 x 13 cells. [Level 4]: POW, CRT, CON + 8 / duration: 105 seconds / area of effect: 11 x 11 cells. Commune With Kisul: area of effect: 15 x 15 cells. [Level 5]: POW, CRT, CON + 10 / duration: 120 seconds / area of effect: 13 x 13 cells. Commune With Kisul: area of effect: 17 x 17 cells. 1st rebalance : - Increases AP recovery rate from 2 to 4. 2nd rebalance : (nothing)
This commit is contained in:
parent
76d7234565
commit
5c9a72efef
@ -41575,6 +41575,56 @@ Body:
|
||||
Amount: 81
|
||||
- Level: 7
|
||||
Amount: 85
|
||||
- Id: 5440
|
||||
Name: SH_MARINE_FESTIVAL_OF_KI_SUL
|
||||
Description: Marine Festival of Kisul
|
||||
MaxLevel: 5
|
||||
Type: Magic
|
||||
TargetType: Self
|
||||
DamageFlags:
|
||||
NoDamage: true
|
||||
Splash: true
|
||||
GiveAp: 4
|
||||
SplashArea:
|
||||
- Level: 1
|
||||
Area: 2
|
||||
- Level: 2
|
||||
Area: 3
|
||||
- Level: 3
|
||||
Area: 4
|
||||
- Level: 4
|
||||
Area: 5
|
||||
- Level: 5
|
||||
Area: 6
|
||||
Duration1:
|
||||
- Level: 1
|
||||
Time: 60000
|
||||
- Level: 2
|
||||
Time: 75000
|
||||
- Level: 3
|
||||
Time: 90000
|
||||
- Level: 4
|
||||
Time: 105000
|
||||
- Level: 5
|
||||
Time: 120000
|
||||
CastCancel: true
|
||||
CastTime: 1700
|
||||
AfterCastActDelay: 1000
|
||||
FixedCastTime: 1000
|
||||
Cooldown: 2000
|
||||
Requires:
|
||||
SpCost:
|
||||
- Level: 1
|
||||
Amount: 80
|
||||
- Level: 2
|
||||
Amount: 90
|
||||
- Level: 3
|
||||
Amount: 100
|
||||
- Level: 4
|
||||
Amount: 110
|
||||
- Level: 5
|
||||
Amount: 120
|
||||
Status: Marine_Festival
|
||||
- Id: 5443
|
||||
Name: SH_COMMUNE_WITH_HYUN_ROK
|
||||
Description: Commune with Hyunrok
|
||||
|
||||
@ -7833,6 +7833,8 @@ Body:
|
||||
Flags:
|
||||
BlEffect: true
|
||||
DisplayPc: true
|
||||
EndOnStart:
|
||||
Marine_Festival: true
|
||||
- Status: Axe_Stomp
|
||||
Icon: EFST_AXE_STOMP
|
||||
DurationLookup: MT_AXE_STOMP
|
||||
@ -8765,3 +8767,12 @@ Body:
|
||||
Patk: true
|
||||
Smatk: true
|
||||
Hplus: true
|
||||
- Status: Marine_Festival
|
||||
Icon: EFST_MARINE_FESTIVAL
|
||||
DurationLookup: SH_MARINE_FESTIVAL_OF_KI_SUL
|
||||
CalcFlags:
|
||||
Pow: true
|
||||
Con: true
|
||||
Crt: true
|
||||
EndOnStart:
|
||||
Benedictum: true
|
||||
|
||||
@ -12852,6 +12852,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
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;
|
||||
case SH_MARINE_FESTIVAL_OF_KI_SUL:
|
||||
if (flag & 1) {
|
||||
int time = skill_get_time(skill_id, skill_lv);
|
||||
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
|
||||
time *= 2;
|
||||
sc_start(src, bl, type, 100, skill_lv, time);
|
||||
clif_skill_nodamage(src, bl, skill_id, skill_lv, 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;
|
||||
|
||||
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);
|
||||
|
||||
@ -6866,6 +6866,8 @@ static unsigned short status_calc_pow(struct block_list *bl, status_change *sc,
|
||||
|
||||
if (sc->getSCE(SC_BENEDICTUM))
|
||||
pow += sc->getSCE(SC_BENEDICTUM)->val2;
|
||||
if (sc->getSCE(SC_MARINE_FESTIVAL))
|
||||
pow += sc->getSCE(SC_MARINE_FESTIVAL)->val2;
|
||||
|
||||
return (unsigned short)cap_value(pow, 0, USHRT_MAX);
|
||||
}
|
||||
@ -6938,6 +6940,8 @@ static unsigned short status_calc_con(struct block_list *bl, status_change *sc,
|
||||
|
||||
if (sc->getSCE(SC_BENEDICTUM))
|
||||
con += sc->getSCE(SC_BENEDICTUM)->val2;
|
||||
if (sc->getSCE(SC_MARINE_FESTIVAL))
|
||||
con += sc->getSCE(SC_MARINE_FESTIVAL)->val2;
|
||||
|
||||
return (unsigned short)cap_value(con, 0, USHRT_MAX);
|
||||
}
|
||||
@ -6956,6 +6960,8 @@ static unsigned short status_calc_crt(struct block_list *bl, status_change *sc,
|
||||
|
||||
if (sc->getSCE(SC_BENEDICTUM))
|
||||
crt += sc->getSCE(SC_BENEDICTUM)->val2;
|
||||
if (sc->getSCE(SC_MARINE_FESTIVAL))
|
||||
crt += sc->getSCE(SC_MARINE_FESTIVAL)->val2;
|
||||
|
||||
return (unsigned short)cap_value(crt, 0, USHRT_MAX);
|
||||
}
|
||||
@ -12703,6 +12709,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
case SC_TEMPORARY_COMMUNION:
|
||||
val2 = val1 * 3;
|
||||
break;
|
||||
case SC_MARINE_FESTIVAL:
|
||||
val2 = 2 * val1;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (calc_flag.none() && scdb->skill_id == 0 && scdb->icon == EFST_BLANK && scdb->opt1 == OPT1_NONE && scdb->opt2 == OPT2_NONE && scdb->state.none() && scdb->flag.none() && scdb->endonstart.empty() && scdb->endreturn.empty() && scdb->fail.empty() && scdb->endonend.empty()) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user