• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.
  • We, the systems administration staff, apologize for this unexpected outage of the boards. We have resolved the root cause of the problem and there should be no further disruptions.

T20 trade utilities

Morte

SOC-14 1K
I wrote a couple of utilities to help in the campaign I just started. One does T20 bulk freight and passenger rolls, the other does spec cargo avilability. This is not the whole of the T20 trading system, but it's the bit that requires the most die-rolling/table-scanning and it's all I felt worth automating for myself.

If you've got the VB6 DLLs, you might like to try them out:

{edit: links zapped, there's an improved version linked later in the thread}

If you find any problems, let me know.
 
Morte,

I downloaded that, I like it.


Only one nit. The label "Na" for the check box . . . It apparently got squished a bit, and the letters "N" and "a" appear stacked, "N" on top, and "a" on the bottom.

Now I need to get off my keister & rip myself away from CSSP long enough to finish my Tablesmith version.
 
I'll get round to a sligtly improved/integrated version "soon", with an interface that handles chains of jumps as well as single hops, and does the rolls for locating cargo buyers as well as sellers.
 
Originally posted by Morte:
I'll get round to a sligtly improved/integrated version "soon", with an interface that handles chains of jumps as well as single hops, and does the rolls for locating cargo buyers as well as sellers.
Ok, break time is over... hop to it! ;)

-W.
 
It's done. I'm going to leave it to sit for a couple of days, then test it with a clear head and post it.
 
Sample...

FROM Shanape TO Liar's Oath

BULK CARGO
Priority: 13 cargos (1 1 2 3 6 2 6 3 4 2 5 3 1)
Hazardous: 8 cargos (2 4 2 4 5 3 5 5)
Security: 13 cargos (3 3 1 2 6 4 6 5 2 1 6 5 6)
Major: 18 cargos (40 60 50 40 30 50 50 50 30 20 40 30 40 60 20 30 10 50)
Minor: 16 cargos (25 10 10 25 20 10 5 5 5 25 5 20 20 25 10 25)
Incidental: 6 cargos (5 3 4 5 2 6)

PASSENGERS
High passengers: 14 (5 will share)
Middle passengers: 18 (10 will share)
Low passengers: 26

SPECULATIVE CARGOS
Locate buyers: DC 11 for 1d6 cargos. Skill 16 + roll 15 = 31.
Success, found 6 buyers for the party's cargo...

Locate sellers: DC 11 for 1d6 cargos. Skill 16 + roll 14 = 30.
Success, found cargos to buy...

(044) Preserved Foods. 10 dtons @ 10,000 base.
Buy mod Ag -2, In -4 => AVT modifier 0.
Sell mod In +2, Na +4, Po +2, Ri -1.

FROM Liar's Oath TO Sentry

BULK CARGO
Priority: 0 cargos
Hazardous: 0 cargos
Security: 0 cargos
Major: 5 cargos (10 40 10 30 10)
Minor: 6 cargos (15 5 20 25 25 5)
Incidental: 0 cargos

PASSENGERS
High passengers: 0 (0 will share)
Middle passengers: 9 (6 will share)
Low passengers: 9

SPECULATIVE CARGOS
Locate buyers: DC 18 for 1d4 cargos. Skill 16 + roll 13 = 29.
Success, found 2 buyers for the party's cargo...

Locate sellers: DC 18 for 1d4 cargos. Skill 16 + roll 4 = 20.
Success, found cargos to buy...

(040) Petrochemicals. 5 dtons @ 10,000 base.
Buy mod In +1, Na -4, Ni -5 => AVT modifier 0.
Sell mod Na -4, Ni -5, In +3.

(025) Agricultural Seeds. 5 dtons @ 5,000 base.
Buy mod Ag -6, Po +3, Ri -2 => AVT modifier 0.
Sell mod Na +3, Po +2.

(001) Grain. 145 dtons @ 300 base.
Buy mod Ag -2, In +2, Na +1 => AVT modifier 0.
Sell mod Ag -2.

(017) Organic Oils. 50 dtons @ 2,000 base.
Buy mod Ag -6 => AVT modifier 0.
Sell mod In +2, Po +1, Ri +4.

