Implemented SH_TEMPORARY_COMMUNION
MAX Lv: 5 Skill Requirement: Mystical Creature Mastery 10 Skill Form: Active(AP) Type: Secondary Target: Instant Casting Consumes: AP 150 Description: Can only be used when the user learned at least one of either Commune with Chulho, Kisul or Hyunrok. Through the temporary communion with Chulho, Kisul and Hyunrok, the user is in the state of communion of all three mystical creatures for the certain duration. Increases P.Atk, S.Matk and H.Plus for the duration. _ [Level 1]: Duration: 30 seconds / P.Atk, S.Matk, H.Plus +3 [Level 2]: Duration: 60 seconds / P.Atk, S.Matk, H.Plus +6 [Level 3]: Duration: 90 seconds / P.Atk, S.Matk, H.Plus +9 [Level 4]: Duration: 120 seconds / P.Atk, S.Matk, H.Plus +12 [Level 5]: Duration: 150 seconds / P.Atk, S.Matk, H.Plus +15 1st rebalance : (none) 2nd rebalance : (none)
This commit is contained in:
parent
9de0a5fa53
commit
c006ae4da7
@ -41533,6 +41533,34 @@ Body:
|
||||
Name: SH_COMMUNE_WITH_HYUN_ROK
|
||||
Description: Commune with Hyunrok
|
||||
MaxLevel: 1
|
||||
- Id: 5447
|
||||
Name: SH_TEMPORARY_COMMUNION
|
||||
Description: Temporary Communion
|
||||
MaxLevel: 5
|
||||
Type: Magic
|
||||
TargetType: Self
|
||||
DamageFlags:
|
||||
NoDamage: true
|
||||
CastCancel: true
|
||||
CastTime: 2000
|
||||
AfterCastActDelay: 500
|
||||
Cooldown: 60000
|
||||
FixedCastTime: 1500
|
||||
Duration1:
|
||||
- Level: 1
|
||||
Time: 30000
|
||||
- Level: 2
|
||||
Time: 60000
|
||||
- Level: 3
|
||||
Time: 90000
|
||||
- Level: 4
|
||||
Time: 12000
|
||||
- Level: 5
|
||||
Time: 150000
|
||||
Requires:
|
||||
SpCost: 100
|
||||
ApCost: 150
|
||||
Status: Temporary_Communion
|
||||
- Id: 6001
|
||||
Name: DK_DRAGONIC_BREATH
|
||||
Description: Dragonic Breath
|
||||
|
@ -8758,3 +8758,10 @@ Body:
|
||||
Debuff: true
|
||||
BlEffect: true
|
||||
DisplayPc: true
|
||||
- Status: Temporary_Communion
|
||||
Icon: EFST_TEMPORARY_COMMUNION
|
||||
DurationLookup: SH_TEMPORARY_COMMUNION
|
||||
CalcFlags:
|
||||
Patk: true
|
||||
Smatk: true
|
||||
Hplus: true
|
||||
|
@ -7920,6 +7920,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
case NPC_DAMAGE_HEAL:
|
||||
case NPC_RELIEVE_ON:
|
||||
case NPC_RELIEVE_OFF:
|
||||
case SH_TEMPORARY_COMMUNION:
|
||||
clif_skill_nodamage(src,bl,skill_id,skill_lv,
|
||||
sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
|
||||
break;
|
||||
@ -17839,6 +17840,12 @@ bool skill_check_condition_castbegin(map_session_data* sd, uint16 skill_id, uint
|
||||
if (!(sc && sc->getSCE(SC_THIRD_EXOR_FLAME)))
|
||||
return false;
|
||||
break;
|
||||
case SH_TEMPORARY_COMMUNION:
|
||||
if (sd && !pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) && !pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) && !pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) {
|
||||
clif_skill_fail(sd,skill_id,USESKILL_FAIL_CONDITION,0);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* check state required */
|
||||
|
@ -8487,6 +8487,8 @@ static signed short status_calc_patk(struct block_list *bl, status_change *sc, i
|
||||
if( sc->getSCE( SC_ATTACK_STANCE ) ){
|
||||
patk += sc->getSCE( SC_ATTACK_STANCE )->val3;
|
||||
}
|
||||
if (sc->getSCE(SC_TEMPORARY_COMMUNION))
|
||||
patk += sc->getSCE(SC_TEMPORARY_COMMUNION)->val2;
|
||||
|
||||
return (short)cap_value(patk, 0, SHRT_MAX);
|
||||
}
|
||||
@ -8514,6 +8516,8 @@ static signed short status_calc_smatk(struct block_list *bl, status_change *sc,
|
||||
if( sc->getSCE( SC_ATTACK_STANCE ) ){
|
||||
smatk += sc->getSCE( SC_ATTACK_STANCE )->val3;
|
||||
}
|
||||
if (sc->getSCE(SC_TEMPORARY_COMMUNION))
|
||||
smatk += sc->getSCE(SC_TEMPORARY_COMMUNION)->val2;
|
||||
|
||||
return (short)cap_value(smatk, 0, SHRT_MAX);
|
||||
}
|
||||
@ -8582,6 +8586,9 @@ static signed short status_calc_hplus(struct block_list *bl, status_change *sc,
|
||||
if (!sc || !sc->count)
|
||||
return cap_value(hplus, 0, SHRT_MAX);
|
||||
|
||||
if (sc->getSCE(SC_TEMPORARY_COMMUNION))
|
||||
hplus += sc->getSCE(SC_TEMPORARY_COMMUNION)->val2;
|
||||
|
||||
return (short)cap_value(hplus, 0, SHRT_MAX);
|
||||
}
|
||||
|
||||
@ -12693,6 +12700,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
||||
case SC_WEAPONBREAKER:
|
||||
val2 = val1 * 2 * 100; // Chance to break weapon
|
||||
break;
|
||||
case SC_TEMPORARY_COMMUNION:
|
||||
val2 = val1 * 3;
|
||||
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