Implemented SH_BLESSING_OF_MYSTICAL_CREATURES (2nd rebalance)

MAX Lv: 5
Skill Requirement: Mystical Creature Mastery 10, Commune with Kisul 1
Skill Form: Active(AP)
Type: Secondary
Target: Single target
Consumes: AP 100
Description: Gives the Blessing of Mystical Creatures to 1 party member, excluding doram and self, recovers the target's AP to 200 and increases P.Atk, S.Matk for 10 seconds.
When the skill duration ends, target's AP becomes 0.
The target can't receive Blessing of Mystical Creatures again for 1 minute.
_
[Level 1]: P.Atk, S.Matk +10
[Level 2]: P.Atk, S.Matk +20
[Level 3]: P.Atk, S.Matk +30
[Level 4]: P.Atk, S.Matk +40
[Level 5]: P.Atk, S.Matk +50

1st rebalance :
(nothing)

2nd rebalance :
(nothing)
This commit is contained in:
Atemo 2023-10-28 17:41:52 +02:00
parent b09a53cfe1
commit 3f30991efa
4 changed files with 52 additions and 0 deletions

View File

@ -41855,6 +41855,26 @@ Body:
SpCost: 100
ApCost: 150
Status: Temporary_Communion
- Id: 5448
Name: SH_BLESSING_OF_MYSTICAL_CREATURES
Description: Blessing of Mystical Creatures
MaxLevel: 5
Type: Magic
TargetType: Support
Range: -9
DamageFlags:
NoDamage: true
CastCancel: true
CastTime: 2000
AfterCastActDelay: 500
Cooldown: 60000
FixedCastTime: 1500
Duration1: 10000
Duration2: 60000
Requires:
SpCost: 100
ApCost: 100
Status: Blessing_of_M_Creatures
- Id: 6001
Name: DK_DRAGONIC_BREATH
Description: Dragonic Breath

View File

@ -8849,3 +8849,15 @@ Body:
Colors_of_Hyun_Rok_3: true
Colors_of_Hyun_Rok_4: true
Colors_of_Hyun_Rok_5: true
- Status: Blessing_of_M_Creatures
Icon: EFST_BLESSING_OF_M_CREATURES
DurationLookup: SH_BLESSING_OF_MYSTICAL_CREATURES
CalcFlags:
Patk: true
Smatk: true
- Status: Blessing_of_M_C_Debuff
Icon: EFST_BLESSING_OF_M_C_DEBUFF
DurationLookup: SH_BLESSING_OF_MYSTICAL_CREATURES
CalcFlags:
Patk: true
Smatk: true

View File

@ -12893,6 +12893,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
}
clif_skill_nodamage(src, src, skill_id, skill_lv, 1);
break;
case SH_BLESSING_OF_MYSTICAL_CREATURES:
status_heal(bl, 0, 0, 200-status_get_ap(bl), 0);
sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
clif_skill_nodamage(src, src, skill_id, skill_lv, 1);
break;
default: {
std::shared_ptr<s_skill_db> skill = skill_db.find(skill_id);
@ -13021,6 +13026,10 @@ static int8 skill_castend_id_check(struct block_list *src, struct block_list *ta
if (!tsc || !tsc->getSCE(SC_SECOND_BRAND))
return USESKILL_FAIL_LEVEL;
break;
case SH_BLESSING_OF_MYSTICAL_CREATURES:
if (src == target || battle_check_target(src, target, BCT_PARTY) <= 0 || (status_get_class_(target) & MAPID_BASEMASK) == MAPID_SUMMONER || (tsc && tsc->getSCE(SC_BLESSING_OF_M_C_DEBUFF)))
return USESKILL_FAIL_TOTARGET;
break;
}
if (inf&INF_ATTACK_SKILL ||

View File

@ -8501,6 +8501,8 @@ static signed short status_calc_patk(struct block_list *bl, status_change *sc, i
}
if (sc->getSCE(SC_TEMPORARY_COMMUNION))
patk += sc->getSCE(SC_TEMPORARY_COMMUNION)->val2;
if (sc->getSCE(SC_BLESSING_OF_M_CREATURES))
patk += sc->getSCE(SC_BLESSING_OF_M_CREATURES)->val2;
return (short)cap_value(patk, 0, SHRT_MAX);
}
@ -8530,6 +8532,8 @@ static signed short status_calc_smatk(struct block_list *bl, status_change *sc,
}
if (sc->getSCE(SC_TEMPORARY_COMMUNION))
smatk += sc->getSCE(SC_TEMPORARY_COMMUNION)->val2;
if (sc->getSCE(SC_BLESSING_OF_M_CREATURES))
smatk += sc->getSCE(SC_BLESSING_OF_M_CREATURES)->val2;
return (short)cap_value(smatk, 0, SHRT_MAX);
}
@ -12723,6 +12727,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
val4 = tick / 1000;
tick_time = 100;
break;
case SC_BLESSING_OF_M_CREATURES:
val2 = val1 * 10;
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()) {
@ -13697,6 +13704,10 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
pc_delabyssball( *sd, sd->abyssball );
}
break;
case SC_BLESSING_OF_M_CREATURES:
sc_start(bl,bl, SC_BLESSING_OF_M_C_DEBUFF, 100, 1, skill_get_time2(SH_BLESSING_OF_MYSTICAL_CREATURES, 1));
status_percent_change(bl,bl,0, 0, -100,1);
break;
}
// End statuses found in the EndOnEnd list.