Starting to re-do my old D'Arlee Quad (2x2 sectors) to bring it into the modern age. TravellerMap rocks! Pretty sure it can do the borders and all that, just need to figure it out.
My plan is to do world write-ups as I have done in the past. My own little corner of the Universe. Apparently it is at least partially in the Imperium. I must have not wanted to create everything from scratch.
A blog about the Traveller Role Playing Game and the software I've written for it as well as my current game progress. Now with other game goodness!
Thursday, June 28, 2018
Friday, June 22, 2018
College Traveller - the mid 80s
I dug up my old Traveller stuff. I had a complete 2x2 sector written up via typewriter, hand drawn maps and ships, and oddly a complete sector-wide shipping company. Now I do so much on the computer, but those early days I could spend weeks with paper, pen and pencils and my father's old typewriter generating material.
Apparently I also created Zhodani ships!
Apparently I also created Zhodani ships!
Sunday, June 17, 2018
Parrot Isle
I am just following a tutorial, but I better understand the sheets, layers and effects now. Still need to mess with Traveller-style maps and things, but as The Fantasy Trip is going to be re-released I may see if I can get the gaming group to try that RPG as well as Traveller (now that I have more time! Plus my son is finally almost done w/Scouts as he has completed all Eagle merit badges, the project, and is just getting all the letters of recommendation and the final paperwork done. Meaning Monday nights, which were Scout night, can now go back to being gaming night with the RPG club in town!)
Anyway, below is a map from that 2nd tutorial where I learned about sheets, text on curves, and some more transparency things. Plus a sepia version as a player handout.
Anyway, below is a map from that 2nd tutorial where I learned about sheets, text on curves, and some more transparency things. Plus a sepia version as a player handout.
Saturday, June 16, 2018
Traveller Tracker Ship Classes
Getting back into the tracker software, and making things work a little better on smaller screens. Mostly adding a scroll viewer around the grids. Not really pretty but at least functional. I am also cleaning up some of the more obvious UI issues, such as the edit boxes getting squashed or missing sides.
I started a user document but then thought it was premature.
I also spent a couple of hours going through more CC3+ tutorials. Getting a better idea of sheets and layers and how to make more interesting and eventually better looking maps.
I really need to spend the time getting the Tracker software working and looking better.
Slightly revised ship class editor:
I started a user document but then thought it was premature.
I also spent a couple of hours going through more CC3+ tutorials. Getting a better idea of sheets and layers and how to make more interesting and eventually better looking maps.
I really need to spend the time getting the Tracker software working and looking better.
Slightly revised ship class editor:
And a map - hey, I've got some text on curves, and learning about glows...it could be a TL4 island...
Thursday, June 14, 2018
No more classes
I've decided to withdraw from my class and school. Too much stress, not enough potential return to be worth it. So now I have free time to spend with family, work on the Traveller Tracker software, learn how to use Campaign Cartographer, and actually play.
While a painful decision as I really hate to quit, it was driving everyone, including the dog, crazy (I apparently do not sleep well and he would not stay in the bed but leave. According to my wife I would be yelling and thrashing as well...hmm, PTSD from a class, who knew?)
So hopefully I will be able to start up another Traveller game (I've got some ideas), work on the software, make fun maps...
While a painful decision as I really hate to quit, it was driving everyone, including the dog, crazy (I apparently do not sleep well and he would not stay in the bed but leave. According to my wife I would be yelling and thrashing as well...hmm, PTSD from a class, who knew?)
So hopefully I will be able to start up another Traveller game (I've got some ideas), work on the software, make fun maps...
Sunday, June 10, 2018
Traveller Tracker - at least buying cargo now loads & displays the manifest
Finally got back for a few minutes, and updated the purchasing process to switch to your manifest window after purchasing, and it does properly refresh and show the current manifest.
As a reminder, it is available on GitHub, and in theory you can sideload this via the HockeyApp process (although we've not really had a lot of luck with that so far). So at some point, if this just does not pan out, I may try again with a more generic approach other than UWP. Just wanted to see if I could write a universal Windows program so that the store would handle distribution.
If I ever do rewrite this for the nth time, this time it will be .Net Core so that it will run on Windows, Mac, Linux in theory. Not sure about the UI for that although there are rumors they will be porting XAML. Or I could try my hand at Java as that runs on everything as well.
Now back to project management...yay?
As a reminder, it is available on GitHub, and in theory you can sideload this via the HockeyApp process (although we've not really had a lot of luck with that so far). So at some point, if this just does not pan out, I may try again with a more generic approach other than UWP. Just wanted to see if I could write a universal Windows program so that the store would handle distribution.
If I ever do rewrite this for the nth time, this time it will be .Net Core so that it will run on Windows, Mac, Linux in theory. Not sure about the UI for that although there are rumors they will be porting XAML. Or I could try my hand at Java as that runs on everything as well.
Now back to project management...yay?
Sunday, June 03, 2018
T5 Freight tonnage
After a lively discussion on the COTI forum, the conclusion is that the tonnage is:
(Flux + Pop) x (TCs + 1)
The trade codes (TCs) that are applicable are a limited sub-set of all the trade codes, so I've added that flag to the trade code table and it seemed to work. I'll probably update the seed to automatically set that as well when you load the software the first time.
I am also assuming we're using the absolute value of flux - no negative tonnage (I guess we really could do that and say that there is a demand for that particular cargo in the system). And it is possible for flux to be 0, meaning that no cargo was found. And unlike CT, it appears we roll once per day - good thing I set up the version table to have a slot for how many days per search!
And I still need to make that UI better: buying cargo should show the updated manifest. I do have the new ship process a bit better: it does go to the ship details layout. I may want to color-code the items you need to have entered to indicate that things are still needed. However, selecting the era did load the appropriate sectors and all that.
And playing with Campaign Cartographer more. I really need to go through a LOT more tutorials...but here is a test for the Cosmographer satellite view. I really need to figure out a bit more..
(Flux + Pop) x (TCs + 1)
The trade codes (TCs) that are applicable are a limited sub-set of all the trade codes, so I've added that flag to the trade code table and it seemed to work. I'll probably update the seed to automatically set that as well when you load the software the first time.
I am also assuming we're using the absolute value of flux - no negative tonnage (I guess we really could do that and say that there is a demand for that particular cargo in the system). And it is possible for flux to be 0, meaning that no cargo was found. And unlike CT, it appears we roll once per day - good thing I set up the version table to have a slot for how many days per search!
And I still need to make that UI better: buying cargo should show the updated manifest. I do have the new ship process a bit better: it does go to the ship details layout. I may want to color-code the items you need to have entered to indicate that things are still needed. However, selecting the era did load the appropriate sectors and all that.
And playing with Campaign Cartographer more. I really need to go through a LOT more tutorials...but here is a test for the Cosmographer satellite view. I really need to figure out a bit more..
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:
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...
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
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.
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.
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.
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.
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!
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...
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();
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
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!
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.
Listresults = 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...
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!
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?
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...
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!
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.
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:
- 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?
- 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.
- Drag & dropping images would be nice
- a way to delete images would be nice
- 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.
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.
Wednesday, January 17, 2018
Tracker - more cleanup and UI updates
Due to snow, I was unable to get to work today. So while I did spend half the day getting my computer ready to be able to work from home (Ubuntu on Windows without a VM! All the updates! Then Ruby! Then Rails! Literally almost half the day just downloading stuff) I also spent half the day working on this project (technically the office is closed due to the snow, but as some of us can work from home...) I also spent some time shoveling snow, and getting my computer ready for the project management class that starts tomorrow. So updates, due to an estimated 15 hours a week for class time, may be greatly reduced soon.
Anyway, after playing around some more I realized that several of my layouts won't play nice with smaller screens. So I've been doing a bit of revising, and some more cleanup under the hood as I've found minor errors when using the tracker. The only major UI update you'll see from today's work is the available cargo tab. I've set the major/minor/incidental cargos to just be text inside the button, and that reduced the width enough to fit on most tablets I am pretty sure. I also added the jump distance next to the world name, and if you click on the world name, the world info box comes up just as it does on the jump listing.
I've also had 2 people clone the repository, so that does mean at least two other people are looking at the code. Woot? I also finished up the community stuff in GitHub (basically be nice) just because.
Anyway, after playing around some more I realized that several of my layouts won't play nice with smaller screens. So I've been doing a bit of revising, and some more cleanup under the hood as I've found minor errors when using the tracker. The only major UI update you'll see from today's work is the available cargo tab. I've set the major/minor/incidental cargos to just be text inside the button, and that reduced the width enough to fit on most tablets I am pretty sure. I also added the jump distance next to the world name, and if you click on the world name, the world info box comes up just as it does on the jump listing.
I've also had 2 people clone the repository, so that does mean at least two other people are looking at the code. Woot? I also finished up the community stuff in GitHub (basically be nice) just because.
https://github.com/COliver988/Traveller for the GitHub account.
Sunday, January 14, 2018
Tracker - and more cleanup
A lot more under the hood updates, mostly correcting the removal of an application-wide list of sectors I did not need. I also added the 1st option: reset the sectors. This actually removes all the sectors and worlds from the local DB, resets all the ship sectors and worlds (now I realize I don't need a ship sector if I have a world - the world contains the sector. Maybe another correction in a bit). It then reloads ALL the sectors for the 4 eras. Doing so of course broke the ship view - it was assuming we have valid values for the things I just cleared! On the bright side, this should also correct the same issue when adding a new ship - something I had not thought of.
I also added a list of eras to the main app, so it is now centralized versus being in various places. The eras (M0, M1105, M1248 & M1900) are part of the API calls to the TravellerMap, so that you can get the UWP for the specific era. 1105 is of course the largest set of sectors; I think M0 only had about a dozen or so versus all of them for 1105. I may have the options page show the count of sectors for each era, and maybe the list as well or something.
I've added a generic dialog class so that I can abstract user-enter dialogs a bit. I've added that as I also added the image list table, and will allow you to load images for ships or worlds. I want to figure out the image carousel thing as I think that would be really cool, but realized I also wanted the user to be able to enter text for the images.
Throwing in one of the hex maps from my game - no images for the tracker since the UI has not changed much yet, and I like pictures.
I also added a list of eras to the main app, so it is now centralized versus being in various places. The eras (M0, M1105, M1248 & M1900) are part of the API calls to the TravellerMap, so that you can get the UWP for the specific era. 1105 is of course the largest set of sectors; I think M0 only had about a dozen or so versus all of them for 1105. I may have the options page show the count of sectors for each era, and maybe the list as well or something.
I've added a generic dialog class so that I can abstract user-enter dialogs a bit. I've added that as I also added the image list table, and will allow you to load images for ships or worlds. I want to figure out the image carousel thing as I think that would be really cool, but realized I also wanted the user to be able to enter text for the images.
Throwing in one of the hex maps from my game - no images for the tracker since the UI has not changed much yet, and I like pictures.
Saturday, January 13, 2018
Tracker - moved jump map to same tab (aka pivot) as the jump list
Well, that was simple, and I think simplifies the UI a bit more...so now we've the visual with the text for the jump distance as well.
Tracker - more cleanup, added the jump distance to the jump button
Bit more cleanup under the hood. There are parts that are a bit more complicated than I like - sometimes I apparently develop in a stream of conscious sort of way. But I am at least unifying the UI a bit.
I've also added the jump distance to the jump button on the list of systems in range. Just so you know at a glance how far away they are. And now I am thinking I could add the jump map there...
What I really need is someone to side load this & give me feed back. Sort of going in circles. If anyone is interested, I'll create the new installers for Windows 10 and post them.
I've also added the jump distance to the jump button on the list of systems in range. Just so you know at a glance how far away they are. And now I am thinking I could add the jump map there...
What I really need is someone to side load this & give me feed back. Sort of going in circles. If anyone is interested, I'll create the new installers for Windows 10 and post them.
Tracker - still in clean up mode
Mostly under the hood updates. I've moved all the ship edit stuff to the ship tracking view, and removed the edit option from the main ship listing. So now there is just tracking, and to edit the ship use the info tab.
A few other minor cleanups - apparently I was calling the TravellerMap API more than necessary (not that they are charging or anything but someone is paying for the web!) So there is a bit more checking to see if I've already loaded what is needed into the local DB before loading again. So that should also improve off-line capabilities a bit more (and I've not really tested that, but I am going with there will be problems).
Mostly refactoring. Hopefully I'll finish that today.
I also updated the tiles to be better. The splash screen as a tile does not work well. Not happy with the small or wide tile so those will also need a bit more work. But they are better than before. GIMP is under my Traveller selection as I pretty much only use it for Traveller stuff.
A few other minor cleanups - apparently I was calling the TravellerMap API more than necessary (not that they are charging or anything but someone is paying for the web!) So there is a bit more checking to see if I've already loaded what is needed into the local DB before loading again. So that should also improve off-line capabilities a bit more (and I've not really tested that, but I am going with there will be problems).
Mostly refactoring. Hopefully I'll finish that today.
I also updated the tiles to be better. The splash screen as a tile does not work well. Not happy with the small or wide tile so those will also need a bit more work. But they are better than before. GIMP is under my Traveller selection as I pretty much only use it for Traveller stuff.
Sunday, January 07, 2018
Tracker - a bit more consistency
I've started attempting to make the various layouts more consistent. I've removed the New Ship button from the main menu and it is now on the ship listing content page. That's where the new whatever button will be on the various layouts, such as cargo and starports (yes, you can now add your own starport class). The ship listing page no longer has the delete option - it is on the ship edit page instead. But I have added the ship class so that may make the listing more useful.
I've also made the database save all changes when the program is closing or getting suspended. I still have issues with data not always getting persisted to the DB, and this should help.
I've also reset the migrations, so anyone who is running this from the source code will have to reset their database if they use the last version or two of the software (App.xaml.cs file, uncomment the db.Database.EnsureDeleted line, run the program, then re-comment out that line unless you want a fresh DB every time).
Interestingly I have received no comments about installing this locally on user machines. Either no one wants to, the directions were more complicated than I thought, or people are being more cautious about installing software from the internet. While I do have 7 watchers on that repository, no one has cloned it either. But the code is out there for anyone to see.
I've also made the database save all changes when the program is closing or getting suspended. I still have issues with data not always getting persisted to the DB, and this should help.
I've also reset the migrations, so anyone who is running this from the source code will have to reset their database if they use the last version or two of the software (App.xaml.cs file, uncomment the db.Database.EnsureDeleted line, run the program, then re-comment out that line unless you want a fresh DB every time).
Interestingly I have received no comments about installing this locally on user machines. Either no one wants to, the directions were more complicated than I thought, or people are being more cautious about installing software from the internet. While I do have 7 watchers on that repository, no one has cloned it either. But the code is out there for anyone to see.
Saturday, January 06, 2018
Tracker - Traveller version update
After realizing there were also...questions...about the cost per jump for passengers, and not just bulk cargo, and also finding that the layout did not work on my tablet, I've made some additional updates to the version. I've added the cost per passage by jump, and updated the math involved so that adding passengers as well as cargo should use the cost that is assigned to the ship's version.
Just trying to avoid the whole can of worms that has been open for, say, 40 years or so now...
Not entirely liking my approach: I almost went the way of adding yet another table that would have the cost, the jump distance, and what it was (high, mid, low, bulk cargo), as well as the version ID. It would have allowed for jumps more than 6 if you allow that as well as streamlining the tables. But it also makes the UI more complicated in some ways. So each version would have, out of the box, 6 (jump ranges) x 4 (cargo, high, mid, low pax) associated records. I went this route for the actual value table - there are 14 actual value records per version (they get created at 100% when you load a version the 1st time). So it could have been done to make it more flexible (I would then add another field to the version to indicate max jump range, rather than the default 6 with the hardcoded fields).
I really hate hard-coded fields - they box you in. I may still go that route, but as this is not enterprise level software, I probably won't.
Just trying to avoid the whole can of worms that has been open for, say, 40 years or so now...
Not entirely liking my approach: I almost went the way of adding yet another table that would have the cost, the jump distance, and what it was (high, mid, low, bulk cargo), as well as the version ID. It would have allowed for jumps more than 6 if you allow that as well as streamlining the tables. But it also makes the UI more complicated in some ways. So each version would have, out of the box, 6 (jump ranges) x 4 (cargo, high, mid, low pax) associated records. I went this route for the actual value table - there are 14 actual value records per version (they get created at 100% when you load a version the 1st time). So it could have been done to make it more flexible (I would then add another field to the version to indicate max jump range, rather than the default 6 with the hardcoded fields).
I really hate hard-coded fields - they box you in. I may still go that route, but as this is not enterprise level software, I probably won't.
Monday, January 01, 2018
Tracker - sideload the alpha release
I'm going with this is an alpha release. If you want to trust me and have Windows 10 and install what I've got so far, here is how you do that:
1. Go to Windows settings & set your machine to developer mode to allow side-loading
2. download the installer package here (this has the installers for x86, x64 and ARM processers - I loaded it on my ARM Win10 machine this way to test): https://1drv.ms/u/s!AgjJYJOsJH7WgYtQgV1IYp11qM_lwg
3. right click the appx package and follow the directions here to allow my not-a-real security certificate to allow you to install software from me: https://stackoverflow.com/questions/23812471/installing-appx-without-trusted-certificate
4. Install
Now this is an early, beta release, so it WILL have issues (I just found that the version editor on my tablet does not scroll so you can't get past the J4 settings). But I will appreciate any feedback.
Now note that this does mean you are trusting me, a faceless person on the internet. While this application does access the internet (to use the TravellerMap API) and I've given it access to your pictures folder which may not be necessary to load images but I've not tested that yet), that is all it accesses. You will get that info when installing.
Also note that if I do make radical database updates, your Traveller Tracker data will go away. I cannot stress enough that this is an alpha release!
And finally, as to not clog up the Traveller G+ site, probably any questions/requests should go on this blog. I fear most of them will be of a technical nature if you are not a developer.
1. Go to Windows settings & set your machine to developer mode to allow side-loading
2. download the installer package here (this has the installers for x86, x64 and ARM processers - I loaded it on my ARM Win10 machine this way to test): https://1drv.ms/u/s!AgjJYJOsJH7WgYtQgV1IYp11qM_lwg
3. right click the appx package and follow the directions here to allow my not-a-real security certificate to allow you to install software from me: https://stackoverflow.com/questions/23812471/installing-appx-without-trusted-certificate
4. Install
Now this is an early, beta release, so it WILL have issues (I just found that the version editor on my tablet does not scroll so you can't get past the J4 settings). But I will appreciate any feedback.
Now note that this does mean you are trusting me, a faceless person on the internet. While this application does access the internet (to use the TravellerMap API) and I've given it access to your pictures folder which may not be necessary to load images but I've not tested that yet), that is all it accesses. You will get that info when installing.
Also note that if I do make radical database updates, your Traveller Tracker data will go away. I cannot stress enough that this is an alpha release!
And finally, as to not clog up the Traveller G+ site, probably any questions/requests should go on this blog. I fear most of them will be of a technical nature if you are not a developer.
Saturday, December 30, 2017
Tracker - some general cleanup
Mostly under the hood updates. I've added the ability to remove the cargos and logs for a ship, as well as deleting a ship itself. As I've updated the way the ship cargo works so that it is never actually deleted, even when unloaded, you may want to clean up things after a while. I am setting an active flag for the cargo so we can have a cargo manifest based on what is currently loaded, or on some historical dates (i.e., what you were carrying 3 months ago. Pesky bureaucracies!)
Minor UI update to the ship list to make it a bit easier to read, and I've added the version and current planet as well as the delete button. The number in [ ] is the ID of the ship. I'll probably remove it but I thought it could be interesting to see how many ships you have added.
Minor UI update to the ship list to make it a bit easier to read, and I've added the version and current planet as well as the delete button. The number in [ ] is the ID of the ship. I'll probably remove it but I thought it could be interesting to see how many ships you have added.
Tuesday, December 26, 2017
Tracker - buying and selling spec trade
Both the purchase and selling go through the same control now - the difference is which DMs are you using (purchase or resale) and whether you are adding it or removing it from your cargo.
Basic part is there (and spent way too much time rotating that text - as it is in a grid that caused the text to get truncated until I figured that out). You can add your DMs, click the roll, and it will calculate the price based on tonnage and the actual value table.
Now, I need to make it actually buy or sell when you click the button, but that part is already written. What I need to do is now abstract that out from the ship tracking view so that I can buy or sell cargo from a ship in other places.
It was interesting getting the actual value tables in place as well. They will default to 100% when loading the first time, but then you can set than as you wish.
Still need to let the user add new versions and a bunch of things like that. And I need to get the basic how to document done. But that will be mostly an iteration of:
Basic part is there (and spent way too much time rotating that text - as it is in a grid that caused the text to get truncated until I figured that out). You can add your DMs, click the roll, and it will calculate the price based on tonnage and the actual value table.
Now, I need to make it actually buy or sell when you click the button, but that part is already written. What I need to do is now abstract that out from the ship tracking view so that I can buy or sell cargo from a ship in other places.
It was interesting getting the actual value tables in place as well. They will default to 100% when loading the first time, but then you can set than as you wish.
Still need to let the user add new versions and a bunch of things like that. And I need to get the basic how to document done. But that will be mostly an iteration of:
- create a ship class. This is where the tonnage, jump, maneuver, power, cargo and passenger information is stored. If you want to modify a ship in terms of any of these things you will need to create a new ship class.
- create your ship: select the version, the milieu, the date, the ship class. Set your location and initialize ship funds
- create any cargo you want. currently I am sticking in the original d66 table from book 2 but it does not include the trade code DMs.
- go to the ship tracking (ship list, then select track for the ship) where you can edit your ship logs, see what worlds are in jump range, load cargo and passengers, jump to any world within reach.
I've got a few things there I'm not actually using. I've set up the trade codes as a table you can edit so yo can set the trade codes based on the world stats, but at the moment I am using the remarks field from the TravellerMap API so I am not sure I'll keep that. I've an options button that does nothing.
Tracker - selling spec trade - just about there!
I had to make a few more changes to the database: we need to track the price we purchased it at and sell it at. This way you can tell if you are making a profit or not. I plan on logging all this to the ship log, but also I may not actually delete cargos from the ship cargo manifest, but set them to a sold/not there anymore status. This would allow us to generate the cargo manifest from any point to any point in time. In case the custom's inspector wants to see what you were carrying the last time you came through this system 6 months ago. So eventually the print cargo manifest will allow you to print what is currently on board, or what was on board for a specified date range. I do stress the eventually...
A few other changes, and I've (finally) got the trade code stuff working, and allowing the players' to have a DM on the actual value table. The roll button should add the number of days to your ship calendar as per the searching for cargo I think, and I've got to wire up the actual sell part (which is coded but not called). But the resulting price is the base price * the tons * the percent value (which I now realize I need to divide by 100 - there is some major price gouging in that image!)
And I also have to revisit purchasing the spec cargo - it will end up being the same user control but in buy mode vs sell mode.This way we can keep the price you paid for it as well.
I've also added a UserBackground brush to my resource dictionary so that all the user controls can have the same color - change it one place & they all get the same color. Just need to update the other controls to use that. The light blue is not a great choice...
A few other changes, and I've (finally) got the trade code stuff working, and allowing the players' to have a DM on the actual value table. The roll button should add the number of days to your ship calendar as per the searching for cargo I think, and I've got to wire up the actual sell part (which is coded but not called). But the resulting price is the base price * the tons * the percent value (which I now realize I need to divide by 100 - there is some major price gouging in that image!)
And I also have to revisit purchasing the spec cargo - it will end up being the same user control but in buy mode vs sell mode.This way we can keep the price you paid for it as well.
I've also added a UserBackground brush to my resource dictionary so that all the user controls can have the same color - change it one place & they all get the same color. Just need to update the other controls to use that. The light blue is not a great choice...
Monday, December 25, 2017
Tracker - selling your spec trade
Getting closer. I've added the actual value tables to be version specific, I've added trade code modifications to the Classic Traveller cargo, and I've got the basic sell your spec trade layout in place. Now I have to figure out which DMs are available, so I will also be adding the current world's trade codes in a display at least, then cross-reference the two so we know which apply.
I'd almost rather have the DM based on cargo ID and trade code ID, but the data maintenance side of that would really bring back to mind the accountants in space trope for Traveller. So I took the expedient way and will let the user just enter text.
And in re-reading the rules, the purchase price is also affected by trade codes...so I need to revisit that.
I'd almost rather have the DM based on cargo ID and trade code ID, but the data maintenance side of that would really bring back to mind the accountants in space trope for Traveller. So I took the expedient way and will let the user just enter text.
And in re-reading the rules, the purchase price is also affected by trade codes...so I need to revisit that.
Sunday, December 24, 2017
Tracker - more version stuff
Adding the resale value table to the version. Having some issues with this one, but making some progress. But it does allow you to set the cargo code type as well as the actual value table.
However, for some reason this popover does not go away when you click outside of it. Most strange!
However, for some reason this popover does not go away when you click outside of it. Most strange!
Tracker - selling speculative trade
I've got the framework now in place - clicking on the remove button, if it is a speculative trade, will show the following pop up. The actual value table will show on the right, and I've yet to fill in some of the data. And this is another user control. And the UI needs work but it is the first draft.
However, I've decided to add the actual value table as a user-editable table to be attached to the version in play. Which means the simple version editor will get a bit more complicated, but it also solves, or rather bypasses, the issue I wasted way too much time on yesterday: getting an enumeration (the cargo codes) to be a combobox (list of choices) to display and work in a list of the versions. So now there will be an 'other options' at the end of the version editor to allow you to enter the cargo code type and enter the true value lists.
I also need to work on the trade code part. I've got most of it in place, but the DMs are also version dependent or should be, so I may have to extend the trade codes table to also be linked to the version.
Doing this version-dependent thing, and not actually supplying the data, may allow this to get published without issue, but I will still be checking.
However, I've decided to add the actual value table as a user-editable table to be attached to the version in play. Which means the simple version editor will get a bit more complicated, but it also solves, or rather bypasses, the issue I wasted way too much time on yesterday: getting an enumeration (the cargo codes) to be a combobox (list of choices) to display and work in a list of the versions. So now there will be an 'other options' at the end of the version editor to allow you to enter the cargo code type and enter the true value lists.
I also need to work on the trade code part. I've got most of it in place, but the DMs are also version dependent or should be, so I may have to extend the trade codes table to also be linked to the version.
Doing this version-dependent thing, and not actually supplying the data, may allow this to get published without issue, but I will still be checking.
Saturday, December 23, 2017
Tracker - buying speculative trade items
Turned out to be a tad more complicated - a speculative trade does not have a destination world, so a few logic changes had to be made to handle that. But you can now purchase spec trade. I may or may not have mentioned it before, but the cargo code will be based on the Traveller version you are using. For T5, it will show the T5 code (I need to look it back up, but basically it was the origin world trade codes, tech level and a few other things). Mongoose & Classic will use the BITS cargo code stuff, which is still a work in progress. Strike that - I will add the cargo code as an option to the versions as well so you can do with it as you want.
Minor cosmetic change to the cargo manifest view - figured you may want to see what you actually bought...which also means I will also be filling in the bulk cargo with...something random?
And I still need to let you sell the spec trade - that is where this gets a bit more complicated. But fun!
Minor cosmetic change to the cargo manifest view - figured you may want to see what you actually bought...which also means I will also be filling in the bulk cargo with...something random?
And I still need to let you sell the spec trade - that is where this gets a bit more complicated. But fun!
Thursday, December 21, 2017
Tracker - Traveller versions
A minor update to the versions - I've added the option to set the number of days it takes to search for cargo. When you click the search for cargo and passengers, it will roll up a new speculative cargo as well as all the bulk cargo and passengers, as well as adding the specified number of days to the ship calendar. I may also add an automatic ship's log to that effect.
Still have to deal with the purchase and selling of the spec cargo - buying is straightforward, just add to the cargo tonnage carried, subtract the price from your credits (assuming you have enough!), and add a cargo record and log. Selling is more complicated due to the true value table (which may end up in the versions table as well somehow) and various DMs you may get based on version, as well as the potential for using a broker. I may simplify by just allowing a manual entry for player DMs, as well as take into account any use of a broker.
UI is all over the place so that will have to get cleaned up at some point as well, but I want to get the basics in place. Pretty sure, outside of Christmas, I'll have time to get to the spec trade part.
And if anyone has any ideas for things this should do, let me know. So far I'm just doing this on m own with my own idea of what it needs to do. I may be missing something really important. Such as the ability to add your own version (can anyone say Cepheus Engine?).
And options: so far I think (with nothing actually done, just figure I'd write things down so I may remember them later):
Still have to deal with the purchase and selling of the spec cargo - buying is straightforward, just add to the cargo tonnage carried, subtract the price from your credits (assuming you have enough!), and add a cargo record and log. Selling is more complicated due to the true value table (which may end up in the versions table as well somehow) and various DMs you may get based on version, as well as the potential for using a broker. I may simplify by just allowing a manual entry for player DMs, as well as take into account any use of a broker.
UI is all over the place so that will have to get cleaned up at some point as well, but I want to get the basics in place. Pretty sure, outside of Christmas, I'll have time to get to the spec trade part.
And if anyone has any ideas for things this should do, let me know. So far I'm just doing this on m own with my own idea of what it needs to do. I may be missing something really important. Such as the ability to add your own version (can anyone say Cepheus Engine?).
And options: so far I think (with nothing actually done, just figure I'd write things down so I may remember them later):
- the ability to reset to the seed values
- the ability to clear sectors and worlds (when you select a sector, if it is not already in the DB, it will use the TravellerMap API to load all the worlds based on your milieu. You may want to 'refresh' that in case there have been updates)
- the ability to import your own sector file (it would have to be in the TravellerMap format)
- exporting data in some way
- use the TravellerMap to have a grand journey route picked out for you (Alell to Regina)
- instructions!
- open game license info
Monday, December 18, 2017
Installing a developer version of Traveller Tracker
Not for the faint of heart, but there is a way to run this before it gets published. You will need to download some large software and sign up for Github, so if that does not scare you off...
First, you will need to be running Windows 10. As the end goal of this is a Windows App Store (otherwise known as a Universal Windows Program or UWP, or sometimes I think UA for Universal App [Microsoft has got to have the worse marketing and naming departments in the world]) it currently only runs on Win10. As the .Net run time is becoming more platform independent, at some point in the future there could be another version that could run on a Mac, or Linux, as well as Windows. But first things first.
I also recommend getting Git For Windows - this will install the Git client on your system. Doing this means that it will be easier to keep up with updates to the source code. Otherwise you have to down load everything every time I make a change. Git for windows: http://gitforwindows.org/
Next, you may need a Github account. I am not 100% positive you do but it does make some things easier I think.
Go to my Github Traveller repository (henceforth known as a repo) - https://github.com/COliver988/Traveller and on the right hand side there is a button to clone or download the directory. If you have Git installed on your computer, use the clone option. I recommend making a Git directory in your Documents folder, but that's up to your personal preferences. Cloning a repo means that, with a single command at the Git bash shell on your Windows computer (assuming you've installed Git for Windows) you can get all the updates, and only the updates. Save off this directory. Unfortunately this will also bring down a few dead end directories, but you can get rid of those. The code in question is TravellerTracker.
So now you have a few dozen directories with a lot of files. To make sense of all this, you will need to download and install Visual Studio - http://gitforwindows.org/ Use the community version - it is free and very useful. If you are not a developer, it can be a bit daunting. It is also a very large program so be prepared to wait a while to get it installed. And it seems to be updated on a weekly basis which is also time consuming - not sure why all the tech companies have gone form a yearly update cycle to a let's release things a lot that are broken and fix it next week with a fix that breaks other things...but I digress.
So open VS2017 (Visual Studio 2017), and open a directory. Open the TravellerTracker directory. I think it will ask if you want to make a solution, if it does, say yes. This will help speed up things next time. Then hit F5, or click the green arrow that should say Local machine I think, and it will compile then run the program for you.
I have glossed over a few of the steps, so when there are questions, and yes there will be questions, just let me know and hopefully I'll be able to help.
What I am also hoping to happen is that if a few people manage to get this running locally, they can give me help on what it needs to do. I tend to look at things from a developer viewpoint and not a user viewpoint once I get started (and I've been writing code professionally for 30+ years, almost as long as I've been playing or at least playing with Traveller!)
I'll also have to document how to use the software a bit. Once you get started I think it makes sense, but until you get started it may seem a bit...empty.
First, you will need to be running Windows 10. As the end goal of this is a Windows App Store (otherwise known as a Universal Windows Program or UWP, or sometimes I think UA for Universal App [Microsoft has got to have the worse marketing and naming departments in the world]) it currently only runs on Win10. As the .Net run time is becoming more platform independent, at some point in the future there could be another version that could run on a Mac, or Linux, as well as Windows. But first things first.
I also recommend getting Git For Windows - this will install the Git client on your system. Doing this means that it will be easier to keep up with updates to the source code. Otherwise you have to down load everything every time I make a change. Git for windows: http://gitforwindows.org/
Next, you may need a Github account. I am not 100% positive you do but it does make some things easier I think.
Go to my Github Traveller repository (henceforth known as a repo) - https://github.com/COliver988/Traveller and on the right hand side there is a button to clone or download the directory. If you have Git installed on your computer, use the clone option. I recommend making a Git directory in your Documents folder, but that's up to your personal preferences. Cloning a repo means that, with a single command at the Git bash shell on your Windows computer (assuming you've installed Git for Windows) you can get all the updates, and only the updates. Save off this directory. Unfortunately this will also bring down a few dead end directories, but you can get rid of those. The code in question is TravellerTracker.
So now you have a few dozen directories with a lot of files. To make sense of all this, you will need to download and install Visual Studio - http://gitforwindows.org/ Use the community version - it is free and very useful. If you are not a developer, it can be a bit daunting. It is also a very large program so be prepared to wait a while to get it installed. And it seems to be updated on a weekly basis which is also time consuming - not sure why all the tech companies have gone form a yearly update cycle to a let's release things a lot that are broken and fix it next week with a fix that breaks other things...but I digress.
So open VS2017 (Visual Studio 2017), and open a directory. Open the TravellerTracker directory. I think it will ask if you want to make a solution, if it does, say yes. This will help speed up things next time. Then hit F5, or click the green arrow that should say Local machine I think, and it will compile then run the program for you.
I have glossed over a few of the steps, so when there are questions, and yes there will be questions, just let me know and hopefully I'll be able to help.
What I am also hoping to happen is that if a few people manage to get this running locally, they can give me help on what it needs to do. I tend to look at things from a developer viewpoint and not a user viewpoint once I get started (and I've been writing code professionally for 30+ years, almost as long as I've been playing or at least playing with Traveller!)
I'll also have to document how to use the software a bit. Once you get started I think it makes sense, but until you get started it may seem a bit...empty.
Sunday, December 17, 2017
Tracker - we have jump...
Removing the cargo is the same thing as unloading it, just the world and the date is the same you are currently on. So that method gets called when you click the delete button on a cargo item, or make the jump.
I've also added in the jump process to unload the cargo, and this also automatically adds ship logs for you.
So honestly this is really about 90% done - the UI and a few things need work, but the rest is basically fluff. The core stuff seems to work (of course I say that as the developer without any user testing whatsoever...)
I've also added in the jump process to unload the cargo, and this also automatically adds ship logs for you.
So honestly this is really about 90% done - the UI and a few things need work, but the rest is basically fluff. The core stuff seems to work (of course I say that as the developer without any user testing whatsoever...)
Tracker - passengers as cargo
While not exactly what the High Passage clients think, having the cargo manifest include passengers will make unloading them at the proper world easier. Plus I will customize the cargo manifest at some point to list the passengers in their own section.
Depending on where I end up today, I should have the jump process then unload all passengers and cargo if the world is the destination world. I also need to add loading/unloading to the ships log as automatic entries.
Took a couple of tries, and I probably need to add a delete button in case yo want to offload unruly passengers or cargo before the jump.
Depending on where I end up today, I should have the jump process then unload all passengers and cargo if the world is the destination world. I also need to add loading/unloading to the ships log as automatic entries.
Took a couple of tries, and I probably need to add a delete button in case yo want to offload unruly passengers or cargo before the jump.
Saturday, December 16, 2017
Tracker - World user control
I've added a world user control which is what the tab for the world info used to show. Doing this allows my now to add an event to the worlds in the jump list to load that world's information. The advantage of this is that now I can display world info wherever I need to and it will be standardized.
I've also abstracted out the image processing so that I can handle it without repeating code - the while DRY (don't repeat yourself) mantra in developing software. I'll be adding the image library, which may be ship or world based. Which means eventually I'll probably add an image carousel to the ship page, and the world control.
So the World Info tab is no longer there, but you can click (or touch if touch screen) the world name and the control shows up. So you could review the logs of any worlds if they exist. I've also updated the logging a bit so that creating a log entry for the world is no longer tied to the ship. It is tied to the ship date so we know when it was put in, so to speak. Still thinking about that - we may want to allow the logging to override the date.
Not sure about the color either, but by default it was the same color as everything else and looked confusing. So I stuck something in there.
I've also abstracted out the image processing so that I can handle it without repeating code - the while DRY (don't repeat yourself) mantra in developing software. I'll be adding the image library, which may be ship or world based. Which means eventually I'll probably add an image carousel to the ship page, and the world control.
So the World Info tab is no longer there, but you can click (or touch if touch screen) the world name and the control shows up. So you could review the logs of any worlds if they exist. I've also updated the logging a bit so that creating a log entry for the world is no longer tied to the ship. It is tied to the ship date so we know when it was put in, so to speak. Still thinking about that - we may want to allow the logging to override the date.
Not sure about the color either, but by default it was the same color as everything else and looked confusing. So I stuck something in there.
Thursday, December 14, 2017
Tracker - basic DB schema
If interested, this is the rough schema for the tracker program. Essentially a Ship object is the primary thing - you can run multiple ships in different Traveller versions. Ships have a ship class that determines the basic things like tonnage, jump and maneuver, cargo and passenger capacity. A ship is on a world that has all the stuff from the TravellerMap API (I store everything in the SQLite DB - you set a ship sector and if it is not already in the system, I go out & get the info and store it locally. The idea is that this can still be useful even if not connected to the internet). A ship also has cargo (which is speculative cargo as well as bulk cargo, and passengers are basically treated as cargo but take no cargo space).
A few other support tables, and a few things still in flux. Not all the tables are listed.
There is also a seed class that preloads a few classes, the Classic Traveller cargos and a few other things the first time you run the program.
A few other support tables, and a few things still in flux. Not all the tables are listed.
There is also a seed class that preloads a few classes, the Classic Traveller cargos and a few other things the first time you run the program.
Sunday, December 10, 2017
Tracker - bulk cargo pt 3
Looks like we can now load the cargo on the ship. It will add to the ship cargo (thus reducing the available cargo space), add the appropriate amount of credits (based on the Traveller version cost per jump).
Next step is when jumping to a system, check to see if any of the ship cargos is going there and unload them - basically just add back to your cargo space.
As I do flag the cargo by an enumeration I can just check for anything that is non-speculative and adjust then.
public enum CargoTypes
{
Speculative,
Major,
Minor,
Incidental,
Mail
}
Still need to work on the cargo codes themselves (i.e., T5 has a code, and I've the BITS stuff to work out still). And I'm pretty sure we can't actually purchase the speculative trade yet, but that just means writing the stuff to get the costs. And I may have to add the purchase/sell adjustments to the versions table as well (although T5 maps 1:1 with Classic actual value table)
It did take me 3 times to get it all in there. I've also added a Cargo Available tab to list the available cargos, and made the Cargo manifest tab the actual ship's manifest. Probably need to add passengers as well (they can be set up as cargo - I'll just add enum values for high, mod & low passengers).
The list is the cargo type, tonnage, origin world & destination world. And yes - I really need to get around to making the UI pretty...
Next step is when jumping to a system, check to see if any of the ship cargos is going there and unload them - basically just add back to your cargo space.
As I do flag the cargo by an enumeration I can just check for anything that is non-speculative and adjust then.
public enum CargoTypes
{
Speculative,
Major,
Minor,
Incidental,
}
Still need to work on the cargo codes themselves (i.e., T5 has a code, and I've the BITS stuff to work out still). And I'm pretty sure we can't actually purchase the speculative trade yet, but that just means writing the stuff to get the costs. And I may have to add the purchase/sell adjustments to the versions table as well (although T5 maps 1:1 with Classic actual value table)
It did take me 3 times to get it all in there. I've also added a Cargo Available tab to list the available cargos, and made the Cargo manifest tab the actual ship's manifest. Probably need to add passengers as well (they can be set up as cargo - I'll just add enum values for high, mod & low passengers).
The list is the cargo type, tonnage, origin world & destination world. And yes - I really need to get around to making the UI pretty...
Tracker - Traveller versions
I've expanded out the version stuff a bit, and added an editor. I probably need to add an option to add versions so you can have a IMTU set of things.
I expanded this out because in doing the shipping costs, I did not want to hard code in Cr1000 - it should be the distance x the cost based on jump. As there is...contention...with how this works, I'll leave it up to the user to set the cargo costs.
And now that I am thinking of it, probably should add the berthing and daily fees for staying at a starport. Or would that be in the world definition, or both - default to the version but allow the world to over-ride the values?
I expanded this out because in doing the shipping costs, I did not want to hard code in Cr1000 - it should be the distance x the cost based on jump. As there is...contention...with how this works, I'll leave it up to the user to set the cargo costs.
And now that I am thinking of it, probably should add the berthing and daily fees for staying at a starport. Or would that be in the world definition, or both - default to the version but allow the world to over-ride the values?
Saturday, December 09, 2017
Tracker - Bulk cargo pt 2
Finally got the UI to actually show things (there is a scroll that shows up when you use it. and interestingly, on my touch screen PC this works surprisingly well).
Now to have the load button actually load the cargo into your ship!
Note that the cargo code is going to be the BITS cargo code, so there is a LOT of interesting tidbits in there, such as the cargo container type and size, what is in the container, and potential hazards. What I am planning on doing is for the bulk cargo is to create a random code (it will have to fit the tonnage but other than that...) So you may end up carrying something toxic only to Aslan and not be aware of it. There will be a decoder in there somewhere, perhaps on the cargo manifest itself.
Now to have the load button actually load the cargo into your ship!
Note that the cargo code is going to be the BITS cargo code, so there is a LOT of interesting tidbits in there, such as the cargo container type and size, what is in the container, and potential hazards. What I am planning on doing is for the bulk cargo is to create a random code (it will have to fit the tonnage but other than that...) So you may end up carrying something toxic only to Aslan and not be aware of it. There will be a decoder in there somewhere, perhaps on the cargo manifest itself.
Tracker - loading bulk cargo
After a few rabbit holes and interesting design choices, I think the bulk cargo loader will be a pop up when you click the inspect button on the cargo listing. However - getting a pop up to work has proved to be more interesting than I thought. Turns out that having it created dynamically with a user control would be ideal, but due to the way XAML handles the visual tree (how things get displayed), sticking it in a pivot table (that horizontal list of options, basically a tab control but with XAML...) does not work.
So I stuck one in the actual page, same level as the pivot, and that works. Except my list of cargos is not showing up. That and I had to dust off my user control memories. But (other than the color which is there just to see if it is there) progress is being made. At least the world name show up! Of course, I still need to get all the cargo in the ship itself, and now I am really thinking cargo is cargo regardless if it is spec or not. Difference is you get paid for bulk up front, and you pay for spec up front and sell it later. So I need to get that figured out.
I also got the image thing finally working. I need to abstract that as I do plan on allowing the user to load images in other places. But as we say in development - premature optimization is the root of...well, trying to think too far ahead.
So I stuck one in the actual page, same level as the pivot, and that works. Except my list of cargos is not showing up. That and I had to dust off my user control memories. But (other than the color which is there just to see if it is there) progress is being made. At least the world name show up! Of course, I still need to get all the cargo in the ship itself, and now I am really thinking cargo is cargo regardless if it is spec or not. Difference is you get paid for bulk up front, and you pay for spec up front and sell it later. So I need to get that figured out.
I also got the image thing finally working. I need to abstract that as I do plan on allowing the user to load images in other places. But as we say in development - premature optimization is the root of...well, trying to think too far ahead.
Sunday, December 03, 2017
Tracker - world image
Add a way to add an image to the world. Halfway there at least - I can let the user pick an image. Now to actually save the thing back to the database...should not take too long.
Saturday, December 02, 2017
Tracker - world logs
I've updated the world info a bit - and you can now add logs. I think if the world is part of that I need to figure out if I want to include the world info on the ship log as well. I may have to add some more info about if this is a general note or a ship specific one or something.
I've also updated the refuel process to use the port's fuel. And then realized I've not added a way for you to add a new port or delete a port.
Maybe tomorrow I'll have time to figure out the image thing. Or not - we're off to see the Russian Ballet. A little bit of real world culture.
I've also updated the refuel process to use the port's fuel. And then realized I've not added a way for you to add a new port or delete a port.
Maybe tomorrow I'll have time to figure out the image thing. Or not - we're off to see the Russian Ballet. A little bit of real world culture.
Tracker - a bit more on the starports
Turns out the check boxes were just that, and it also turns out that having the 2-way bind seems to also automatically update the database. So I may have to look where I am doing some possible unnecessary trips to the DB.
I've also expanded out the ships log file to have a worldID and an image. The ships log will be a general holding place for notes, so that we can add notes to the ship, or the world, or if we like, link it to both. The image part allows me to add images to the log in case you want to do that (look at our full cargo bay!)
Which means I may need to go ahead and drop the WorldLog I had, and maybe another full migration. Or see if the remove-migration world log would work...
Hopefully tomorrow I'll get the image thing figured out. While I'd like drag & drop, we'll just have to see if I cam name that work.
I've also expanded out the ships log file to have a worldID and an image. The ships log will be a general holding place for notes, so that we can add notes to the ship, or the world, or if we like, link it to both. The image part allows me to add images to the log in case you want to do that (look at our full cargo bay!)
Which means I may need to go ahead and drop the WorldLog I had, and maybe another full migration. Or see if the remove-migration world log would work...
Hopefully tomorrow I'll get the image thing figured out. While I'd like drag & drop, we'll just have to see if I cam name that work.
Subscribe to:
Posts (Atom)




