コード例 #1
0
        protected override float CalculateValue(IStateNode previous, bool newTurnOn)
        {
            if (_turnOnCount > 0)
            {
                return(float.MinValue);  // our task is to turn off server not turn on
            }

            float val = previous.Value;

            val += GetTargetServerResourcesChange().GetValue();

            var change = Changes.Last();

            val += CalculateDiffForUpdatedMachineCase(change.Target.Resources + change.MigrationRequirment);

            return(val);
        }
コード例 #2
0
        protected override float CalculateValue(IStateNode previous, bool newTurnOn)
        {
            float val = previous.Value;

            val += GetTargetServerResourcesChange().GetValue();

            var change             = Changes.Last();
            var newServerResources = GetRecieverUsedResources(change.Reciever);

            if (newTurnOn)
            {
                val -= MigrationParams.Current.ServerTurnOnPenalty;
                val += CalculateDiffForNewMachineCase(previous.Value, newServerResources);
            }
            else
            {
                val += CalculateDiffForUpdatedMachineCase(change.Target.Resources);
            }

            return(val);
        }