123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- const int BREATH_VAPOUR_LEVEL_MAX = 3;
- class BreathVapourMdfr extends ModifierBase
- {
- override void Init()
- {
- m_TrackActivatedTime = false;
- m_ID = eModifiers.MDF_BREATH_VAPOUR;
- m_TickIntervalInactive = DEFAULT_TICK_TIME_INACTIVE;
- m_TickIntervalActive = 6;
- DisableDeactivateCheck();
- }
- override bool ActivateCondition(PlayerBase player)
- {
- return true;
- }
- override bool DeactivateCondition(PlayerBase player)
- {
- return false;
- }
- override void OnReconnect(PlayerBase player)
- {
- }
-
- override string GetDebugText()
- {
- //return m_Player.GetStatHeatComfort().Get().ToString();
- }
-
- override string GetDebugTextSimple()
- {
- //return m_Player.GetStatHeatComfort().Get().ToString();
- }
-
- override void OnTick(PlayerBase player, float deltaT)
- {
- if( !player.m_Environment.IsTemperatureSet() )
- return;
- float air_temperature = player.m_Environment.GetTemperature();
- int level = 0;//default
- if( MiscGameplayFunctions.IsValueInRange( air_temperature, PlayerConstants.BREATH_VAPOUR_THRESHOLD_HIGH, PlayerConstants.BREATH_VAPOUR_THRESHOLD_LOW) )
- {
- float value = Math.InverseLerp( PlayerConstants.BREATH_VAPOUR_THRESHOLD_LOW, PlayerConstants.BREATH_VAPOUR_THRESHOLD_HIGH,air_temperature);
- value = Math.Clamp(value,0,1);
- level = Math.Round(Math.Lerp(1,BREATH_VAPOUR_LEVEL_MAX,value));
- }
- else if(air_temperature < PlayerConstants.BREATH_VAPOUR_THRESHOLD_HIGH)
- {
- level = BREATH_VAPOUR_LEVEL_MAX;
- }
- if( level != player.m_BreathVapour )
- {
- player.m_BreathVapour = level;
- player.SetSynchDirty();
- }
- }
- };
|