1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-25 19:17:45 +00:00
This commit is contained in:
collett 2020-04-11 19:27:29 +09:00
parent 2e37354656
commit 3c3238ae46
5 changed files with 37 additions and 7 deletions

View file

@ -1051,6 +1051,7 @@ namespace Sapphire::Common
BlockParryRateBonus = 14, BlockParryRateBonus = 14,
MPRestorePerGCD = 15, MPRestorePerGCD = 15,
AlwaysCombo = 16, AlwaysCombo = 16,
PotencyMultiplier = 17,
}; };
enum class ActionTypeFilter : int32_t enum class ActionTypeFilter : int32_t

View file

@ -668,6 +668,11 @@ void Action::Action::buildEffects()
player->gaugeGnbSetAmmo( std::min( 2, player->gaugeGnbGetAmmo() + m_lutEntry.bonusDataByte4 ) ); player->gaugeGnbSetAmmo( std::min( 2, player->gaugeGnbGetAmmo() + m_lutEntry.bonusDataByte4 ) );
break; break;
} }
case Common::ClassJob::Samurai:
{
player->gaugeSamSetKenki( std::min( 100, player->gaugeSamGetKenki() + m_lutEntry.bonusDataByte4 ) );
break;
}
} }
} }
} }
@ -1160,12 +1165,12 @@ Action::EffectBuilderPtr Action::Action::getEffectbuilder()
return m_effectBuilder; return m_effectBuilder;
} }
Data::ActionPtr Action::Action::getActionData() const Data::ActionPtr Action::Action::getActionData()
{ {
return m_actionData; return m_actionData;
} }
Action::ActionEntry Action::Action::getActionEntry() const Action::ActionEntry& Action::Action::getActionEntry()
{ {
return m_lutEntry; return m_lutEntry;
} }

View file

@ -126,8 +126,8 @@ namespace Sapphire::World::Action
*/ */
Entity::CharaPtr getHitChara(); Entity::CharaPtr getHitChara();
Data::ActionPtr getActionData() const; Data::ActionPtr getActionData();
ActionEntry getActionEntry() const; ActionEntry& getActionEntry();
float getAnimationLock(); float getAnimationLock();
void setPrimaryCost( Common::ActionPrimaryCostType type, uint16_t cost ); void setPrimaryCost( Common::ActionPrimaryCostType type, uint16_t cost );

View file

@ -3023,8 +3023,8 @@ ActionLut::StatusEffectTable ActionLut::m_statusEffectTable =
//Jinpu, 陣風: DamageMultiplier, All, 13% //Jinpu, 陣風: DamageMultiplier, All, 13%
//{ 1298, { 1, 255, 13, 0, 0 } }, //{ 1298, { 1, 255, 13, 0, 0 } },
//Kaiten, 必殺剣・回天: DamageMultiplier, All, 50% //Kaiten, 必殺剣・回天: PotencyMultiplier, 1 uses, 50%
{ 1229, { 1, 255, 50, 0, 0 } }, { 1229, { 17, 1, 0, 3, 50 } },
//Higanbana, 彼岸花: Dot, Physical, potency 60 //Higanbana, 彼岸花: Dot, Physical, potency 60
{ 1228, { 4, 1, 60, 0, 0 } }, { 1228, { 4, 1, 60, 0, 0 } },

View file

@ -380,8 +380,32 @@ void Sapphire::StatusEffect::StatusEffect::onBeforeActionStart( Sapphire::World:
} }
action->setAlwaysCombo(); action->setAlwaysCombo();
} }
break;
} }
break;
}
case Common::StatusEffectType::PotencyMultiplier:
{
if( checkAction1( action, m_effectEntry ) )
{
if( m_effectEntry.effectValue1 > 0 )
{
if( m_effectEntry.effectValue1 == getStacks() )
{
// if stacks equal to remaining uses, assume it is synced
setStacks( getStacks() - 1 );
m_targetActor->sendStatusEffectUpdate();
}
m_effectEntry.effectValue1--;
if( m_effectEntry.effectValue1 == 0 )
{
markToRemove();
}
action->getActionEntry().damagePotency *= 1.0 + ( m_effectEntry.effectValue4 / 100.0 );
action->getActionEntry().damageComboPotency *= 1.0 + ( m_effectEntry.effectValue4 / 100.0 );
action->getActionEntry().damageDirectionalPotency *= 1.0 + ( m_effectEntry.effectValue4 / 100.0 );
}
}
break;
} }
} }
} }