diff --git a/src/common/Common.h b/src/common/Common.h index c5d1ee16..e16c7705 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -1037,6 +1037,7 @@ namespace Sapphire::Common DamageReceiveTrigger = 8, DamageDealtTrigger = 9, Shield = 10, + MPRestore = 11, }; enum class ActionTypeFilter : int32_t diff --git a/src/world/Action/ActionLutData.cpp b/src/world/Action/ActionLutData.cpp index 5612f971..4f0eb578 100644 --- a/src/world/Action/ActionLutData.cpp +++ b/src/world/Action/ActionLutData.cpp @@ -2369,9 +2369,8 @@ ActionLut::Lut ActionLut::m_actionLut = { 7538, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, //Reprisal, リプライザル - //has damage: potency 210, combo potency 0, directional potency 0 //applies to targets: Reprisal, リプライザル, duration 10000, param 0 - { 7535, { 210, 0, 0, 0, 0, 0, 0, 0, 1193, 10000, 0, 0 } }, + { 7535, { 0, 0, 0, 0, 0, 0, 0, 0, 1193, 10000, 0, 0 } }, //Shirk, シャーク { 7537, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -3506,4 +3505,7 @@ ActionLut::StatusEffectTable ActionLut::m_statusEffectTable = //Devilment, 攻めのタンゴ: CritDHRateBonus, Damage, crit 20%, dh 20% { 1825, { 7, 1, 20, 20, 0 } }, + //Lucid Dreaming, ルーシッドドリーム: MPRestore, value 50 + { 1204, { 11, 50, 0, 0, 0 } }, + }; diff --git a/src/world/StatusEffect/StatusEffect.cpp b/src/world/StatusEffect/StatusEffect.cpp index c60fc258..4755120a 100644 --- a/src/world/StatusEffect/StatusEffect.cpp +++ b/src/world/StatusEffect/StatusEffect.cpp @@ -98,6 +98,12 @@ void Sapphire::StatusEffect::StatusEffect::onTick() auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >(); m_lastTick = Util::getTimeMs(); pScriptMgr->onStatusTick( m_targetActor, *this ); + + auto statusEffectType = static_cast< Common::StatusEffectType >( m_effectEntry.effectType ); + if( statusEffectType == Common::StatusEffectType::MPRestore ) + { + m_targetActor->restoreMP( m_effectEntry.effectValue1 * 10 ); + } } uint32_t Sapphire::StatusEffect::StatusEffect::getSrcActorId() const