1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- class BloodRegenMdfr: ModifierBase
- {
- override void Init()
- {
- m_TrackActivatedTime = false;
- m_ID = eModifiers.MDF_BLOOD_REGEN;
- m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
- m_TickIntervalActive = DEFAULT_TICK_TIME_ACTIVE;
- }
- override bool ActivateCondition(PlayerBase player)
- {
- float m_MaxBlood = player.GetMaxHealth("GlobalHealth", "Blood");
- if ( player.GetHealth("GlobalHealth", "Blood") <= m_MaxBlood )
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- override void OnActivate(PlayerBase player)
- {
- }
- override bool DeactivateCondition(PlayerBase player)
- {
- float m_MaxBlood = player.GetMaxHealth("GlobalHealth", "Blood");
- if ( player.GetHealth("GlobalHealth", "Blood") >= m_MaxBlood )
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- override void OnTick(PlayerBase player, float deltaT)
- {
- float regen_modifier_water = GetRegenModifierWater( player.GetStatWater().Get() );
- float regen_modifier_energy = GetRegenModifierEnergy( player.GetStatEnergy().Get() );
- float blood_regen_speed = PlayerConstants.BLOOD_REGEN_RATE_PER_SEC * regen_modifier_water * regen_modifier_energy;
- /*
- PrintString("regen_modifier_water" + regen_modifier_water);
- PrintString("regen_modifier_energy" + regen_modifier_energy);
- PrintString("blood_regen_speed" + blood_regen_speed);
- */
-
- if ( player.IsUnconscious() && player.GetHealth("GlobalHealth", "Blood") <= PlayerConstants.SL_BLOOD_CRITICAL )
- {
- blood_regen_speed *= PlayerConstants.UNCONSCIOUS_BLOOD_REGEN_MLTP;
- }
-
- player.AddHealth("","Blood", blood_regen_speed * deltaT );
- }
-
- float GetRegenModifierWater(float water)
- {
- float modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_WATER_HIGH;
- int water_level = m_Player.GetStatLevelWater();
-
- /*
- if( water < PlayerConstants.BLOOD_REGEN_THRESHOLD_WATER_MID ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_WATER_MID}
- if( water < PlayerConstants.BLOOD_REGEN_THRESHOLD_WATER_LOW ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_WATER_LOW}
- */
-
- if( water_level == EStatLevels.MEDIUM ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_WATER_MID}
- if( water_level >= EStatLevels.LOW ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_WATER_LOW}
-
- return modifier;
- }
-
- float GetRegenModifierEnergy(float energy)
- {
- float modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_ENERGY_HIGH;
- int energy_level = m_Player.GetStatLevelEnergy();
-
- //if( energy < PlayerConstants.BLOOD_REGEN_THRESHOLD_ENERGY_MID ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_ENERGY_MID}
- //if( energy < PlayerConstants.BLOOD_REGEN_THRESHOLD_ENERGY_LOW ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_ENERGY_LOW}
-
- if( energy_level == EStatLevels.MEDIUM ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_ENERGY_MID}
- if( energy_level >= EStatLevels.LOW ) {modifier = PlayerConstants.BLOOD_REGEN_MODIFIER_ENERGY_LOW}
-
- return modifier;
- }
-
-
- };
|