forked from teamnwah/openmw-tes3coop
adjust initial magicka based on Fortify Maximum Magicka effect
This commit is contained in:
parent
98405a5716
commit
6fe6f3d282
3 changed files with 23 additions and 2 deletions
|
@ -66,6 +66,20 @@ namespace MWMechanics
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EffectParam MagicEffects::get (const EffectKey& key) const
|
||||||
|
{
|
||||||
|
Collection::const_iterator iter = mCollection.find (key);
|
||||||
|
|
||||||
|
if (iter==mCollection.end())
|
||||||
|
{
|
||||||
|
return EffectParam();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return iter->second;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MagicEffects MagicEffects::diff (const MagicEffects& prev, const MagicEffects& now)
|
MagicEffects MagicEffects::diff (const MagicEffects& prev, const MagicEffects& now)
|
||||||
{
|
{
|
||||||
MagicEffects result;
|
MagicEffects result;
|
||||||
|
|
|
@ -17,6 +17,8 @@ namespace MWMechanics
|
||||||
|
|
||||||
EffectKey();
|
EffectKey();
|
||||||
|
|
||||||
|
EffectKey (int id, int arg = -1) : mId (id), mArg (arg) {}
|
||||||
|
|
||||||
EffectKey (const ESM::ENAMstruct& effect);
|
EffectKey (const ESM::ENAMstruct& effect);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -64,6 +66,9 @@ namespace MWMechanics
|
||||||
|
|
||||||
void add (const EffectKey& key, const EffectParam& param);
|
void add (const EffectKey& key, const EffectParam& param);
|
||||||
|
|
||||||
|
EffectParam get (const EffectKey& key) const;
|
||||||
|
///< This function can safely be used for keys that are not present.
|
||||||
|
|
||||||
static MagicEffects diff (const MagicEffects& prev, const MagicEffects& now);
|
static MagicEffects diff (const MagicEffects& prev, const MagicEffects& now);
|
||||||
///< Return changes from \a prev to \a now.
|
///< Return changes from \a prev to \a now.
|
||||||
};
|
};
|
||||||
|
|
|
@ -147,9 +147,11 @@ namespace MWMechanics
|
||||||
int agility = creatureStats.mAttributes[3].getBase();
|
int agility = creatureStats.mAttributes[3].getBase();
|
||||||
int endurance = creatureStats.mAttributes[5].getBase();
|
int endurance = creatureStats.mAttributes[5].getBase();
|
||||||
|
|
||||||
|
double magickaFactor = creatureStats.mMagicEffects.get (EffectKey (84)).mMagnitude*0.1 + 0.5;
|
||||||
|
|
||||||
creatureStats.mDynamic[0].setBase (static_cast<int> (0.5 * (strength + endurance)));
|
creatureStats.mDynamic[0].setBase (static_cast<int> (0.5 * (strength + endurance)));
|
||||||
// TODO: calculate factor
|
creatureStats.mDynamic[1].setBase (static_cast<int> (intelligence +
|
||||||
creatureStats.mDynamic[1].setBase (static_cast<int> (intelligence + 1 * intelligence));
|
magickaFactor * intelligence));
|
||||||
creatureStats.mDynamic[2].setBase (strength+willpower+agility+endurance);
|
creatureStats.mDynamic[2].setBase (strength+willpower+agility+endurance);
|
||||||
|
|
||||||
for (int i=0; i<3; ++i)
|
for (int i=0; i<3; ++i)
|
||||||
|
|
Loading…
Reference in a new issue