forked from teamnwah/openmw-tes3coop
Implemented Fortify/Drain skill magic effects. Scroll of icarian flight works!
This commit is contained in:
parent
3ea7d58ca8
commit
3e58655a90
2 changed files with 18 additions and 0 deletions
|
@ -47,6 +47,7 @@ namespace MWMechanics
|
||||||
if(!paused)
|
if(!paused)
|
||||||
{
|
{
|
||||||
updateDrowning(ptr, duration);
|
updateDrowning(ptr, duration);
|
||||||
|
calculateNpcStatModifiers(ptr);
|
||||||
updateEquippedLight(ptr, duration);
|
updateEquippedLight(ptr, duration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -170,6 +171,20 @@ namespace MWMechanics
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Actors::calculateNpcStatModifiers (const MWWorld::Ptr& ptr)
|
||||||
|
{
|
||||||
|
NpcStats &npcStats = MWWorld::Class::get(ptr).getNpcStats(ptr);
|
||||||
|
const MagicEffects &effects = npcStats.getMagicEffects();
|
||||||
|
|
||||||
|
// skills
|
||||||
|
for(int i = 0;i < ESM::Skill::Length;++i)
|
||||||
|
{
|
||||||
|
Stat<float>& skill = npcStats.getSkill(i);
|
||||||
|
skill.setModifier(effects.get(EffectKey(ESM::MagicEffect::FortifySkill, i)).mMagnitude -
|
||||||
|
effects.get(EffectKey(ESM::MagicEffect::DrainSkill, i)).mMagnitude);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Actors::updateDrowning(const MWWorld::Ptr& ptr, float duration)
|
void Actors::updateDrowning(const MWWorld::Ptr& ptr, float duration)
|
||||||
{
|
{
|
||||||
MWBase::World *world = MWBase::Environment::get().getWorld();
|
MWBase::World *world = MWBase::Environment::get().getWorld();
|
||||||
|
|
|
@ -34,11 +34,14 @@ namespace MWMechanics
|
||||||
|
|
||||||
void updateNpc(const MWWorld::Ptr &ptr, float duration, bool paused);
|
void updateNpc(const MWWorld::Ptr &ptr, float duration, bool paused);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void adjustMagicEffects (const MWWorld::Ptr& creature);
|
void adjustMagicEffects (const MWWorld::Ptr& creature);
|
||||||
|
|
||||||
void calculateDynamicStats (const MWWorld::Ptr& ptr);
|
void calculateDynamicStats (const MWWorld::Ptr& ptr);
|
||||||
|
|
||||||
void calculateCreatureStatModifiers (const MWWorld::Ptr& ptr);
|
void calculateCreatureStatModifiers (const MWWorld::Ptr& ptr);
|
||||||
|
void calculateNpcStatModifiers (const MWWorld::Ptr& ptr);
|
||||||
|
|
||||||
void calculateRestoration (const MWWorld::Ptr& ptr, float duration);
|
void calculateRestoration (const MWWorld::Ptr& ptr, float duration);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue