Tuesday, May 29, 2018

Testing Trader

I've got 1 brave soul attempting to load the Traveller Tracker software. So far it has not worked: basically a certificate error. I thought the HockeyApp process was supposed to do all that, and it did create a certificate when I prepped the program for distribution.

I did manage to install it on my tablet.  The download is a zip file, and you unzip that. There is a .ps file (powershell) that you need to right-click and say run. It should prompt you I think, then it goes & installs the program. At least that was my experience. As we all know, it always works on the developers machine! You may have to run the powershell as an admin, but I do not recall doing that when I installed it on my test machine.

One thing I just found: you may have to delete the old app and try again:

  • Check if you have already installed this app before, if so, browse to the old package and delete it

And this site may help: https://pumpingco.de/blog/9841/

I may entirely forgo the UWP version, and start yet again with just a plain Win32. I would keep 90% of what I did (and clean things up hopefully) but my goal was to actually get an app into the App store.  But if no one else can test it (and it has a lot of issues still, and more that I won't find simply because of my built-in bias on how to run it) it may end up not going there.

And sadly despite having a 3 day weekend I did nothing fun: it was worrying and trying to do homework all weekend. I have some sincere thoughts about dropping out. To quote Roger Murtaugh, I'm getting too old for this...

Sunday, May 20, 2018

An unrelated note

I went ahead with the Campaign Cartographer Bundle of Holding. And got the Cosmographer add-on which in theory lets me do Traveller-like maps.  Most of the maps it turns out I could do with GIMP and stuff, but I'm just learning. The Traveller star maps are also probably easier in GIMP, and the documentation says that you can only import official Traveller sectors for the subsector mapping, which I've not dug into.

But...it does have a lot of nice templates which will save a lot of time, and there are a LOT of features I need to get under my belt.  So I think it may be worth the cost, just with a pretty big learning curve.

But I did make a play map in a fantasy style. I'll have to play with the SF styles.

I'll also see if a PDF attaches to these posts...



PDF here: https://drive.google.com/file/d/1FSvjlf_75_0jE9xXBKIsYZixnJa4M78W/view?usp=sharing


Friday, May 18, 2018

T5 Cargo

There is a somewhat active discussion over on COTI about the T5 rules.  And I may be misinterpreting something. I thought that spec trade was handled outside of bulk cargo: bulk cargo is what is sitting on the docks, so to speak, and someone is willing to pay the Cr1000/ton to ship.  You have the major, minor & incidental lots, basically sealed containers. Really there to fill up the remaining few dTons of storage if you want a full cargo hold, or can't wait for the weekly roll on the spec trade.

Spec trade was rolled weekly for what it was and the tonnage, at least in the earlier editions. Still doing that - the software in theory adds a week every time you do a search for cargo and passengers (this is configurable by version but defaults to a week). So each time you click that button, I go through all the systems within jump of your ship, generate the passengers and three levels of bulk freight for each system, then generate a random speculative cargo. It is that last cargo I cannot find the tonnage for, UNLESS we use the freight guide which is:

(Flux x Pop) x (total TCs + 1) for a specific list of trade codes. I think I'll just go with that.

Sunday, May 13, 2018

Buying T5 Speculative cargo

Almost there. The rules only cover the purchase price, not dTons or anything like that.  Currently I am defaulting to 1/25 of the cost for the tonnage, and yo can now purchase speculative trade items. The other major difference is that the is no haggling over the purchase price, just the selling price (i.e., the actual value table is only for selling items).  So that was also an interesting twist. So when you purchase a spec trade in T5, it just subtracts from your credits and cargo hold.

I still need to pass in the cargo code, and need to come up with a better way of generating what it is you are buying from the list of cargos. And I want to make the tonnage adjustable by the user which should be easy enough. I now see a better way possibly of integrating the Classic with T5, but that's okay. The code has gotten a lot messier than I like, but apparently that's how I code.

I did add a flag to the version table: CanAlterPurchasePrice. This way we can turn that on/off it you want to be able to haggle.

But some progress was made at least.

I am really itching to play or referee again. I was talking with a guy at the gym who may be interested, and I know John would play again, either as his previous Scout character or we can roll up a new one.  I may do the each player rolls up 2 characters so we have enough for a ship crew, depending on how many players play.  And I've gotten in touch with the guys I used to play Traveller back in college, almost 35 years ago.  Maybe a Roll20 version would work out.

Monday, April 30, 2018

Misc updates

Nothing software related sadly.  But I've finished my first class, so there is now a 2 week window where hopefully I'll get another version out there with corrections to several of the issues I noted when testing on my tablet vs running on my quad-HD big screen.  Still a lot of changes to make this vaguely useful.

And I am continuing with the program - not sure where it will lead but I do enjoy learning, although I'd prefer playing Traveller or any game more...

So my goal is to push another release out to the HockeyApp this weekend. I've made several changes but want to make some more, so I am hoping to have a few hours over the weekend to get things done and push it out Sunday night.

So fingers crossed, and if anyone wants to be an alpha/beta tester, just let me know.  Of course, the source code is open source and available as well - some people have been cloning the repo so perhaps this is getting used someplace.

Sunday, April 15, 2018

T5 - Buying spec cargo

I've got this part working, assuming the user sets up the trade code adjustments. I've also decided that I'll update the 'create the actual value table' process to use the values form book 2 / BBB. I can't stick them in the seed process exactly - the versions are not there to link them to, and I've about the order of events to map the correct IDs. Also - I cannot find in the T5 book anything to indicate tonnage for spec trade. Just all the pricing.  I've not looked at the T5.09 document - that may include more info. Its just that I like having that giant tome open when playing with code.

I also installed this on my tablet via the HockeyApp process. It actually worked.  I also noticed several glaring issues when trying to use the software.  I've already made a few updates to address those. First, when you create a new ship it takes you to the ship layout. However - none of the details are in place yet, so previously the ship info tab was off to the right. Now it is the 1st tab and more obvious you need to fill it out. The 2nd issue was selecting the sector: as you had not selected an era, there were no sectors to load. Selecting an era now loads the sectors. I also default to 1105 era to have something in there when it is empty.  The TravellerMap supports 4 eras: 0, 1105, 1248 and 1900. In theory the tracker software should as well but I've really only tested with the 1105 data. A third issue are some layouts do not fit well with the tablet. I need to either resize them or make it more responsive.


Friday, April 13, 2018

Tracker - beta (really alpha) testers

I've had very slow progress (still second guessing about pursuing another masters degree. In project management. Just because I thought I should know more about projects)

Turns out there is a way to beta test this without the hassle of certificates. HockeyApp allows me to upload the software and create a test group. You get an email, sign up for free, and it will let you install the software.

In testing it, I used another email account and invited myself. I got the link, signed up (so now I've my dev account and a test account...) and it let me download a zip file. Unzip that, right-click the 'Add-AppDevPackage.ps1' and run with Powershell.  I had to say yes to change at the prompt, but then it bombed for me as I've already got that installed as I run it locally with Visual Studio.  I'll have to see if I can uninstall that & try again.

The HockeyApp platform looks like a good way to do this. If anyone wants to start alpha testing, PM me with your email and I'll sign you up.  I've no real idea if this will work but I really do intend to get this into the App at some point and having real people tell me everything that does not work (i.e., most of it...) may help me make progress again.

Please review HockeyApp and all that. I've never used it, but it is built into Visual Studio so it is supported (or owned) by Microsoft. If you want to try it out, just let me know.

Thanks!

Tuesday, April 10, 2018

T5 Trade - still WIP

I did add a trade effect field to the trade codes so you can have changes to the base price. I've added the trade selling trade code table but have not put in the matrix yet (that will come). So we're a few steps closer - I could generate the initial trade good code, and randomly pick one of the trade goods and all that. I just need to connect the dots, but sadly class time is taking up the majority of my free time.  I was sick the last few days (stomach virus? food poisoning? I've no idea other than I've not eaten much more than toast the last 4 days and I was pretty dehydrated for a while). So I managed a few things yesterday beyond feeling blech, checking work email, reading a chapter for class and taking notes, and having a class team meeting.

All I want to do is code sometimes! And play Traveller...

Saturday, March 24, 2018

Tracker - non-UWP trade codes

Now you can add non-UWP trade codes (Hot, Puzzle, etc) to the worlds. Next I need to actually do the T5 trade stuff - there was just a lot of work to get the infrastructure in place (wanting to make this user-customizable as possible so you can run it with whatever rules you want).

Finally fixed the UWP-based trade code check.  Turns out the check for isManual was not working, but you can restrict the entire list at the end:

 List results = App.DB.TradeClassifications.
     Where(x => x.Sizes.Length == 0 || x.Sizes.Contains(Size)).
     Where(x => x.Atmospheres.Length == 0 || x.Atmospheres.Contains(Atmosphere)).
     Where(x => x.Hydro.Length == 0 || x.Hydro.Contains(Hydro)).
     Where(x => x.Pop.Length == 0 || x.Pop.Contains(Population)).
     Where(x => x.Gov.Length == 0 || x.Gov.Contains(Gov)).
     Where(x =>x.Law.Length == 0 || x.Law.Contains(Law)).

     Where(x => x.IsManuallyAssigned == false).ToList();


Saturday, March 17, 2018

Tracker - T5 Trading. No, not there yet

But I am entering all the trade classifications, even the user-decided ones. I've added a flag to the table indicating if this is a manual trade code. All the UWP-based ones are auto.  I've added another table to attach trade codes to the worlds in question.  There you will be able to manually add the trade codes you want to that world, and when I check for trade code generation I'll simply add that list in.

Still need to actually do all that: in making the columns non-nullable, I broke my seed when I added all the trade codes with some non-filled values. I was hoping if I did not include something it would be empty, but the DB barfed at that, so I have to set the fields to "".  Which means I really did not have to reset the DB...oh well, now the seed has all the T5 codes.

Maybe tomorrow I'll have time for the actual cargo part. Probably not - need to finish a paper and I actually have to work a bit (need to update the work DB when no one is there so we don't interrupt users).

I am also wanting to referee or play again - I went through all my ship posters and really want a face to face game so I can use them...and I've got the Great Rift coming in at some point so I may move the play there.  Plus the Cruiser Kickstarter - I am getting all these things I should really use them!




Thursday, March 15, 2018

Tracker - trade classifications

I have been depending on the TravellerMap API to have the trade code classifications in the Remarks field. While this does work, I'd rather have a more nuanced approach to have more details.

I already have the trade code table which gives you trade codes based on the UWP characteristics.  I've added a function to get that list of trade codes based on UWP. Had an issue with nulls but I'll update the DB to not allow nulls for the list of statistics, and that should correct it.

Since I am having to wipe my DB clean again (SQLite migrations do not support changing column attributes, the adding 'not nullable') I'll also expand out the seed that imports the trade codes to include all of them (I manually entered them for testing, found the null issue, and do not want to manually enter them all over again! Although a fix would be to initialize the new classification with blanks, I'd rather have the DB enforce that). This will still allow users to add their own trade codes if they want, and the T5 trade code generator will pick random goods based on trade codes, so that will allow for that to work. It won't affect Classic as that has a very restricted list.

