예제 #1
0
        // get the sale price info
        private void btnSell_Click(object sender, EventArgs e)
        {
            int DM = 0;
            int.TryParse(edDM.Text, out DM);

            Traveller.Trade trade = new Traveller.Trade(ship, world);
            cargo = trade.sell(cargo, world, DM);
            lblSellAt.Text = String.Format("{0} [actual value: {1}%]", cargo.sellingPrice.ToString(),
                cargo.avSell* 100.00);
        }
예제 #2
0
        /// <summary>
        /// generate the list of J6 worlds and their expected base value
        /// </summary>
        private void reportJ6Trade()
        {
            // 1st, we need a cargo code from the current world
            Traveller.Trade trade = new Traveller.Trade(ship, world);
            Traveller.Starship.cargoDesc origCargo = trade.findCargo()[0];

            List<string> codes = new List<string>();
            codes.Add(String.Format("Selling from {0} [{1}] Cargo Origin Code: {2}",
                world.Name, world.Hex, origCargo.origCode));
            codes.Add(" ");

            foreach (ListViewItem lvi in lvJ6.Items)
            {
                try
                {
                    Traveller.World tw = new Traveller.World(lvi.Text, ship.Version);
                    trade = new Traveller.Trade(ship, tw);
                    origCargo = trade.sell(origCargo, tw, 0);
                    string cc = String.Format("{0,-20} {1} [{2}] Cr{3}",
                        tw.Name, tw.UWP, tw.Hex, origCargo.basecostsell);
                    codes.Add(cc);
                }
                catch (Exception ex)
                {
                    codes.Add("Error on line: " + lvi.Text + ": " + ex.Message);
                }
            }
            SaveFileDialog sv = new SaveFileDialog();
            if (sv.ShowDialog() == DialogResult.OK)
            {
                File.WriteAllLines(sv.FileName, codes.ToArray());
            }
        }
예제 #3
0
        private void btnPassengers_Click(object sender, EventArgs e)
        {
            Traveller.Trade trade = new Traveller.Trade(ship, world);
            int[] passengers = trade.passengers();
            int cost = 0;

            if (passengers[0] > 0)
            {
                cost = passengers[0] * 1000;
                ListViewItem li = new ListViewItem("Passengers - low");
                li.SubItems.Add(cost.ToString());
                li.SubItems.Add(passengers[0].ToString());
                li.SubItems.Add(String.Format("{0} low passengers", passengers[0]));
                lvAvailableCargo.Items.Add(li);
            }
            if (passengers[1] > 0)
            {
                cost = passengers[1] * 8000;
                ListViewItem li = new ListViewItem("Passengers - mid");
                li.SubItems.Add(cost.ToString());
                li.SubItems.Add(passengers[1].ToString());
                li.SubItems.Add(String.Format("{0} mid passengers", passengers[1]));
                lvAvailableCargo.Items.Add(li);
            }
            if (passengers[2] > 0)
            {
                cost = passengers[2] * 10000;
                ListViewItem li = new ListViewItem("Passengers - high");
                li.SubItems.Add(cost.ToString());
                li.SubItems.Add(passengers[2].ToString());
                li.SubItems.Add(String.Format("{0} high passengers", passengers[2]));
                lvAvailableCargo.Items.Add(li);
            }
        }
예제 #4
0
 /// <summary>
 /// generate a report of all trade codes
 /// </summary>
 private void reportAllCodes()
 {
     List<string> codes = new List<string>();
     foreach (string line in cbWorlds.Items)
     {
         try
         {
             Traveller.World tw = new Traveller.World(line, ship.Version);
             Traveller.Trade trade = new Traveller.Trade(ship, tw);
             List<Traveller.Starship.cargoDesc> cargoes = trade.findCargo();
             string cc = String.Format("{0,-25} {1} [{2}] {3}",
                 tw.Name, tw.UWP, tw.Hex, cargoes[0].origCode);
             codes.Add(cc);
         }
         catch (Exception ex)
         {
             codes.Add("Error on line: " + line + ": " + ex.Message);
         }
     }
     SaveFileDialog sv = new SaveFileDialog();
     if (sv.ShowDialog() == DialogResult.OK)
     {
         File.WriteAllLines(sv.FileName, codes.ToArray());
     }
 }
예제 #5
0
        // generate the cargo. T5 & CT return a single cargo; Mongoose multiple ones
        private void btnGenerateCargo_Click(object sender, EventArgs e)
        {
            if (ship == null | world == null)
            {
                MessageBox.Show("You must have a ship in port to search for cargo!");
                return;
            }

            Traveller.Trade trade = new Traveller.Trade(ship, world);
            trade.useExpandedTradeTables = ckMTExpanded.Checked;
            List<Traveller.Starship.cargoDesc> cargoes = trade.findCargo();

            foreach (Traveller.Starship.cargoDesc cargo in cargoes)
            {
                ListViewItem li = new ListViewItem(cargo.origCode);
                li.SubItems.Add(cargo.purchasePrice.ToString());
                li.SubItems.Add(cargo.dtons.ToString());
                li.SubItems.Add(cargo.desc);
                li.SubItems.Add(cargo.basecostbuy.ToString());
                li.SubItems.Add(cargo.avBuy.ToString());
                lvAvailableCargo.Items.Add(li);
            }
        }