##

For long runs I normally paste that into a Word document that's formatted for 3 columns of 8 point text, with the smallest margin my printer can do, then print it.
 
OK, here's version 1.1: T20Trading.exe

Right, let’s see if I can do a little user manual type thing.

T20SpecEx1.png


What You See

Origin and Destination are text boxes, you can type in actual world names or “p1” and “p2” or whatever you want to appear in your final output. They’ll change for each (potential) hop.

The Feats and Skills control groups set up the capabilities of your party, as the trade system sees them. You can generally set them when you start, and then leave them.

The Origin group is where you enter the details of your Origin world, and the Destination world takes details of the world you’re (thinking of) going to. As you see, T20 only needs trade codes for the origin world (used in speculative cargo pricing) and it only needs a travel zone for the destination.

Once you’ve twiddled all those to set the programme up, you use the row of four buttons to make it go…

Basic Operation

The Generate button will, for the details, roll up:
· Passengers of the various sorts
· Freight of the various sorts
· Whether you found anyone here to buy spec cargo you might be carrying
· Whether you found anyone here willing to sell you spec cargo, and if so what’s on offer

If you’re sat at planet A wondering whether to go to B, C or D then you can keep entering details for each destination world and hitting Generate to get a set of options. Note that this will get you extra sets of spec trade rolls for goods available at A, which you’ll need to ignore.

If, OTOH, you’re working a route A to B, B to C, C to D etc then you can do the stuff for the first trip, then hit the Move On button. This will copy the relevant details from Destination to Origin, and wipe the boxes that need to be entered afresh. Once you’ve filled in the missing details, hit Generate again to get the next leg.

The data will just accumulate in the box below, unless you hit Start Again to wipe it.

Once you’ve got all you want, press Copy Results and it will copy all the text to the clipboard so that you can paste it into the destination of your choice. I paste it into a compact, multi-column word document like this. I print that and take it to the game table, where the party decide what to go for and I draw loops around it or scribble prices so we can do the accounts later.

Interpreting the Results

Here’s a sample, taken in sections. Please make sure you know the T20 trade rules before reading it. I am a software manual, not a T20 rules primer.

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">FROM Akhag TO Udar's Dagger</pre>[/QUOTE]Yup, those are the names you typed in.

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">BULK CARGO
Priority: 8 cargos (1 2 4 2 4 4 1 2)
Hazardous: 0 cargos
Security: 9 cargos (3 6 1 5 3 4 2 2 6)
Major: 15 cargos (30 50 30 40 40 10 40 20 20 60 60 20 30 50 60)
Minor: 16 cargos (10 5 30 20 15 5 30 25 30 20 30 10 5 25 30 5)
Incidental: 0 cargos </pre>[/QUOTE]That’s what she rolled. Pretty straight, those are the cargo lots on offer after your week on planet at Origin/Akhag. The randomness is frighteningly random.

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">PASSENGERS
High passengers: 11 (4 will share)
Middle passengers: 18 (9 will share)
Low passengers: 24</pre>[/QUOTE]Duly modified by travel zones, PC skills etc.

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">SPECULATIVE CARGOS</pre>[/QUOTE]Here come the less intuitive bits…

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">Locate buyers: DC 10 for 1d8 cargos. Skill 17 + roll 9 = 26.
Success, found 5 buyers for the party's cargo...</pre>[/QUOTE]That bit won’t matter if you arrived at Origin/Akhag with no spec cargo aboard. But if you were carrying it, it’s just run a Broker check modified by population and starport type to see if anyone at Origin/Akhag wants to buy the goods you were toting. In this case there were five buyers. If you’d failed this, it would have told you to wait a week or pay a local broker a fee of XXX (calculated from the world details) to find buyers for you.

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">Locate sellers: DC 10 for 1d8 cargos. Skill 17 + roll 8 = 25.
Success, found cargos to buy...</pre>[/QUOTE]Now it’s rolled a similar Broker check to see if anybody here at Origin/Akhag has cargo they’d like to sell to you. You might have got a failure message, but it seems the dude on this ship passed the Broker check to find cargos and then maxed the roll (class A ports get d8) for quantity…

