public void InitBuildManagerModules(BuildOrderProcessorData buildOrder, BuildOrderProcessorConfiguration config) { foreach (var module in this) { module.InitBuildOrder(buildOrder, config); } }
public BuildMakerPresenter(IBuildMakerView view, IAddBuildItemListView addItemView, IEditBuildInfoView editBuildInfo, BuildOrderProcessorConfiguration config, IBuildOrdersManager boManager) : base(view) { mConfig = config; mBuildOrdersManager = boManager; mAddItemView = addItemView; mAddItemPresenter = new AddBuildItemListPresenter(mAddItemView); mEditBuildInfoView = editBuildInfo; mEditBuildInfoPresenter = new EditBuildInfoPresenter(mEditBuildInfoView, mBuildOrdersManager); mBuildManager = new BuildOrderProcessor(mConfig); view.ClearBuild += ViewClearBuild; view.UndoItem += ViewUndoItem; view.SaveBuild += ViewSaveBuild; view.AddItemRequested += ViewAddItemRequested; view.BackRequested += ViewBackRequested; mAddItemPresenter.ItemSelected += AddItemPresenterItemSelected; mEditBuildInfoPresenter.BuildSaved += EditBuildInfoPresenterBuildSaved; }
public void LoadBuildOrder(BuildOrderEntity bo, BuildOrderProcessorConfiguration config) { mConfig = config; mBuildManager = new BuildOrderProcessor(mConfig); mBuildManager.LoadBuildOrder(bo); UpdateView(); }
private void ProcessRequirementsForList(List <BuildItemInfo> list, BuildOrderProcessorConfiguration config) { var buildItems = config.BuildItemsDictionary.GetList(); foreach (var item in list) { var buildItem = buildItems.First(p => p.Name == item.Name); if (!string.IsNullOrEmpty(buildItem.ProductionBuildingName)) { var prodBuildingName = buildItem.ProductionBuildingName; if (prodBuildingName == "FreeGatewayForUnit" || prodBuildingName == "FreeWarpgateForUnit") { prodBuildingName = "Gateway"; } var prodBuilding = buildItems.FirstOrDefault(p => p.Name == prodBuildingName); if (prodBuilding != null) { item.Requirements.Add(ConvertEntityToInfo(prodBuilding)); } if (buildItem.Name.Contains("WarpIn")) { var wargateUpgrade = buildItems.FirstOrDefault(p => p.Name == "WarpgateUpgrade"); if (wargateUpgrade != null) { item.Requirements.Add(ConvertEntityToInfo(wargateUpgrade)); } } } foreach (var requirement in buildItem.ProduceRequirements) { if (requirement is StatBiggerOrEqualThenValueRequirement) { var reqTarget = ((StatBiggerOrEqualThenValueRequirement)requirement).TargetStatName; var reqItem = item.Requirements.FirstOrDefault(p => p.Name == reqTarget); if (reqItem == null) { var reqBuildItem = buildItems.FirstOrDefault(p => p.Name == reqTarget); if (reqBuildItem != null) { item.Requirements.Add(ConvertEntityToInfo(reqBuildItem)); } } } } } }
private BuildOrderProcessorConfiguration GenerateBuildManagerConfig(string versionID, RaceEnum race) { var version = mManagersConfigurator.GetSC2VersionsManager().GetVersion(versionID); var raceSettings = version.RaceSettingsDictionary.GetRaceSettings(race); var boManagerConfig = new BuildOrderProcessorConfiguration { BuildItemsDictionary = raceSettings.ItemsDictionary, BuildManagerModules = raceSettings.Modules, GlobalConstants = version.GlobalConstants, Race = race, RaceConstants = raceSettings.Constants, SC2VersionID = version.VersionID }; return(boManagerConfig); }
private List <BuildOrderItemInfo> GenerateBuildItems(BuildOrderProcessorData data, BuildOrderProcessorConfiguration config) { var result = new List <BuildOrderItemInfo>(); var items = data.GetBuildOrderItemsClone(); foreach (var item in items) { var itemData = config.BuildItemsDictionary.GetItem(item.ItemName); var infoItem = new BuildOrderItemInfo { Limit = item.StatisticsProvider.CurrentSupply, Name = itemData.Name, DisplayName = itemData.DisplayName, StartedSecond = item.SecondInTimeLine, FinishedSecond = item.FinishedSecond, MaxLimit = item.StatisticsProvider.MaximumSupply, ItemType = itemData.ItemType.ToString() }; foreach (var stat in item.StatisticsProvider.CloneItemsCountDictionary()) { infoItem.AdditionalValues.Add(stat.Key, stat.Value); } result.Add(infoItem); } return(result); }
public BuildMakerViewModel(BuildOrderProcessorData model, BuildOrderProcessorConfiguration config) : base(model) { mConfig = config; }