The code to grab the list of trade classifications is pretty simple after the fact. What I've yet to figure out is how to add additional, non-UWP derived trade codes to a world (i.e., Capitol).  I'll probably add a new table for non-UWP trade classifications to allow for the manual entry, and combine those two lists in the new function.

 List results = App.DB.TradeClassifications.Where(x => x.Sizes.Length == 0 || x.Sizes.Contains(Size)).
                Where(x => x.Atmospheres.Length == 0 || x.Atmospheres.Contains(Atmosphere)).
                Where(x => x.Hydro.Length == 0 || x.Hydro.Contains(Hydro)).
                Where(x => x.Pop.Length == 0 || x.Pop.Contains(Population)).
                Where(x => x.Gov.Length == 0 || x.Gov.Contains(Gov)).
                Where(x =>x.Law.Length == 0 || x.Law.Contains(Law)).ToList();

Sunday, March 11, 2018

Tracker - T5 Trade, a start

I've started looking into the T5 trade rules. First step was to also have the list of possible trade goods, so there is yet another trade goods table. In hindsight, there should just be 1 but the Classic rules use s D66 method for rolling up the goods, and I did not want to have to figure out how to enforce that.

So I've grabbed a few cargoes from the BBB and stuck them in there. I may extend it out a bit more (i.e. include the full description of what it really is).  This will allow the users to add whatever cargoes they want to add that are trade class based. When I generate the T5 cargo, I'll randomly pick one of the trade codes, then randomly pick one of the trade goods for that trade code.