</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">(038) Books. 50 dtons @ 10,000 base.
Buy mod Ag -2, Po -6 => AVT modifier 0.
Sell mod In -2, Na +2, Ni +2, Ri +4.

(087) Antiques. 9 dtons @ 500,000 base.
Buy mod Po -2 => AVT modifier 0.
Sell mod In +2, Ri +6.

(030) Fireworks. 7 dtons @ 5,000 base.
Buy mod Ni -2, Po -3 => AVT modifier -2.
Sell mod Ag +4, Na -1, Ri +2.

(032) Pigments/Dyes. 20 dtons @ 5,000 base.
Buy mod Ag -4, Po -2 => AVT modifier 0.
Sell mod Na +4, Ri +2.

(030) Fireworks. 10 dtons @ 5,000 base.
Buy mod Ni -2, Po -3 => AVT modifier -2.
Sell mod Ag +4, Na -1, Ri +2.

(010) Rope. 170 dtons @ 1,000 base.
Buy mod Ag -6, Ni -2 => AVT modifier -2.
Sell mod In +2, Ni +2.

(075) Computer Parts. 10 dtons @ 150,000 base.
Buy mod In -5, Ri -3 => AVT modifier 0.
Sell mod Ag +1, Na +2, Ni +3.

(003) Steel. 140 dtons @ 500 base.
Buy mod In -2, Po +1, Ri -1 => AVT modifier 0.
Sell mod In -2, Po +3, Ri -1.</pre>[/QUOTE]For each cargo on offer, you see three lines of data.

The first is the cargo’s row number on the spec trade table, its name, the quantity on offer in this lot, and the base price.

The second line is the list of trade codes that give modifiers for that cargo, followed by the overall modifier you’ll get on Origin with the trade codes you checked. So the fireworks get purchasing modifiers “Ni -2, Po –3”, and since Akhag is an “Ni” world that’s a –2 modifier. You can subtract 2 from the roll when you roll 3d6 on the Actual Value Table (AVT) to get the price you buy at.

The third line is there for convenience: it tells you what the sale modifiers would be for that cargo on worlds with various trade modifiers. If you like the look of those cheap Fireworks, you can note that they sell at a premium on Agricultural or Rich worlds and see if there are any such worlds nearby, or along your planned route.

And finally, at the end of all your exported text, you’ll find…
</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">Total Rolls: 93</pre>[/QUOTE]That’s the number of calls to the dice function between start up (or Start Again) and Copy Results. I find that the programme averages about thirteen clicks for the first jump and five for each additional jump. That replaces an average of 100 or so dice rolls and a lot of arithmetic per jump.

What this programme doesn’t do, and won’t ever, is the final price rolls for speculative trade. I left that out because (a) it’s low volume, and easy by hand (b) you’d need to bring forward AVT pre-rolls from previous worlds, which involves a database or some such, and (c) that’s the non-drudge part, where you pray over the dice and hope to sell these fireworks at 150% instead of 50%.
 
Would be neat if it could read in UWPs from a sector database...
that’s the non-drudge part, where you pray over the dice and hope to sell these fireworks at 150% instead of 50%.
Tired of praying over your own dice? Don't believe in God but want that angle covered just in case?

For only $2.95 + s/h we'll send you a pair of Straybow Pre-Blessed Dice. Christian, Jewish, Muslim, Zoroastrian, Bahai, and Buddhist options standard. Special orders for non-standard deities/religions available at variable extra charge.
 
Anyone find any bugs or glitches with this while I've been away? [Anyone actually using it?]

If it's behaving, I'll submit it to the flibrary.
 
And Vasilii is about to get suspicious about the results...

[Translation for onlookers: Vasilii the broker is my PC in Ron's Bray Keaven PBEM]
 
Previously, I was thinking about releasing my Tablesmith version of this. However, Tablesmith's .tab files (the files that hold the scripts), are human-readable. They would therefore embody the rules in a readable format, not to mention that Chapter 14 isn't OGC. So, basically, I can't really release it.
 
Back
Top