示例#1
0
        /// <summary>
        /// Converts amount to slider value. (0 - 1)
        /// </summary>
        /// <returns>Slider value. 0 - 1</returns>
        /// <param name="timeLeft">Time left to add one energy</param>
        public static float ConvertToSliderValue(TimeSpan timeLeft, TimeBasedValue timeBasedValue)
        {
            float result = 0f;

            long timeToAddDuration = timeBasedValue.GetTimeToAddEnergy();
            long timeLeftDuration  = (long)timeLeft.TotalSeconds;

            long percent = (100 * timeLeftDuration) / timeToAddDuration;

            result = percent / 100f;

            return(result);
        }
示例#2
0
        public void CheckAmountAdded(long lastClosedTime = -1)
        {
            int result = 0;

            if (lastClosedTime == -1)
            {
                lastClosedTime = EnergySuiteBehaviour.TimeServ.GetLastClosedTime();
            }

            TimeSpan timeLeftToAddEnergy  = _timeBasedValue.GetTimeToNextAdd(lastClosedTime);
            long     totalTimeToAddEnergy = _timeBasedValue.GetTimeToAddEnergy();

            long lastTimeAdded;

            long timeAddedEnergy = lastClosedTime + (long)timeLeftToAddEnergy.TotalSeconds;

            if (timeAddedEnergy > EnergySuiteBehaviour.CurrentTimeSec)
            {
                _waitForCheck = false;
                return;
            }

            result++;
            lastTimeAdded = timeAddedEnergy;

            while (true)
            {
                long newLastTimeAdded = lastTimeAdded + totalTimeToAddEnergy;

                if (newLastTimeAdded > EnergySuiteBehaviour.CurrentTimeSec)
                {
                    break;
                }

                result++;
                lastTimeAdded = newLastTimeAdded;
            }

            if (result > 0)
            {
                _energySuiteValueBehaviour.Add(result, true, lastTimeAdded);
            }

            _waitForCheck = false;
        }