public World(string uwp, string name, int jumpDistance, TasZone tasZone) { uwp = uwp.Trim(); if (!uwp.Contains("-") && uwp.Length == 8) { uwp = uwp.Substring(0, 7) + "-" + uwp.Substring(7); //add the missing dash } UWP = uwp; Name = name; JumpDistance = jumpDistance; if (tasZone == TasZone.Amber) { Zone = "A"; } else if (tasZone == TasZone.Red) { Zone = "R"; } AddMissingRemarks(); }
public async Task <ActionResult> TradeInfo(string originUwp, string destinationUwp, int maxJumpDistance, bool advancedMode = false, bool illegalGoods = false, int brokerScore = 0, Edition edition = Edition.MGT2, int?seed = null, bool advancedCharacters = false, int streetwiseScore = 0, bool raffleGoods = false, string milieu = "M1105", TasZone originTasZone = TasZone.Green, TasZone destinationTasZone = TasZone.Green) { var tradeEngine = Global.GetTradeEngine(milieu, edition); ManifestCollection model = await tradeEngine.BuildManifestsAsync(originUwp, destinationUwp, maxJumpDistance, advancedMode, illegalGoods, brokerScore, seed, advancedCharacters, streetwiseScore, raffleGoods, milieu, originTasZone, destinationTasZone); return(View(model)); }
public async Task <ManifestCollection> BuildManifestsAsync(string originUwp, string destinationUwp, int distance, bool advancedMode, bool illegalGoods, int brokerScore, int?seed, bool advancedCharacters, int streetwiseScore, bool raffleGoods, string milieu, TasZone originTasZone, TasZone destinationTasZone) { var actualSeed = seed ?? (new Random()).Next(); var random = new Dice(actualSeed); var origin = new World(originUwp, "Origin " + originUwp, 0, originTasZone); var worlds = new List <World>() { origin }; if (!string.IsNullOrEmpty(destinationUwp)) { worlds.Add(new World(destinationUwp, "Destination " + destinationUwp, distance, destinationTasZone)); } var result = await BuildManifestsAsync(worlds, random, illegalGoods, advancedCharacters).ConfigureAwait(false); result.TradeList = BuildTradeGoodsList(result.Origin, advancedMode, illegalGoods, brokerScore, random, raffleGoods); result.HighportDetails = CalculateStarportDetails(result.Origin, random, true); result.DownportDetails = CalculateStarportDetails(result.Origin, random, false); result.AdvancedMode = advancedMode; result.IllegalGoods = illegalGoods; result.Raffle = raffleGoods; result.BrokerScore = brokerScore; result.StreetwiseScore = streetwiseScore; result.Seed = actualSeed; result.AdvancedCharacters = advancedCharacters; result.Milieu = milieu; OnManifestsBuilt(result); return(result); }