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); }
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); }