mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-01 02:45:32 +00:00
Issue #68: added dead flag to CreatureStats
This commit is contained in:
parent
a8f294c9ae
commit
7884a927c9
2 changed files with 29 additions and 5 deletions
|
@ -10,7 +10,7 @@
|
||||||
namespace MWMechanics
|
namespace MWMechanics
|
||||||
{
|
{
|
||||||
CreatureStats::CreatureStats()
|
CreatureStats::CreatureStats()
|
||||||
: mLevelHealthBonus(0.f)
|
: mLevel (0), mHello (0), mFight (0), mFlee (0), mAlarm (0), mLevelHealthBonus(0.f), mDead (false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,17 +156,17 @@ namespace MWMechanics
|
||||||
|
|
||||||
void CreatureStats::setHealth(const DynamicStat<float> &value)
|
void CreatureStats::setHealth(const DynamicStat<float> &value)
|
||||||
{
|
{
|
||||||
mDynamic[0] = value;
|
setDynamic (0, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatureStats::setMagicka(const DynamicStat<float> &value)
|
void CreatureStats::setMagicka(const DynamicStat<float> &value)
|
||||||
{
|
{
|
||||||
mDynamic[1] = value;
|
setDynamic (1, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatureStats::setFatigue(const DynamicStat<float> &value)
|
void CreatureStats::setFatigue(const DynamicStat<float> &value)
|
||||||
{
|
{
|
||||||
mDynamic[2] = value;
|
setDynamic (2, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatureStats::setDynamic (int index, const DynamicStat<float> &value)
|
void CreatureStats::setDynamic (int index, const DynamicStat<float> &value)
|
||||||
|
@ -175,6 +175,9 @@ namespace MWMechanics
|
||||||
throw std::runtime_error("dynamic stat index is out of range");
|
throw std::runtime_error("dynamic stat index is out of range");
|
||||||
|
|
||||||
mDynamic[index] = value;
|
mDynamic[index] = value;
|
||||||
|
|
||||||
|
if (index==2 && mDynamic[index].getCurrent()<1)
|
||||||
|
mDead = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatureStats::setLevel(int level)
|
void CreatureStats::setLevel(int level)
|
||||||
|
@ -211,4 +214,21 @@ namespace MWMechanics
|
||||||
{
|
{
|
||||||
mAlarm = value;
|
mAlarm = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CreatureStats::isDead() const
|
||||||
|
{
|
||||||
|
return mDead;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreatureStats::resurrect()
|
||||||
|
{
|
||||||
|
if (mDead)
|
||||||
|
{
|
||||||
|
if (mDynamic[0].getCurrent()<1)
|
||||||
|
mDynamic[0].setCurrent (1);
|
||||||
|
|
||||||
|
if (mDynamic[0].getCurrent()>=1)
|
||||||
|
mDead = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,8 @@ namespace MWMechanics
|
||||||
int mFlee;
|
int mFlee;
|
||||||
int mAlarm;
|
int mAlarm;
|
||||||
AiSequence mAiSequence;
|
AiSequence mAiSequence;
|
||||||
|
|
||||||
float mLevelHealthBonus;
|
float mLevelHealthBonus;
|
||||||
|
bool mDead;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CreatureStats();
|
CreatureStats();
|
||||||
|
@ -105,6 +105,10 @@ namespace MWMechanics
|
||||||
// small hack to allow the fact that Health permanently increases by 10% of endurance on each level up
|
// small hack to allow the fact that Health permanently increases by 10% of endurance on each level up
|
||||||
void increaseLevelHealthBonus(float value);
|
void increaseLevelHealthBonus(float value);
|
||||||
float getLevelHealthBonus() const;
|
float getLevelHealthBonus() const;
|
||||||
|
|
||||||
|
bool isDead() const;
|
||||||
|
|
||||||
|
void resurrect();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue