示例#1
0
        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();
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }