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