BoneRegen.c
class BoneRegenMdfr: ModifierBase
{
private const float MINIMAL_WATER_TO_REGENRATE = 2500;
private const float MINIMAL_ENERGY_TO_REGENRATE = 4000;
private const float MINIMAL_BLOOD_TO_REGENRATE = 5000;
private const float MINIMAL_BLOOD_REQUIRED_TO_REGENERATE_HEALTH = 5000;
private const float BONE_HEALTH_INCREMENT_PER_SEC = 0.25;
override void Init()
{
m_TrackActivatedTime = false;
m_ID = eModifiers.MDF_BONE_REGEN;
m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
}
override bool ActivateCondition(PlayerBase player)
{
if ( player.GetHealth("GlobalHealth", "Blood") >= MINIMAL_BLOOD_TO_REGENRATE && player.GetStatWater().Get() >= MINIMAL_WATER_TO_REGENRATE && player.GetStatEnergy().Get() >= MINIMAL_ENERGY_TO_REGENRATE )
{
return true;
}
else
{
return false;
}
}
override void OnActivate(PlayerBase player)
{
}
override bool DeactivateCondition(PlayerBase player)
{
if ( player.GetHealth("GlobalHealth", "Blood") < MINIMAL_BLOOD_TO_REGENRATE && player.GetStatWater().Get() < MINIMAL_WATER_TO_REGENRATE && player.GetStatEnergy().Get() < MINIMAL_ENERGY_TO_REGENRATE )
{
return true;
}
else
{
return false;
}
}
override void OnTick(PlayerBase player, float deltaT)
{
/*
player.AddHealth("RightArm","Health",BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("RightHand","Health",BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("LeftArm","Health",BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("LeftHand","Health",+BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("RightLeg","Health",+BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("RightFoot","Health",+BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("LeftLeg","Health",+BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("LeftFoot","Health",+BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
player.AddHealth("Torso","Health",+BONE_HEALTH_INCREMENT_PER_SEC * deltaT);
*/
}
};