Down the road I would like a more personalized trade goods option - some of my world workups had some fairly detailed smaller cargoes. Sometimes it is that personal touch of having 50kg of specialized organic coffee versus a container of freeze dried caffeine.

It is going slower not due to being hard, but my severe lack of time :(

And while I thought about starting a PBP game, that severe lack of time keeps raising its head...

Saturday, March 03, 2018

Tracker - Printing...and maybe a PBP game on COTI?

Got the basic printing to work. I am not exactly happy with this - I create a rich text block and fill it up. To make things align I set the font to a fixed-width font.  I actually think I could do a hidden grid on the display page and use that - it would be automatic for the databinding and I could do some formatting...

I am also possibly going to start a PBP game over on COTI.  I've got some interest there from one of my fellow members, and I've got the inkling of a game idea based on some of his suggestions.  We'll see...if so, then hopefully this blog will be split between software and actual game stuff!


Thursday, March 01, 2018

Tracker - T5 rules

The T5 trade rules are just stubbed out. If your ship is Mongoose or T5, it just returns a message about not currently supported. There is a user over on COTI that wanted a T5 trade program.  I really did not like the T5 version as it seems so dry. It is not hard to do though, so I have a short road map:

1. Finish the cargo printing manifest (4-8 hours)
2. Do the T5 cargo (unknown duration as it has been a couple of years since I read over those rules)

Unfortunately school takes priority, and this is mid-term week. I need to write a paper about a project. Fortunately, I've actually just started a project for work, and that will become my mid-term paper (and won't work be surprised to get a project charter, stakeholder communication breakdown, and a process breakdown!)  As that needs to be completed by Sunday, and I really don't think it will be too difficult, I am hopefully that I'll complete the printing by this weekend (although I really want some sort of template system so that the user can format it a bit, but that will be version 2.0, and as I am on v0.0.0.1 at the moment...)

