rweyrauch / prettyscribe Goto Github PK
View Code? Open in Web Editor NEWPretty-printer for Battlescribe Warhammer 40k, Kill Team and Age of Sigmar rosters.
Home Page: https://rweyrauch.github.io/PrettyScribe/
License: ISC License
Pretty-printer for Battlescribe Warhammer 40k, Kill Team and Age of Sigmar rosters.
Home Page: https://rweyrauch.github.io/PrettyScribe/
License: ISC License
Make the Kill Team roster display more like the actual Kill Team data cards.
Hi,
This app is awesome, and fully realize it's a WIP. Loading in a .rosz file works great, and the generated page is spectacular, but I want to print to PDF or HTML, and neither work.
When printing to PDF, all of the formatting and images are lost, so for example the rings around the base stats (move, save, bravery, wounds) disappear, making it pretty hard to read. When saving as HTML, it's even worse, although that's not really that surprising, being able to save to PDF is by far the preferred option. I'm on latest Windows, and I've tried with both Chrome, Firefox, and MS Edge.
Should note that I'm using this for Age of Sigmar rosters.
Is it possible to hide the Prettyscribe title and "Select Roster file" message from the output when printing? The workaround is removing it by inspecting the page in Chrome.
Also some of the formatting doesn't look quite right in the end section when there are multiple lines or a list. For example listing the Canticles of the Omnissiah in an Adeptus Mechanicus list. It just puts them all into one long paragraph rather than separate lines.
I'm not sure if this is an issue with the battlescribe file/output for the new Ossiarch Bonereapers, or a prettyscribe issue but basically when I use an OBR roster file, it only displays the sub-faction allegiance abilities, not the general faction-wide allegiance abilities.
I had this similar issue with the Start Generator, looking like it might be something with my machine. Errors attached. Any advice?
2022-03-14T02_13_43_159Z-debug.log
Seems certain units are not displaying when loaded with PrettyScribe (using AOS)
the points are entered (the units in the case are The Fane Of Slaanesh and Syll'esske The Vengeful Alliance)
alongside this, when printing, datasheets for Keeper Of Secrets and Shalaxi Helbane seem to either overlap eachother when it gets to their damage charts, or they can get hidden behind the next datasheet being printed
ROSTER TEST.zip
I'll try to fix this.
In the Battlescribe view, the Dark Zealotry (Aura) prayer of a Dark Apostle is detailed, but in the PrettyScribe view it isn't there. Any prayers selected in addition to that are listed correctly, but not the default Dark Zealotry one.
A spin-off of #66
Summary: The Black Coach (Death - Nighthaunt) has 5 Evocations of Death it gets and they are normally presented in numerical order. However, PrettyScribe doesn't place them in the same order presented
Example of bug:
Example of working in BattleScribe:
Example of the first two in the AoS App:
Troubleshooting tried:
Attached:
Coach only rosz in zip file
Hey there! Love the app - the only thing i find missing (due to the way I like to put together binders for datasheets/stratagems with Buttscribe) is the option to print it off (admittedly wastefully) with just a single unit's datasheet per page. That option would be a great help. Thanks!
Have you considered using HTML+CSS to render data instead of canvas? Canvas has the downside that it doesn't scale well, and ends up looking a little fuzzy. I have a working demo for the renderer40k.ts, happy to clean it up and send a pull request if you'd like to take a look. LMK
Possibility to make the Warcry roster display more like the actual Warcry cards?
https://waywalkerstudios.com/blank-fighter-cards/
https://stevrak.github.io/warcry-card-creator/index.html
https://stevrak.github.io/warcry-card-creator/downloads.html
When I select a .rosz file from Warhammer 30k (2nd edition), nothing loads (blank page). This issue does not occur when I upload a W40k .rosz file.
The Soulblight Gravelords spell Invigorating Aura (which they all get) does not print along with the rest of the Allegiance Abilities as it does in the standard Battlescribe output, nor is it included in the separate unit entries. I've attached an HTML file showing the output from Battlescribe if that helps.
Great job on the list output, though!
Iโm getting a error message that Warhammer 40,000 10th Edition is not supported. Will there be a update to fix this? Thanks.
Resonance Barb relic (Tyranids) does not show on the list, only the power selected from this relic shows
resonance barb bug.zip
.
The iterative dev loop with npm start
is no long updating or reloading dist/prettyscribe.js. It does compile prettyscribe.js though, and webpack claims the file is emited, but I'm not sure where it's emitted too. localhost:8080 doesn't reload, and a manual reload of the page loads the old version of prettyscribe.js.
Here's some output;
`$ npm start
[email protected] start /Users/smardan/Documents/GitHub/PrettyScribe2
webpack-dev-server
[webpack-dev-server] Project is running at:
[webpack-dev-server] Loopback: http://localhost:8080/
[webpack-dev-server] On Your Network (IPv4): http://192.168.86.193:8080/
[webpack-dev-server] On Your Network (IPv6): http://[fe80::1]:8080/
[webpack-dev-server] Content not from webpack is served from '/Users/smardan/Documents/GitHub/PrettyScribe2' directory
(node:28375) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET] DeprecationWarning: Compilation.modules was changed from Array to Set (using Array method 'reduce' is deprecated)
(node:28375) [DEP_WEBPACK_MODULE_ERRORS] DeprecationWarning: Module.errors was removed (use getErrors instead)
asset prettyscribe.js 3.24 MiB [emitted] (name: main)
runtime modules 26.3 KiB 13 modules
modules by path ./node_modules/ 823 KiB
modules by path ./node_modules/webpack-dev-server/client/ 51.8 KiB 12 modules
modules by path ./node_modules/webpack/hot/.js 4.3 KiB 4 modules
modules by path ./node_modules/html-entities/lib/.js 81.3 KiB 4 modules
modules by path ./node_modules/url/ 37.4 KiB 3 modules
modules by path ./node_modules/querystring/.js 4.51 KiB 3 modules
./node_modules/jszip/dist/jszip.min.js 93.5 KiB [built] [code generated]
./node_modules/ansi-html-community/index.js 4.16 KiB [built] [code generated]
./node_modules/events/events.js 14.5 KiB [built] [code generated]
./node_modules/lodash/lodash.js 531 KiB [built] [code generated]
modules by path ./src/.ts 274 KiB 12 modules
webpack 5.55.0 compiled successfully in 3808 ms
Notice
asset prettyscribe.js 3.24 MiB [emitted] (name: main)` above. However, dist/prettyscribe.js is not updated.
I can manually update dist/prettyscribe.js by manually running npm run build
after each edit:
`
$ npm run build
[email protected] build /Users/smardan/Documents/GitHub/PrettyScribe2
webpack
(node:28815) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET] DeprecationWarning: Compilation.modules was changed from Array to Set (using Array method 'reduce' is deprecated)
(node:28815) [DEP_WEBPACK_MODULE_ERRORS] DeprecationWarning: Module.errors was removed (use getErrors instead)
asset prettyscribe.js 2.6 MiB [emitted] (name: main)
runtime modules 1.25 KiB 6 modules
modules by path ./src/*.ts 274 KiB 12 modules
modules by path ./node_modules/ 625 KiB
./node_modules/jszip/dist/jszip.min.js 93.5 KiB [built] [code generated]
./node_modules/lodash/lodash.js 531 KiB [built] [code generated]
webpack 5.55.0 compiled successfully in 3808 ms
`
`
Any idea what's up?
Hey, it seems some weapons with really long names are leaking into the ranged stat slightly and overlaying over the ranged stat, I included the one I found when doing a list today.
This is a fantastic tool btw, huge appreciation for what you have done here.
Hello,
As you might have noticed, I forked your work.
It is pretty amazing, but it was chunky in some places and had issues in some other places.
I have pretty much all changes in a single commit, so you might need to dig through if you want to merge some changes back.
My Changes:
Acolyte Leader, 5 Acolyte Hybrid, Acolyte Hybrid, Acolyte Hybrid, Acolyte Hybrid, Acolyte Hybrid
My change is to include every model with its updates and weapons (each on a new line):
5x Acolyte Hybrid (Blasting Charge, Cultist Knife, Hand Flamer, Rending Claw(s))
3x Acolyte Hybrid (Blasting Charge, Hand Flamer, Heavy Rock Saw)
Acolyte Hybrid (Blasting Charge, Hand Flamer, Heavy Rock Cutter)
Acolyte Leader (Blasting Charge, Cultist Knife, Hand Flamer, Rending Claw(s))
Tyranids - Genestealer Cults (The Pauper Princes)
The general canvas is broader so it fits the width of a DIN A4 page. This works right now, but if I try to resize or change paper settings I get blurred text on canvas. No clue how to fix that.
I adopted the table column sizes to make full use of the extra space for abilities and details.
I adapted the Psykers section and turned it into a single line with the same information
I removed the Rules section. The Rules are now mentioned in "abilities" and are printed once at the end of the list. sub-faction specific rules are printed separately.
Tyranids - Genestealer Cults
Cult Ambush
During deployment, ...
Unquestioning Loyalty
Each time ...
The Pauper Princes
Devoted Zealots
You can re-roll ...
Give it a try and see if you can use some of my changes.
kind regards, Mario
Whenever I print out the rosters the body text is ~2mm high, which is roughly 6pt. Is there some way to increase the font size?
Would it be possible to have an option to set the output to be produced on a black/dark background with light text? I don't know how simple that is to do with the unit data images, but it would make the HTML text a bit easier on the eyes for using PrettyScribe on a portable device instead of printing.
I don't have any issue to report. I just wanted to mention how badass this is.
The idea behind this feature is to use the prettyscribe website to host the roster and be able to add the roster file programmatically from a different source.
I would think of a javascript function that is called LoadRoster and accept either the xml content of the roster as a string. So we can load the website and call the function with the .rosz-file xml content and the roster is displayed.
I use the prettyscribe website in a WPF WebView2 control so opening the file selection dialog and inserting the path of the file is quite hacky. I can fire javascript functions in the control, so I would open the website in the webview2 control, read the contents of the rosz file and hand the content down to the javascript function so the roster is displayed in the control.
This relates to the 40k 9th edition data set. If a 2nd detachment is added, and a unit added to that detachment, in PrettyScribe most of the force rules and selection rules do not display. Some do, it seems a bit arbitrary. Adding a 2nd empty detachment doesn't seem to cause the problem - it seems to occur as soon as a unit is added to the 2nd detachment. The detachment type doesn't seem to effect the issue.
uploading roster for Warhammer 40K results in all data EXCEPT unit weaponry printing.
I noticed a couple problems when using PrettyScribe on a small Necrons force with WH40k 9th edition setup:
Necron June 2021 2.zip
weapons don't always show up. poking around: the Royal Warden's information is listed after its information (which is nested inside a ), so the method CreateUnit fails nukes the weapon info when it sees the unit info:
Line 585 in a1e185f
custom dynasties info don't show up either. the subfaction rules are listed as "Dynastic Code" rather than "Abilities", so the rules aren't extracted
If an operative has two pieces of equipment, for example, one that costs 2 EP and another that costs 3 EP, the header shows "23" instead of "5"
I fixed it and submitted a PR: #43
Thanks for the awesome app!
This app is great! It would be awesome to be able to choose a minimalist output with just the units and loadouts so your list can be shared on Discord and Reddit.
There is this website https://40kroller.animetidd.is which allows to see all possible strategems for each phase for each unit. Is it possible to add such thing to PrettyScribe too?
Or even have separate table where it is separated in different phases and tells e.g. MOVEMENT: Stratagem_Name1 for Unit_Name1, Unit_Name2 etc.
Btw 40kroller developer wanted to cooperate with you, according to his Discord:
I would like to request the feature to be able to change the order of the data sheets, something like "move up/down" buttons for each data card.
Now in 10th edition where leaders join units it is useful to have those data sheets next to each other so you can look at how they affect each other and go through them one by one after each other when shooting/fighting.
I use PrettyScribe to print to PDF and then view the PDF on my iPad as I play, and right now I have to scroll up and down a lot when going through each unit with multiple data sheets.
Issue: When using the Black Coach from Age of Sigmar's "Death - Nighthaunt" army the Damage Table doesn't show up correctly
Expected outcome:
Have a table that shows the chart of distance and attack count by wounds taken
Example from BattleScribe:
Example from AoS Mobile App:
rosz file containing only Black Coach (in a zip file):
Things I've tried:
Possibly related, can open a new bug if you'd like:
The table for "Evocation of Death" doesn't appear in numerical order:
Example from PrettyScribe:
As displayed in BattleScribe:
Zoanthropes entry on the list does not display selected power
Love Prettyscribe, what a great tool. Thanks!
I've noticed that the output for Age of Sigmar BS rosters doesn't include the section for GHB Rules (2023 in this case). Is this intentionally removed or a bug? It'd be great to have the relevant rules section added to the roster output from PS if possible.
Cheers
Is it possible to add a feature to edit the margins? It would be very handy for creating datacards. As the sheets come now, they are very wide, it would be nice if one could make them narrower.
Navbar hamburger control is not functional.
As the title says, the output doesn't fit. Scaling down the print to 96% makes it work, but that is only a temporary solution.
Hello,
I've implemented the function to hide (some) elements.
Use-Cases:
The new option "Hide Elements from Printing" highlights hide-able elements on hover and strikes them through on click. Those elements are hidden when printing.
Create renderer and roster for KT21.
I will give it a shot this week. I am sure I will need help with graphics. In the meantime I will use placeholders from old KT.
If there's any chance it would be great if it could be supported. Great work on the other system implementations!
Add support to display unit damage tables.
Current
When importing a .ROSZ file previously I would see section about the 'UNIT' with the characteristics like Movement, Toughness, etc but in some cases this has disappered and instead skips straight to the weapon profiles. In some cases the 'UNIT' section is there but only includes one of the profiles or duplicates.
I have also noticed various duplicate weapon profiles in both the 'RANGED' and 'MELEE' sections.
Expected
Each unit block should contain one copy of all applicable 'UNIT', 'RANGED WEAPON, 'MELEE WEAPON' profile.
I was wondering if Battlescribe (v. 2.03.21) or the Battlescribe Data (v. 10.1.4)has changed how it's now recording model configurations. So when I equip a special weapon, that "model" is being treat as it's own entity (i.e. has it's own 'UNIT' profile, any basic loadout weapons are duplicated etc). Not sure why that would cause some 'UNIT' profiles to disapear though unless there is a limit. I've attached my .ROSZ (changed the file type to .txt to allow it to be uploaded) and a PDF from PrettyScribe as well as how Battlescribe exports my list.
Psychomancer's "Harbringer of Despair" ability effects descriptions are missing when I open roster file in prettyscribe
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.