And I may move this tracker as a project once someone other than me is using it.  When that happens I may open up a Trello board for project management the Kanban style!

And how did March sneak up so fast?

Sunday, February 25, 2018

Tracker - Printing is still hard!

But I've got a start. Using some UWP Community tools to help with the print. What really needs to happen is a more generic way (there is a pretty good MVVM version that almost works, and might if I was doing the whole MVVM thing. But I am not).

I do have it printing the list control (the list of cargos themselves), but what really needs to happen is I need to create a nice looking RTF (Rich Text Format) and go from there. I now know how to get the print to work using the OS native print control, so there is a preview and all that. Now I just need to make a good-looking document and print from there.

And this is slow going not because it is hard (well, that too), but because I have a severe lack of time due to classes. Who knew that getting a 2nd masters would take so much time? Rhetorical question - I figured I'd give up any personal life the next 2 years.  I am adapting (and so far have a 49.5 / 50 so must be doing something right!). Any free time though goes to family. They all happen to be away today and I've caught up on classes. So here we are!

Wish I had a picture or something. Heck - I'll put in the ugly print I've got now.  I do plan on making this into a better document, and I am really thinking adding graphics - i.e., allow the user to upload stamps and stuff.  Down the road assuming I keep going down the road...


Monday, February 12, 2018

Tracker - printing is hard

Sadly, printing in a UWP app is a lot more difficult than it should be.  I've tried a few things, but in the end, I may end creating an HTML doc internally, and then saving that to a PDF.  I've not really had enough time to go through all the options, and there is a printer helper that in theory allows you to print a UI component, such as a grid.  But the component can't be attached to anything, and there is no simple way to clone a UI element.  I've got some code from Code Project that in theory allows for a deep clone of an element, but it is having issues I need to work through.

I want to get a generic print thing going as more than just the cargo manifest will need to be printed.

And it was a leg day on Monday - never a great way to start off the week!

Monday, February 05, 2018

Tracker - world images, logs now pivot

Switched the world control around a bit, so now the world image (primary image), notes, log and general images are all in a pivot control.  Still need to set the 1st image when the images get loaded - there's always a blank image until you scroll, then that image goes away.

The idea for the world log is to have a date-based log for the worlds just as we do for the ships. I don't think I've actually implemented that though.


Friday, February 02, 2018

Adding images to the worlds

I've added the image carousel to the world control.  Found a few things:
  1. I need to either set the height in that control or do something - the image will come out at the size they are, and that means it rolls off the screen.  Maybe a pivot to have info & image?
  2. it seems to lave a blank spot to being with, but once you scroll it is no longer there.  I think I need to set the first image as selected.
  3. Drag & dropping images would be nice
  4. a way to delete images would be nice
  5. the world image can cover data - pivot to the rescue?
But it did work! And even more fun - it's a control using a control!


Sunday, January 28, 2018

Tracker - now with images!

I added a generic image table so that I could add images to worlds or ships.  The hard part was displaying them.  I finally, after way too much trouble, got the image carousel to work. While you can't see it on the image, this is a carousel you can slide through the images.  I've made it a user control so I can plop it anywhere. Currently it is on the ship page, but I'll get around to adding it to the world viewer so you can have more than one image attached to a world.


Saturday, January 20, 2018

Tracker - more cleanup, added notes to the world model

More under the hood updates with some UI updates: I've removed the edit buttons on the lists. Now you just click or press on the item and the editor loads up.  This saves a column to better fit smaller screens as well as cleaning up the UI a bit.

I've also added a notes field to the world, and I may do the same for the ship, so that you can have notes that are not ship date based.

I've added a generic image holder to the program but have yet to do anything with that.  If I have time this weekend I would like to get an image carousel working.  Get that done, and I can stick it on the ship tracking page and the world view control so you can add images to help invoke what things look like.

I've also added light slate blue as the background color for the user controls. If I don't like that I can always change the formatting dictionary.