diff options
author | Tor Andersson <tor@ccxvii.net> | 2023-02-20 14:58:49 +0100 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2023-05-03 18:48:15 +0200 |
commit | 6957f7be1b0d24f0c46f0eeb3fa224493a74e7b5 (patch) | |
tree | a9fd2a54f70f29a34cc48c44d5e20cd57b6c97d0 /tools | |
parent | 013d3b84d36eaf593c0070325e4b1bba232a1dd0 (diff) | |
download | andean-abyss-6957f7be1b0d24f0c46f0eeb3fa224493a74e7b5.tar.gz |
Various tools and piece generation scripts.
Diffstat (limited to 'tools')
31 files changed, 2045 insertions, 0 deletions
diff --git a/tools/areas.pbm b/tools/areas.pbm Binary files differnew file mode 100644 index 0000000..b1f7e00 --- /dev/null +++ b/tools/areas.pbm diff --git a/tools/areas.svg b/tools/areas.svg new file mode 100644 index 0000000..07b78f0 --- /dev/null +++ b/tools/areas.svg @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="2200" + height="3400" + viewBox="0 0 1650 2550" + id="svg26" + sodipodi:docname="areas.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)"> + <metadata + id="metadata32"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs30" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview28" + showgrid="false" + inkscape:zoom="0.3009954" + inkscape:cx="879.71784" + inkscape:cy="2582.1639" + inkscape:current-layer="svg26" /> + <path + d="m 824,725 c -7,-2 -6,-15 -18,-10 -5,2 -17,-2 -15,-8 2,-9 11,-14 10,-24 3,-10 -7,-17 -11,-26 l -15,-29 c -3,-7 -11,-14 -10,-22 4,-10 -2,-23 -14,-24 -7,-2 -11,-11 -15,-18 -5,-8 -10,-17 -17,-24 -2,-9 -6,-17 -13,-22 -1,-8 -6,-21 5,-23 8,-4 16,-12 22,-19 6,-6 9,-14 12,-22 2,-11 2,-22 1,-33 7,4 15,7 24,6 16,0 33,1 49,-2 6,-5 15,-1 20,-7 6,-7 13,-11 20,-16 6,-8 16,-9 23,-13 7,-5 10,-15 19,-16 8,-7 19,-8 29,-12 9,-3 19,-2 25,-10 8,-4 16,-7 20,-15 4,-9 10,-17 11,-28 1,-4 0,-14 2,-5 5,8 18,9 24,2 8,-3 10,-13 9,-19 10,2 16,-8 25,-11 8,-7 17,4 25,5 6,2 15,4 18,9 l 13,22 c -3,7 -14,10 -19,17 -8,4 -5,19 -15,20 -7,4 -15,8 -24,7 l -27,7 c -7,2 -15,4 -21,9 -6,9 -21,6 -24,19 -5,9 -11,18 -15,29 -1,4 -10,6 -14,9 -9,-3 -19,0 -24,9 -5,7 -7,15 -12,22 -9,2 -11,12 -14,20 l -11,22 c -6,9 -15,15 -18,24 -2,12 0,25 -6,35 -6,9 -1,20 -4,30 -5,6 0,15 1,20 -8,5 -13,15 -12,24 -6,5 -12,10 -15,17 -3,8 -6,17 -12,24 -7,5 -16,14 -12,23 3,10 14,9 22,8 5,1 16,-4 9,4 1,7 -5,13 -11,15 z" + id="path2" /> + <path + d="m 211,926 c -5,-7 -9,-14 -17,-18 -7,-7 -8,-18 -17,-24 -3,-8 -5,-17 -11,-25 -4,-5 -12,-14 -1,-15 8,-3 15,-10 15,-19 -1,-7 -3,-13 6,-13 5,7 13,10 21,11 10,3 20,-2 19,-13 0,-13 -16,-9 -22,-18 -4,-9 -10,-20 -22,-21 -6,-4 -15,-4 -21,-3 -4,-8 -18,-2 -18,-14 -4,-10 -14,-14 -23,-19 -5,-7 -16,-4 -19,-13 -4,-6 -7,-12 -15,-13 -8,-3 -14,-10 -22,-12 -14,-5 -29,-3 -43,-5 -6,-2 -20,6 -18,-3 v -47 c 10,-2 20,1 30,4 10,1 25,-4 23,11 11,0 21,2 31,4 11,0 23,-1 34,1 10,3 21,4 30,12 11,5 22,9 33,10 8,3 15,6 19,13 l 19,17 c 4,6 7,13 13,18 4,7 10,12 18,15 2,7 8,15 12,19 -9,6 -5,20 1,27 12,2 6,16 12,22 8,5 13,12 15,22 0,5 5,10 -3,11 -6,7 -16,12 -16,22 -2,6 6,13 -3,11 -5,1 -8,13 -11,5 -8,-3 -10,-12 -17,-16 -9,-2 -18,2 -20,11 -3,7 -2,16 2,21 -10,3 -13,15 -14,24 z" + id="path82" /> + <path + d="m 704,714 c -9,1 -16,-7 -23,-11 l -20,-13 c -4,-8 -11,-11 -20,-13 -9,-4 -16,-11 -24,-16 -5,-5 -11,-8 -18,-11 -6,-6 -15,-8 -23,-4 -9,4 -17,9 -25,15 -6,1 -13,-8 -20,-9 5,-9 -5,-18 -3,-25 8,-7 6,-21 -1,-29 5,-8 13,-17 6,-27 0,-8 2,-13 10,-12 7,0 -1,-11 6,-12 5,-11 9,-22 9,-34 -1,-9 1,-16 10,-18 7,-5 11,-12 21,-10 11,1 16,-9 18,-19 3,-5 8,-18 13,-15 2,10 8,19 14,27 6,6 13,11 20,15 7,4 15,4 24,5 3,6 0,15 3,22 2,9 2,17 5,25 5,7 15,9 18,19 4,7 9,12 12,20 8,8 11,18 14,28 8,7 16,15 20,25 l 15,27 c 5,9 1,20 2,30 -1,12 -14,3 -22,5 -14,0 -27,7 -39,15 z" + id="path80" /> + <path + id="path4" + d="m 1356,1097 c -8,-7 -18,-6 -24,-15 l -23,-23 c -2,-7 -7,-14 -11,-19 -2,-5 -9,-11 0,-9 l 260,1 h 26 v 42 c -7,-6 -18,-5 -27,-8 -10,0 -22,2 -30,7 -5,9 -18,2 -26,4 -10,-2 -18,8 -27,7 -9,-6 -19,0 -28,2 -9,1 -16,3 -25,-1 -11,1 -21,-3 -31,-7 -10,-1 -18,4 -26,10 -3,3 -4,7 -8,9 z m -70,-71 c -7,-6 -13,-14 -18,-22 -7,-7 -11,-16 -20,-22 -7,-4 -17,-5 -24,0 -7,-1 -15,-6 -22,-8 -11,-4 -20,-12 -32,-10 -4,-8 -13,-11 -22,-10 -9,-1 -16,5 -25,6 l -58,5 c -9,0 -18,-1 -26,3 -10,-1 -22,2 -29,-5 -6,-6 -16,-6 -22,-11 -11,-7 -19,-19 -32,-25 12,-3 24,-6 33,-14 16,-11 25,-31 23,-51 0,-19 -8,-39 -26,-50 -8,-6 -18,-8 -28,-9 -11,-1 -14,-13 -15,-22 -6,-9 -12,-17 -16,-27 -4,-8 -8,-16 -9,-25 -4,-9 -12,-16 -17,-24 -7,-8 -15,-15 -25,-17 -5,-4 -4,-20 -16,-17 -6,-1 -16,4 -18,4 4,-9 7,-19 16,-24 6,-6 2,-17 10,-22 8,-6 11,-14 9,-24 -4,-8 0,-19 -1,-28 3,-14 10,-28 9,-42 4,-9 13,-14 16,-24 5,-10 10,-22 17,-32 9,-6 11,-17 18,-25 4,-10 16,-4 23,-10 6,-4 15,-5 18,-12 3,-6 4,-18 8,-21 v 160 c 0,12 -6,23 -13,31 -7,10 0,22 6,31 8,6 9,14 8,23 v 156 h 300 z" /> + <path + d="m 406,1433 c -10,-3 -20,-1 -30,-1 2,-6 13,-10 11,-19 2,-10 -7,-19 -16,-20 -8,0 -16,3 -23,-3 -6,-5 -17,5 -21,-1 -1,-9 -13,-12 -21,-11 -8,-2 -14,13 -18,2 -10,-2 -10,-15 -13,-21 1,-8 -1,-15 7,-19 2,-9 9,-16 8,-25 1,-9 6,-17 4,-27 5,-8 0,-17 -5,-24 -2,-9 -2,-19 -3,-29 -2,-11 1,-21 1,-32 -3,-7 -1,-17 -8,-23 -3,-4 -10,-11 -1,-11 11,1 21,-6 25,-16 3,-8 1,-18 -3,-25 l -11,-23 c -3,-6 -16,-15 -13,-20 12,-3 11,-19 13,-28 0,-12 7,-26 -4,-34 -2,-9 -11,-16 -20,-14 -1,-8 -7,-16 -14,-21 -1,-6 2,-22 -9,-28 -8,-4 -22,-13 -12,-22 7,-5 -2,-19 10,-18 6,-2 4,-14 10,-7 10,5 22,1 27,-8 5,-6 13,-7 18,-13 9,-7 2,-19 5,-25 9,-5 21,-9 21,-21 0,-9 -10,-12 -9,-21 -3,-9 -7,-18 -14,-25 -3,-4 -4,-19 2,-9 8,3 12,9 16,17 3,6 12,9 15,13 4,10 6,19 6,29 0,12 14,15 24,14 9,0 14,-9 14,-17 2,-10 -3,-19 -3,-29 0,-9 1,-19 -1,-28 -4,-7 -7,-16 -15,-19 10,-5 24,-5 32,-14 3,-9 15,-8 19,-16 6,-5 12,-9 19,-11 10,-5 12,-15 18,-24 6,-4 7,-19 12,-19 0,10 -2,19 -1,28 -1,9 4,18 8,24 6,6 7,15 16,19 8,2 16,8 26,8 10,1 -2,13 1,20 0,8 -4,16 -3,25 -1,10 6,20 15,24 10,3 17,15 28,10 7,-4 20,10 10,13 -10,3 -13,15 -10,24 5,7 -8,13 -4,22 3,10 -3,19 -4,29 -2,8 -5,15 -10,22 -1,8 2,17 -2,25 -4,5 -3,19 -9,19 -9,-2 -17,1 -24,3 -11,3 -20,9 -28,16 -7,2 -20,-1 -16,11 -2,13 0,27 -2,40 -1,11 1,22 8,30 3,7 9,12 15,17 6,6 13,10 21,12 9,2 14,6 13,16 3,10 -14,13 -12,24 -2,9 8,15 7,23 -8,7 3,20 -4,25 -9,3 -19,5 -26,11 -5,6 -13,8 -21,7 -9,5 0,20 -3,29 -3,11 -3,21 1,32 2,9 6,18 2,27 -9,5 0,25 -15,21 -9,-1 -19,8 -18,18 1,10 8,18 -1,26 -4,8 2,16 0,24 0,8 -2,17 -8,22 z" + id="path6" /> + <path + d="m 545,1225 c -7,-7 -22,-8 -28,-13 8,-6 1,-15 2,-23 7,-6 15,-14 11,-25 -2,-8 -12,-13 -4,-21 -2,-14 13,-12 21,-18 7,-5 15,-10 20,-18 7,-8 11,-18 13,-29 2,-16 -1,-32 -7,-47 -6,-8 -12,-16 -20,-22 -11,-4 -5,-12 -2,-20 1,-9 6,-16 9,-24 2,-7 -2,-15 2,-23 2,-9 3,-19 8,-27 9,-5 4,-18 8,-24 9,-6 6,-18 7,-26 -1,-11 2,-22 -4,-32 -7,-7 -16,-11 -25,-14 -7,-8 -17,-6 -25,-9 -4,-6 4,-16 7,-23 3,-7 1,-16 6,-23 4,-6 13,-7 15,-15 14,-12 16,-31 15,-48 0,-7 -6,-15 4,-16 8,-6 15,-2 21,4 7,7 19,9 24,17 3,11 15,9 23,13 l 30,19 c 8,4 12,12 21,13 10,2 17,-5 24,-9 10,-3 23,-17 32,-8 3,11 1,22 4,33 -1,8 -7,18 -1,27 7,6 4,17 3,25 -3,9 -2,18 4,25 5,7 6,19 5,27 -2,9 -1,18 4,25 1,12 11,19 22,20 8,1 17,7 6,12 -5,9 -19,4 -23,10 l -3,35 c -8,3 -15,8 -23,10 -9,5 -4,18 -14,23 l -19,22 c -4,9 -18,6 -20,18 0,11 -9,18 -18,20 -10,2 -22,2 -28,11 l -12,20 c -3,9 2,19 -3,28 -3,8 -2,19 -8,25 -9,6 -5,18 -6,27 -1,9 -3,19 -7,27 -6,7 -16,10 -25,11 -10,2 -22,-2 -31,6 -4,2 -10,4 -15,4 z" + id="path8" /> + <path + d="m 832,1302 c -12,2 -15,-11 -22,-18 -9,-7 -17,-15 -28,-18 -7,-3 -15,-4 -23,-5 -13,-1 -27,2 -39,7 -7,0 -13,15 -16,3 -7,-6 -16,-8 -22,-16 -5,-5 -6,-14 -13,-17 -9,-2 -18,-9 -22,-17 -2,-8 -5,-15 0,-23 2,-7 2,-16 9,-21 5,-9 1,-20 5,-30 2,-10 4,-20 8,-30 8,-5 2,-18 10,-21 11,-5 24,-7 32,-17 5,-8 19,-7 21,-17 0,-11 12,-17 17,-25 5,-7 12,-12 16,-20 5,-2 11,-5 14,-8 l 18,20 c 12,13 30,17 47,16 8,0 16,-4 24,-6 8,-5 17,-12 23,-20 6,-6 7,-16 12,-23 1,-14 3,-30 -4,-43 -4,-7 -7,-15 -14,-20 -5,-5 -12,-10 -19,-12 -7,-7 -20,-3 -27,-8 -8,-11 -19,-21 -32,-23 -11,-3 1,-20 -10,-25 -4,-6 -3,-17 -3,-24 6,-8 4,-19 -3,-26 -4,-9 -5,-22 0,-31 1,-10 -9,-15 -7,-26 -1,-4 -2,-19 3,-9 2,13 14,5 22,8 13,2 27,1 38,-5 9,-5 14,-15 23,-19 10,-6 12,11 16,17 8,7 9,19 15,28 6,8 3,20 11,27 5,3 9,10 1,11 -6,9 -23,-1 -19,13 l -4,33 c -1,19 8,39 24,51 3,3 11,5 8,12 0,9 -1,18 6,25 7,5 10,13 20,16 7,3 15,8 21,13 6,6 13,13 8,22 -5,8 -8,16 -10,26 -4,8 -13,15 -11,25 0,9 -14,3 -15,13 -4,10 -17,9 -20,19 -2,9 -5,21 -1,30 8,3 9,17 -1,17 -8,5 -9,21 1,23 4,2 7,7 13,7 7,4 6,17 -2,18 -7,5 -10,15 -11,22 -8,4 -12,12 -18,16 -6,7 -3,18 -10,24 -4,9 -9,17 -18,21 -10,7 -3,20 -10,28 -5,7 -15,0 -21,5 -4,2 -6,6 -11,7 z" + id="path10" /> + <path + d="m 1078,1267 c -9,0 -14,-7 -17,-14 -7,-6 -17,-11 -27,-11 -7,-3 -11,-10 -17,-15 -7,-6 -13,-15 -23,-14 -6,1 -14,4 -16,-4 -5,-3 -7,-11 -13,-13 -2,-9 -11,-14 -12,-22 v -16 c -6,-5 -11,-11 -19,-14 -6,-3 8,-2 5,-9 1,-10 3,-22 -5,-30 -4,-9 3,-18 11,-22 9,-3 9,-14 19,-15 9,-5 4,-18 10,-25 8,-5 6,-15 9,-22 6,-6 5,-16 11,-21 4,-8 14,-1 21,-2 l 40,3 c 9,-3 18,-4 28,-6 l 50,-4 c 8,2 17,5 25,3 8,-1 10,-11 17,-10 7,5 16,10 25,10 8,6 19,9 29,6 11,-3 14,10 21,16 7,7 11,17 19,24 7,3 11,10 15,15 5,9 8,19 16,26 6,7 16,11 20,20 -8,2 -16,5 -24,5 -9,2 -19,-2 -25,5 -8,1 -13,7 -13,15 -3,10 -8,18 -13,26 -6,7 -13,15 -23,15 -12,1 -23,4 -32,11 l -28,16 c -7,9 -13,21 -24,26 -9,3 -17,8 -15,18 -3,12 -14,19 -24,22 -7,3 -13,10 -21,7 z" + id="path12" /> + <path + d="m 345,1803 c -7,-3 -16,0 -11,-12 0,-9 1,-20 -3,-29 -3,-6 -5,-13 -10,-18 -5,-7 -14,-10 -17,-17 -2,-11 -7,-21 -5,-32 9,-9 8,-23 17,-30 10,-4 8,-20 19,-22 l 22,1 c 8,-6 9,-17 15,-23 5,-8 14,-13 15,-22 -1,-8 -2,-19 6,-24 5,-12 18,-11 28,-17 14,-5 22,-17 30,-28 5,-9 8,-20 7,-30 0,-19 -5,-39 -19,-52 -8,-7 -8,-15 -6,-25 1,-9 3,-17 6,-26 -1,-9 1,-18 12,-20 8,-6 2,-18 9,-26 1,-8 10,-11 7,-20 8,5 16,10 26,12 14,2 30,1 43,-6 a 64,64 0 0 0 35,-53 c 1,-10 1,-21 -4,-30 -5,-12 16,-3 23,-10 8,-4 20,-7 28,-1 9,0 15,3 20,10 6,7 8,18 19,20 9,4 15,12 19,21 9,7 2,20 4,30 0,12 1,25 -5,36 -4,11 -2,24 -7,35 -6,3 -16,-2 -23,4 -10,2 -19,-3 -28,-6 -10,-1 -24,2 -25,14 1,11 -2,21 -3,31 1,10 -9,17 -6,27 4,8 4,20 -8,19 -8,2 -15,5 -22,10 -4,9 -19,3 -22,10 -1,18 -3,36 -1,53 2,9 6,16 12,23 5,7 12,13 19,17 8,1 14,6 8,14 -1,10 -5,17 -13,22 -8,6 -19,8 -25,16 -8,5 -9,15 -10,24 -1,9 -11,14 -10,24 3,11 -7,13 -16,16 -7,3 -12,10 -15,18 -7,7 0,18 -3,25 -6,7 -4,17 -8,24 -9,5 -18,7 -27,9 -10,6 -21,6 -31,7 -10,3 -21,2 -31,5 -10,2 -20,-2 -30,1 -1,2 -3,1 -5,1 z" + id="path62" /> + <path + d="m 908,1553 c -10,-4 -4,-17 -8,-26 -1,-10 -6,-19 -12,-26 -1,-10 -6,-23 -18,-22 -10,-4 -14,10 -21,8 -4,-8 -3,-18 -8,-26 -9,-8 -22,-4 -30,-14 -9,-2 -17,-7 -25,-12 -4,-10 -21,-10 -20,-22 3,-6 14,-2 19,-8 9,-3 16,-8 22,-14 7,-9 14,-16 17,-26 2,-10 6,-18 5,-28 -1,-8 1,-14 10,-12 9,1 21,4 27,-5 8,-3 14,-8 20,-14 4,-8 10,-12 16,-17 6,-6 2,-15 6,-22 4,-7 8,-17 13,-22 12,-3 6,-19 15,-24 8,-1 16,-1 23,-7 7,1 12,19 23,15 11,-4 18,4 25,11 8,6 12,17 23,17 9,0 20,2 20,13 6,5 12,11 20,11 10,1 20,2 29,-3 -1,11 3,21 0,32 -1,11 0,23 3,34 1,14 -2,28 -1,42 v 100 c -2,10 -1,22 0,32 2,8 -12,4 -15,1 -10,-5 -16,7 -26,7 -12,-1 -25,2 -37,-4 -4,-7 -14,-2 -16,5 -10,0 -21,10 -29,0 -7,-2 -15,-1 -22,-1 -1,14 -16,7 -22,14 -7,6 -16,7 -24,11 -1,0 -1,3 -2,2 z" + id="path60" /> + <path + d="m 1153,1535 c -7,-2 -17,-14 -24,-5 -12,2 -14,-13 -15,-22 -1,-9 0,-18 2,-27 v -45 c -1,-10 -2,-20 -1,-30 2,-9 1,-17 -1,-25 1,-16 3,-33 0,-49 -2,-20 -1,-40 -1,-60 10,-3 15,-12 20,-19 4,-8 4,-20 15,-21 13,-6 19,-20 30,-29 9,-4 18,-9 26,-16 8,-7 20,-4 30,-7 9,-3 18,-11 24,-19 5,-9 11,-18 13,-29 2,-9 14,-10 21,-12 13,-2 27,1 38,-7 7,-9 13,5 23,2 8,1 15,-3 21,-8 6,-4 10,-16 17,-7 7,3 14,1 22,1 6,-1 9,8 16,5 9,2 16,-4 25,-3 8,-1 16,-3 25,-2 10,1 17,-6 27,-5 10,-1 21,1 30,-4 7,-6 16,-8 25,-6 11,-1 12,10 18,15 8,8 5,19 -4,24 -7,7 -16,11 -15,22 0,11 1,23 -4,33 -6,5 -15,7 -18,15 -5,7 -1,17 -1,26 -1,10 4,19 3,28 -3,13 -3,26 -5,39 -2,8 -8,19 -3,28 6,8 13,17 6,26 -2,12 6,22 11,32 -2,6 -10,5 -12,11 -7,1 -15,-12 -25,-6 -8,4 -17,-2 -25,0 -8,3 -17,4 -22,12 -10,0 -9,14 -19,14 -6,6 -16,2 -24,2 -7,3 -14,16 -23,8 -10,0 -18,6 -28,7 -8,3 -13,-11 -23,-5 -8,4 -18,0 -28,0 -11,-3 -18,7 -22,15 -10,-1 -17,6 -25,9 -5,6 -13,5 -15,13 -7,3 -18,-4 -21,7 -9,1 -13,13 -7,19 -5,5 -15,6 -18,14 -3,11 -2,22 -8,32 -3,8 -15,8 -23,6 -8,-1 -18,-4 -25,3 z" + id="path14" /> + <path + d="m 214,1790 c -10,-3 -17,-10 -28,-9 -10,2 -12,-11 -21,-15 -1,-7 -3,-16 -11,-18 -9,-2 -17,4 -23,-5 -8,-3 -15,-9 -24,-11 -7,-3 -11,-13 -16,-19 -8,-5 -5,-18 -15,-21 -5,-1 -16,-4 -8,-9 7,0 17,6 25,1 6,-8 15,-3 23,-5 9,-3 7,-15 9,-23 -3,-7 -5,-16 -10,-22 -7,-1 0,-14 -6,-17 6,-8 8,-19 17,-24 7,-2 11,-6 18,-2 9,3 13,-8 19,-8 12,4 17,-7 26,-10 6,-9 17,-5 25,-8 5,-2 7,-7 14,-7 -2,-8 4,-14 9,-19 7,-4 10,-14 10,-23 -7,-9 4,-15 9,-22 11,-2 6,-16 14,-21 8,-3 17,-9 17,-19 -1,-8 9,-11 14,-15 5,-6 14,-10 12,-18 -1,-8 12,-5 14,-13 7,-1 15,7 23,4 -1,11 13,16 8,27 -8,3 -14,14 -24,13 -6,-1 -10,0 -8,7 l -1,30 c 0,12 -1,25 5,36 6,13 17,24 30,31 4,5 22,3 11,9 -6,10 -4,22 -8,33 -5,5 -8,12 -17,8 -11,-1 -14,10 -19,17 -8,2 -13,8 -18,13 0,11 -13,14 -16,23 -4,8 -4,16 -11,23 -6,12 -4,25 -1,38 2,10 -15,3 -22,6 -9,2 -17,7 -24,12 -8,5 -22,1 -19,15 -1,9 2,19 -2,27 z" + id="path56" /> + <path + d="m 1274,1675 c -8,-5 -18,-5 -26,-9 -12,-3 -1,-15 -4,-24 3,-9 18,-11 15,-24 1,-11 -13,-15 -22,-14 -8,2 -17,8 -26,2 -10,-2 -24,5 -30,-6 -7,-5 -9,-17 -17,-24 -11,-3 4,-10 8,-13 10,-4 17,-12 26,-15 8,-4 19,-6 21,-17 6,-9 2,-21 6,-31 1,-5 13,-2 14,-10 7,-4 5,-14 6,-19 6,-6 20,3 22,-7 6,-2 3,-10 10,-10 8,-6 18,-10 29,-10 9,-1 6,-18 17,-13 10,1 19,1 28,-2 8,4 18,7 27,5 10,-1 18,-6 27,-3 9,-4 19,-6 27,-12 9,0 20,1 27,-6 7,-4 12,-10 18,-15 7,-4 14,-11 23,-5 9,0 18,-4 25,3 5,8 20,3 23,-5 5,-3 10,7 10,12 3,7 5,16 13,19 4,6 15,1 13,9 v 46 c -7,5 -15,10 -20,18 -6,7 -15,10 -22,16 -7,5 -12,13 -10,22 1,11 11,16 20,14 5,6 17,0 18,11 5,8 17,10 14,22 v 41 c -9,6 -17,13 -24,21 -7,6 -12,14 -17,21 -4,2 -12,13 -15,5 -6,-6 -6,-15 -11,-22 -7,-5 -18,-7 -27,-3 -10,1 -10,12 -12,20 1,7 1,12 -7,10 h -120 c -7,1 -14,-3 -21,-3 -8,-2 -15,-8 -24,-4 -6,6 -15,1 -22,6 z" + id="path54" /> + <path + d="m 728,1692 c -10,-2 -16,-12 -23,-19 -8,-4 -15,-9 -24,-10 -9,4 -16,-4 -23,-9 -6,-6 -10,-14 -9,-23 1,-10 -3,-19 -5,-28 l -5,-29 c 6,-7 7,-17 10,-26 2,-10 -4,-19 -5,-29 -2,-9 -10,-13 -15,-20 -5,-8 -21,-8 -18,-19 0,-8 8,-15 5,-25 -4,-7 -4,-20 4,-24 7,-5 11,-10 21,-7 7,3 16,6 24,2 8,-2 16,-4 21,-9 10,-8 10,-23 10,-34 7,8 15,14 23,19 8,3 15,5 21,9 11,-1 0,17 10,19 0,11 16,8 18,17 3,5 9,3 11,10 7,2 12,12 21,8 10,2 5,16 13,22 4,7 17,0 15,11 4,11 18,10 27,10 6,0 12,-5 14,-5 -2,8 5,15 9,20 1,10 5,19 3,30 -9,2 -7,14 -17,16 -4,11 -16,13 -26,14 -6,5 -15,1 -21,6 -8,4 -19,-2 -29,-1 -9,-1 -22,-2 -21,11 -3,11 -3,21 -1,32 0,11 -6,23 -2,34 1,8 3,23 -10,21 -8,4 -17,5 -26,6 z" + id="path16" /> + <path + d="m 986,1813 c -8,-9 -23,-1 -28,-12 -5,-7 -10,-12 -11,-20 -6,-5 -6,-17 -17,-17 -8,-7 -18,-11 -27,-17 -10,-6 -16,4 -26,2 -12,0 -11,13 -14,20 -6,4 -13,12 -20,11 -6,-9 -19,-9 -24,-19 -11,-5 -13,-17 -15,-27 -5,-7 -10,-14 -18,-17 -3,-7 -8,-15 -8,-23 0,-16 -1,-32 1,-48 3,-14 0,-28 2,-41 4,-4 16,0 22,-1 8,-1 17,2 25,-2 5,-4 14,0 18,-7 12,0 24,-4 31,-14 5,9 16,8 25,6 11,-2 7,-16 14,-20 6,-3 6,-9 13,-9 10,-6 19,-9 30,-10 6,-2 9,-14 15,-7 6,11 22,3 31,0 10,1 17,-8 27,-2 9,1 19,-1 29,-1 7,4 14,-1 18,-4 7,8 15,0 23,3 8,-1 14,8 23,6 8,-1 15,1 22,4 9,2 18,1 25,-4 4,2 -8,6 -11,8 -10,5 -19,13 -20,24 -2,9 5,11 12,13 7,7 9,18 16,24 6,5 10,12 19,9 9,-3 17,-1 26,1 9,0 19,1 26,-4 7,4 -9,7 -9,13 l -26,10 c -11,-2 -19,6 -29,8 -17,3 -35,-2 -51,6 -9,3 -11,15 -22,13 -9,4 -17,12 -23,20 -7,9 -16,16 -24,24 -4,7 -11,14 -11,23 1,9 -1,18 -7,25 -8,5 -10,16 -20,14 -7,6 -9,16 -16,23 -6,5 -12,8 -16,16 z" + id="path18" /> + <path + d="m 1318,2055 c -9,1 -5,-12 -14,-14 -7,-10 -17,1 -25,-2 -8,3 -4,-11 -13,-10 -9,2 -23,-2 -28,7 0,6 -5,-1 -9,-1 9,-9 -1,-20 2,-29 0,-9 2,-20 -4,-28 -2,-10 -15,-11 -24,-13 -5,-4 -6,-13 -15,-12 -9,-3 -18,-4 -26,-9 -7,-6 -17,9 -17,-2 -2,-7 -6,-14 -5,-22 0,-7 -7,-13 -14,-14 -11,0 -15,-12 -25,-14 -10,1 -17,-5 -24,-10 -10,-2 -20,1 -28,-6 -9,-4 -16,-8 -23,-16 -5,-7 -10,-16 -18,-19 1,-8 -7,-10 -12,-11 1,-10 10,-16 17,-22 9,-5 8,-18 18,-21 9,-2 13,-12 19,-18 7,-8 11,-20 9,-30 3,-8 9,-13 13,-20 7,-5 12,-12 19,-19 6,-8 13,-17 24,-19 11,0 12,-13 23,-15 9,-5 18,1 27,-1 8,-3 18,-2 26,-6 9,-6 22,-2 31,-8 5,-3 10,-2 4,3 -4,9 3,19 11,24 7,7 19,4 26,10 4,6 1,16 2,23 0,21 0,42 2,64 4,11 18,3 26,4 12,-1 24,3 36,3 6,5 20,-3 17,9 v 23 c -7,-2 -10,-11 -19,-11 -8,0 -15,4 -20,8 -9,0 -18,3 -25,8 -11,6 -24,0 -36,4 -14,5 -6,20 -7,31 0,17 -5,34 -2,51 0,11 -2,22 2,33 4,9 13,13 15,23 5,6 18,-1 20,9 2,11 14,11 22,14 6,6 3,14 -1,20 -3,9 1,18 9,22 4,6 5,14 12,18 6,2 3,6 2,11 z" + id="path48" /> + <path + d="m 912,1993 c -9,-3 -10,-17 -22,-13 -8,-2 -17,8 -23,-2 -7,-5 -19,-4 -25,2 -7,13 -16,-4 -24,-7 -10,-3 -20,1 -29,1 -6,-5 -11,-8 -16,-14 -9,-4 -20,-2 -30,-2 -11,0 -20,8 -31,9 -11,4 -22,10 -33,12 -5,-9 -16,-6 -20,-16 -7,-4 -13,-7 -11,-16 v -31 h -58 c -7,-6 -17,-12 -27,-11 -9,-3 -9,14 -16,6 -8,-3 -17,-4 -21,-11 -8,-5 -18,-2 -27,-5 -9,-1 -15,-8 -22,-13 -8,-4 -10,-17 -20,-22 -8,-2 -11,-11 -20,-10 -10,0 -19,-5 -29,-2 -7,1 -18,0 -16,11 2,9 -7,15 -14,8 -9,-4 -19,-5 -27,0 -8,-1 -19,-1 -24,-8 -6,-7 -17,-7 -25,-4 l -24,-7 c -5,-1 -7,-10 1,-7 9,3 16,-4 25,-7 7,-4 12,-11 19,-14 11,0 21,5 33,2 8,-3 17,1 25,-1 l 24,-3 c 8,-4 18,0 26,-4 11,-1 20,-7 31,-8 9,-4 22,-1 28,-11 8,-7 3,-18 6,-27 5,-9 1,-19 5,-27 3,-12 17,-9 23,-17 5,-8 17,-8 22,-15 3,-8 6,-20 -3,-26 -4,-5 -1,-17 6,-20 6,-8 18,-8 25,-16 9,-7 12,-16 15,-26 4,-6 5,-14 8,-20 10,-2 21,-4 28,-12 5,4 2,16 4,23 3,8 8,16 6,25 -3,9 4,15 7,23 4,9 15,10 21,17 9,5 20,-1 28,6 9,7 17,16 27,22 10,4 20,0 30,-1 7,0 17,-9 16,2 3,8 6,16 11,23 8,5 17,11 18,21 0,13 11,19 19,27 8,6 17,10 25,17 7,4 20,5 24,-5 9,-4 20,-11 18,-23 4,-5 15,-3 19,-4 5,8 16,7 22,14 9,2 11,12 16,18 0,8 9,13 12,21 6,9 19,4 26,9 12,2 3,21 17,20 6,2 2,16 13,14 7,2 6,15 15,17 5,8 15,10 23,15 11,5 -8,13 -10,20 -4,9 -13,14 -19,21 -4,4 -8,9 -14,8 h -15 c -6,5 -11,11 -19,14 -3,9 -13,14 -14,24 1,4 1,13 -5,6 -10,-7 -23,0 -31,7 -1,1 -2,4 -3,3 z" + id="path20" /> + <path + d="m 1255,2451 c -8,-5 -11,-13 -14,-21 -7,-5 -10,-13 -18,-18 -3,-10 -15,-8 -24,-8 -7,3 -15,12 -22,3 -3,-5 7,-13 10,-19 4,-7 9,-12 12,-20 5,-8 7,-17 13,-23 l 16,-24 c 3,-6 7,-11 13,-17 4,-6 5,-14 11,-19 4,-8 5,-19 2,-28 -7,-6 -18,1 -21,-10 -7,-5 -11,-12 -18,-15 -8,-2 -16,3 -21,-5 -7,-6 -17,0 -21,-9 -7,-6 -13,-14 -23,-15 -3,-11 -16,-7 -24,-7 -10,1 -14,11 -24,12 -5,7 -18,5 -24,6 -6,-7 -15,-8 -21,-15 -9,-2 -20,-1 -27,-8 -9,-4 -17,3 -24,7 -6,5 -6,14 -15,17 -10,-2 -17,6 -24,10 -8,-3 -12,7 -19,4 -5,-4 -15,-2 -22,-3 -8,1 -17,-7 -26,-2 -6,6 -18,1 -25,7 -4,-10 -15,-12 -23,-14 -8,-8 5,-16 2,-25 v -32 l -17,-18 c -8,-6 -17,3 -24,4 -6,1 -5,-8 -11,-8 4,-9 3,-20 -2,-28 -3,-10 -7,-19 -14,-26 -6,-9 -16,-11 -25,-15 -7,0 -9,-1 -11,-8 -4,-9 -18,-4 -21,-14 -3,-8 -13,-4 -20,-7 -12,1 -15,-11 -14,-20 -3,-7 -9,-12 -9,-21 -6,-10 12,-7 17,-12 9,-3 17,-8 27,-9 9,-5 18,-6 28,-7 8,0 9,10 17,12 6,8 18,6 27,5 10,-7 14,7 22,10 8,1 19,3 26,-2 3,-7 8,-8 11,-1 8,5 18,4 26,0 7,-3 8,11 16,11 7,4 18,5 23,-3 7,-11 16,-2 26,-3 9,1 16,-9 14,-17 0,-8 9,-12 12,-19 8,-4 14,-15 24,-9 11,0 19,-10 27,-17 6,-8 16,-12 19,-22 7,-6 12,-19 23,-19 6,5 13,11 22,9 9,0 14,13 24,13 13,0 1,14 10,20 5,7 4,21 15,22 8,2 15,-4 22,1 9,3 22,2 26,13 4,10 18,2 22,11 9,7 2,16 0,25 1,8 8,13 2,20 -4,11 5,17 13,21 4,9 18,9 24,3 3,-5 1,-13 8,-10 -2,12 12,10 20,11 5,2 11,0 15,-2 6,6 5,17 16,15 8,2 19,0 15,11 1,9 -7,16 -8,25 l -9,51 c -3,15 -4,29 -8,44 -1,14 -3,28 -8,41 -5,7 -4,17 -5,26 -2,16 -5,33 -9,49 -2,17 -3,34 -8,50 l -7,33 c -1,8 -4,16 -4,24 z" + id="path44" /> + <path + d="m 3,1848 v -68 c 9,-2 18,-5 27,-5 10,0 16,-12 24,-11 12,5 15,-9 23,-13 6,0 7,-14 11,-5 9,6 20,9 30,15 10,3 8,14 15,21 6,6 17,0 23,5 6,8 13,15 24,15 10,-1 15,7 25,9 10,1 18,4 22,14 6,8 15,12 24,17 7,7 3,21 14,25 l 29,8 c 9,0 18,-3 24,6 9,2 17,6 27,7 9,2 18,-1 27,-1 8,5 18,5 27,2 10,0 15,-10 13,-19 10,-5 21,0 30,6 8,4 11,12 16,18 l 21,17 c 4,2 16,6 6,5 H 3 Z" + id="path38" /> + <path + id="path22" + d="m 1338,1764 c -8,-4 -17,-3 -26,-4 -8,0 -16,-5 -25,-2 0,-21 -2,-42 -1,-63 11,-3 22,-2 32,-7 9,4 19,3 28,6 v 69 z m -66,715 c 3,-9 4,-19 5,-28 2,-14 3,-28 8,-41 3,-13 2,-26 7,-39 3,-13 5,-27 6,-42 2,-11 3,-23 7,-34 3,-9 4,-19 4,-29 2,-12 7,-22 8,-34 3,-15 3,-31 7,-46 2,-12 4,-25 8,-37 0,-10 2,-20 5,-29 0,-9 4,-15 9,-23 v 382 z m 74,-417 c -5,-9 -4,-19 -9,-28 -7,-6 -12,-15 -17,-23 -1,-11 5,-23 -2,-34 -3,-8 -11,-12 -19,-14 -8,-5 -13,-13 -21,-17 -9,-3 -14,-12 -20,-18 l 1,-81 c 2,-10 18,-2 25,-6 10,-5 20,-7 31,-9 6,-5 11,-7 17,-1 5,4 16,4 14,13 z" /> + <path + d="M 1014,2479 V 2259 H 648 v -277 c 7,8 18,11 19,23 0,8 5,16 7,22 -4,9 5,17 9,25 5,6 14,7 21,9 10,1 16,10 26,13 7,5 10,17 21,17 8,1 16,3 21,10 6,9 12,21 11,31 -4,10 -3,20 7,25 6,10 18,11 28,10 8,-4 16,-1 16,9 0,8 2,16 -2,23 -6,11 -1,24 4,34 6,8 19,3 23,13 6,7 17,5 26,4 7,-4 15,5 22,-1 9,-4 22,-3 32,0 11,6 26,3 37,-3 9,-1 14,-12 25,-10 10,-1 15,-11 20,-18 5,-6 16,1 24,1 4,7 11,10 19,12 7,9 19,4 29,4 8,0 17,-1 23,-7 9,-1 14,-11 21,-8 9,3 14,9 21,14 5,6 8,15 17,17 8,-2 15,-2 22,3 8,-1 17,2 21,10 2,8 19,9 10,17 -2,9 -9,16 -14,23 l -16,25 c -9,8 -12,21 -17,31 -5,7 -12,14 -16,22 l -14,20 c -4,9 2,18 10,23 9,3 17,7 26,8 9,1 17,-13 22,-1 9,5 14,14 18,24 1,4 16,10 5,8 -5,-1 -10,8 -10,-2 -2,-11 -14,-12 -22,-11 -11,-2 -22,0 -32,-3 -9,1 -19,4 -28,7 -6,6 -12,14 -16,21 -10,6 -26,2 -38,3 z" + id="path24" /> +</svg> diff --git a/tools/areas.xcf b/tools/areas.xcf Binary files differnew file mode 100644 index 0000000..1833a5c --- /dev/null +++ b/tools/areas.xcf diff --git a/tools/boxes.svg b/tools/boxes.svg new file mode 100644 index 0000000..80c34e5 --- /dev/null +++ b/tools/boxes.svg @@ -0,0 +1,785 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1650" + height="2550" + viewBox="0 0 1650 2550" + version="1.1" + id="svg4" + sodipodi:docname="boxes.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)"> + <metadata + id="metadata10"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs8" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview6" + showgrid="true" + inkscape:zoom="0.53295475" + inkscape:cx="864.23733" + inkscape:cy="1174.1586" + inkscape:current-layer="svg4" + inkscape:document-rotation="0"> + <inkscape:grid + type="xygrid" + id="grid12" /> + </sodipodi:namedview> + <image + sodipodi:absref="/home/tor/src/rally/public/andean-abyss/tools/map75.png" + xlink:href="map75.png" + id="image2" + style="display:inline;image-rendering:pixelated" + height="2550" + width="1650" + y="0" + x="0" + sodipodi:insensitive="true" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.493691;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect840" + width="187" + height="525" + x="21" + y="85" + ry="0.60471976" + inkscape:label="Government Troops & Police" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.506976;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect842" + width="207" + height="149" + x="224" + y="461" + ry="0.60640913" + inkscape:label="Government Capabilities" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.274073;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect844" + width="177" + height="54.999989" + x="287" + y="371" + ry="0.2798028" + inkscape:label="Government Bases" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.48446;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect846" + width="75.998398" + height="168" + x="240.00162" + y="129" + ry="0.60329688" + inkscape:label="President Samper" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.524685;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect848" + width="78" + height="168" + x="322" + y="129" + ry="0.60329688" + inkscape:label="President Pastrana" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.517915;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect850" + width="76" + height="168" + x="406" + y="129" + ry="0.60329688" + inkscape:label="President Uribe" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect14" + width="361" + height="303" + x="1215" + y="83" + ry="0.610479" + inkscape:label="FARC Guerrillas" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.486173;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect852" + width="350" + height="207.99992" + x="21" + y="2266" + ry="0.57717991" + inkscape:label="AUC Guerrillas" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.334478;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect854" + width="358" + height="55.000072" + x="447" + y="2386" + ry="0.33576393" + inkscape:label="AUC Bases" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.331207;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect856" + width="543" + height="56.000008" + x="445" + y="2295" + ry="0.31078935" + inkscape:label="FARC Bases" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.348075;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect858" + width="145" + height="125" + x="1391" + y="1728" + ry="0.4488816" + inkscape:label="Shipments" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect860" + width="230" + height="200" + x="1350" + y="1870" + ry="0.610479" + inkscape:label="Cartels Guerrillas" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.398203;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect862" + width="183" + height="305" + x="1373" + y="2117" + ry="0.46549022" + inkscape:label="Cartels Bases" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.514317;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect866" + width="102.99951" + height="225.99954" + x="1113" + y="439.00049" + ry="0.62712717" + inkscape:label="Eligible Factions" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.511935;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect882" + width="103.00004" + height="229" + x="1458" + y="439" + ry="0.62133193" + inkscape:label="Ineligible Factions" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.507445;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect868" + width="103" + height="45" + x="1113" + y="666" + ry="0.610479" + inkscape:label="Pass" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.517845;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect870" + width="73" + height="72" + x="1262" + y="439" + ry="0.62792122" + inkscape:label="SOP A1" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.517845;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect872" + width="73" + height="72" + x="1337" + y="439" + ry="0.62792122" + inkscape:label="SOP A2" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.521429;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect874" + width="73" + height="73" + x="1262" + y="517" + ry="0.6366424" + inkscape:label="SOP B1" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.521429;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect876" + width="73" + height="73" + x="1337" + y="517" + ry="0.6366424" + inkscape:label="SOP B2" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.500286;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect878" + width="73" + height="72" + x="1262" + y="596" + ry="0.62792128" + inkscape:label="SOP C1" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.537393;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect880" + width="73" + height="72" + x="1337" + y="596" + ry="0.67622286" + inkscape:label="SOP C2" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.475;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect884" + width="57" + height="57" + x="1025" + y="662" + ry="0.57995504" + inkscape:label="Prop Card marker" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.508231;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect886" + width="447" + height="72" + x="1113" + y="719" + ry="0.62792122" + inkscape:label="Propaganda Track" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.494975;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect888" + width="58" + height="49" + x="19" + y="16" + ry="0.66474378" + inkscape:label="S0" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.494975;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect890" + width="50" + height="49" + x="79" + y="16" + ry="0.5982694" + inkscape:label="S1" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect892" + width="50" + height="50" + x="1589" + y="16" + ry="0.610479" + inkscape:label="S30" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect894" + width="50" + height="50" + x="1589" + y="2486" + ry="0.610479" + inkscape:label="S77" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect896" + width="50" + height="50" + x="444" + y="2486" + ry="0.610479" + inkscape:label="S99" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.498627;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect898" + width="196" + height="274" + x="220" + y="1935" + ry="0.61952311" + inkscape:label="Momentum 2" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.501643;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect864" + width="197" + height="274" + x="14" + y="1935" + ry="0.60825908" + inkscape:label="Momentum 1" + sodipodi:insensitive="true" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect935" + width="120" + height="119" + x="622" + y="376" + ry="0.610479" + inkscape:label="Santa Marta" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.460258;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect935-3" + width="110.00052" + height="110.0005" + x="444.99948" + y="456.99948" + ry="0.56431085" + inkscape:label="Cartagena" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.460256;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" + id="rect935-3-3" + width="110.00003" + height="110.00002" + x="459" + y="653" + ry="0.56430835" + inkscape:label="Sincelejo" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect62" + width="126" + height="125" + x="450" + y="1003" + ry="0.56430799" + inkscape:label="Medellin" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect64" + width="120" + height="119" + x="447" + y="1219" + ry="0.56430799" + inkscape:label="Ibague" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect66" + width="126" + height="126" + x="328" + y="1434" + ry="0.56430799" + inkscape:label="Cali" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect68" + width="110" + height="110" + x="219" + y="1728" + ry="0.56430799" + inkscape:label="Pasto" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect70" + width="110" + height="109" + x="534" + y="1488" + ry="0.56430799" + inkscape:label="Neiva" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect72" + width="141" + height="140" + x="684" + y="1266" + ry="0.56430799" + inkscape:label="Bogota" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect74" + width="120" + height="120" + x="779" + y="920" + ry="0.56430799" + inkscape:label="Bucaramanga" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect76" + width="110" + height="110" + x="896" + y="809" + ry="0.56430799" + inkscape:label="Cucuta" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect91" + width="50" + height="50" + x="1384" + y="1517" + ry="0.610479" + inkscape:label="Guainia" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect93" + width="50" + height="50" + x="1142" + y="1760" + ry="0.610479" + inkscape:label="Vaupes" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect95" + width="50" + height="51" + x="1060" + y="2039" + ry="0.610479" + inkscape:label="Amazonas" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect97" + width="50" + height="50" + x="1315" + y="1249" + ry="0.610479" + inkscape:label="Vichada" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect107" + width="49" + height="49" + x="69" + y="1767" + ry="0.610479" + inkscape:label="Ecuador" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect105" + width="51" + height="51" + x="162" + y="661" + ry="0.610479" + inkscape:label="Panama" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect111" + width="27" + height="28" + x="789" + y="519" + ry="0.610479" + inkscape:label="Cesar" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect113" + width="27" + height="27" + x="632" + y="629" + ry="0.610479" + inkscape:label="Atlantico" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect115" + width="28" + height="27" + x="652" + y="897" + ry="0.610479" + inkscape:label="Antioquia" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect117" + width="28" + height="27" + x="359" + y="1026" + ry="0.610479" + inkscape:label="Choco" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect119" + width="27" + height="27" + x="199" + y="1629" + ry="0.610479" + inkscape:label="Narino" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect121" + width="28" + height="27" + x="443" + y="1615" + ry="0.610479" + inkscape:label="Huila" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect123" + width="28" + height="28" + x="804" + y="1163" + ry="0.610479" + inkscape:label="Santander" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect125" + width="27" + height="27" + x="1079" + y="1114" + ry="0.610479" + inkscape:label="Arauca" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect127" + width="28" + height="28" + x="959" + y="1396" + ry="0.610479" + inkscape:label="Meta East" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect129" + width="27" + height="28" + x="707" + y="1525" + ry="0.610479" + inkscape:label="Meta West" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect133" + width="28" + height="28" + x="962" + y="1655" + ry="0.610479" + inkscape:label="Guaviare" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect135" + width="27" + height="28" + x="666" + y="1812" + ry="0.610479" + inkscape:label="Putumayo" + sodipodi:insensitive="true" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.493054;stroke-miterlimit:10" + id="rect193" + width="29.094727" + height="29.419678" + x="626.90527" + y="681.58032" + ry="0.61384743" + inkscape:label="Sincelejo / Ayacucho" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.483021;stroke-miterlimit:10" + id="rect191" + width="28.696798" + height="27.683743" + x="979.30322" + y="963.31628" + ry="0.58933133" + inkscape:label="Cucuta / Arauca" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.512471;stroke-miterlimit:10" + id="rect189" + width="31.000025" + height="30.223455" + x="610" + y="1208.7765" + ry="0.64194202" + inkscape:label="Bucaramanga / Bogota / Ibague" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.490613;stroke-miterlimit:10" + id="rect187" + width="28.451546" + height="29.000051" + x="872.54846" + y="1262" + ry="0.626275" + inkscape:label="Bogota / Yopal" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect185" + width="29.468042" + height="29.083158" + x="597.37769" + y="1399.1935" + ry="0.610479" + inkscape:label="Bogota / Neiva" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.51607;stroke-miterlimit:10" + id="rect183" + width="28.666931" + height="28.913555" + x="811.10846" + y="1459" + ry="0.65035242" + inkscape:label="Bogota / San Jose" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.463051;stroke-miterlimit:10" + id="rect181" + width="28.999987" + height="28.000008" + x="516" + y="1684" + ry="0.60942155" + inkscape:label="Neiva / Pasto" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.474148;stroke-miterlimit:10" + id="rect179" + width="28.999996" + height="28.000023" + x="132" + y="1752" + ry="0.56254035" + inkscape:label="Pasto / Tumaco" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.464882;stroke-miterlimit:10" + id="rect177" + width="28.005878" + height="28.176392" + x="333.99411" + y="1610.8236" + ry="0.5722847" + inkscape:label="Cali / Pasto" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.476266;stroke-miterlimit:10" + id="rect175" + width="28.999994" + height="27.677717" + x="354" + y="1398.3223" + ry="0.610479" + inkscape:label="Cali / Buenaventura" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.523543;stroke-miterlimit:10" + id="rect173" + width="29.433331" + height="29.000032" + x="420.56668" + y="1347" + ry="0.64658195" + inkscape:label="Ibague / Cali" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.480959;stroke-miterlimit:10" + id="rect171" + width="30.000021" + height="30.000057" + x="496" + y="1154" + ry="0.59008443" + inkscape:label="Medellin / Ibague" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.50111;stroke-miterlimit:10" + id="rect169" + width="29" + height="28.000017" + x="500" + y="599" + ry="0.64088982" + inkscape:label="Cartagena / Sincelejo" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.5;stroke-miterlimit:10" + id="rect167" + width="28.037897" + height="26.637428" + x="549.11493" + y="862.35321" + ry="0.610479" + inkscape:label="Sincelejo / Medellin" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.529155;stroke-miterlimit:10" + id="rect165" + width="30.782864" + height="29.690521" + x="762" + y="815.30945" + ry="0.6642915" + inkscape:label="Bucaramanga / Ayacucho" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.561292;stroke-miterlimit:10" + id="rect163" + width="29.000031" + height="29.000002" + x="858" + y="693" + ry="0.66435766" + inkscape:label="Cucuta / Ayacucho" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.497694;stroke-miterlimit:10" + id="rect161" + width="29.999989" + height="30.00001" + x="731" + y="586" + ry="0.64581126" + inkscape:label="Santa Marta / Ayacucho" + clip-path="none" /> + <rect + style="fill:#000000;fill-opacity:0.25098;stroke:#fe0000;stroke-width:0.533544;stroke-miterlimit:10" + id="rect159" + width="29.000029" + height="29.000004" + x="573" + y="452" + ry="0.6797027" + inkscape:label="Santa Marta / Cartagena" + clip-path="none" /> +</svg> diff --git a/tools/cards.txt b/tools/cards.txt new file mode 100644 index 0000000..67631f2 --- /dev/null +++ b/tools/cards.txt @@ -0,0 +1,101 @@ +GFAC +1. 1st Division +2. Ospina & Mora +3. Tapias +GFCA +4. Caño Limón - Coveñas +5. Occidental & Ecopetrol +6. Oil Spill +GAFC +7. 7th Special Forces +8. Fuerza Aérea Colombiana +9. High Mountain Battalions +GACF +10. Blackhawks +11. National Defense & Security Council +12. Plan Colombia +GCFA +13. Plan Meteoro +14. Tres Esquinas +15. War Tax +GCAF +16. Coffee Prices +17. Madrid Donors +18. NSPD-18 +FGAC +19. General Offensive +20. Mono Jojoy +21. Raúl Reyes +FGCA +22. Alfonso Cano +23. DoD Contractors +24. Operación Jaque +FAGC +25. Ejército de Liberación Nacional +26. Gramaje +27. Misil Antiaéreo +FACG +28. Hugo Chávez +29. Kill Zone +30. Peace Commission +FCGA +31. Betancourt +32. Secuestrados +33. Sucumbíos +FCAG +34. Airdropped AKs +35. Crop Substitution +36. Zona de Convivencia +AGFC +37. Former Military +38. National Coordination Center +39. Soldados campesinos +AGCF +40. Demobilization +41. Mancuso +42. Senado & Cámara +AFGC +43. Calima Front +44. Colombia Nueva +45. Los Derechos Humanos +AFCG +46. Limpieza +47. Pinto & del Rosario +48. Unión Sindical Obrera +ACGF +49. Bloques +50. Carabineros +51. Pipeline Repairs +ACFG +52. Castaño +53. Criminal Air Force +54. Deserters & Defectors +CGFA +55. DEA Agents +56. Drogas La Rebaja +57. Op Millennium +CGAF +58. General Serrano +59. Salcedo +60. The Chess Player +CFGA +61. Air Bridge +62. Amazonía +63. Narco-War +CFAG +64. Cocaine Labs +65. Poppies +66. Tingo María +CAGF +67. Mexican Traffickers +68. Narco-Subs +69. Riverines & Fast Boats +CAFG +70. Ayahuasca Tourism +71. Darién +72. Sicarios +---- +73. Propaganda! +74. Propaganda! +75. Propaganda! +76. Propaganda! diff --git a/tools/cylinder_icon_auc.svg b/tools/cylinder_icon_auc.svg new file mode 100644 index 0000000..6676cbd --- /dev/null +++ b/tools/cylinder_icon_auc.svg @@ -0,0 +1 @@ +<path fill="#0072bc" stroke="#fff" stroke-width="2" d="m20.017 7.656-1.882 3.85-6.052.015H6.031l1.313.656c2.829 1.385 7.743 3.763 8.064 3.88.175.072.321.174.321.247 0 .073-.831 1.823-1.837 3.88-1.007 2.07-1.809 3.776-1.78 3.806.015.029.773-.307 1.648-.73.89-.437 3.092-1.502 4.915-2.391l3.296-1.604.714.35c.38.19 1.882.918 3.325 1.604 1.444.7 3.296 1.59 4.127 1.998.817.408 1.546.7 1.59.641.058-.043-.7-1.75-1.692-3.777-.977-2.012-1.764-3.719-1.764-3.777 0-.058.437-.306.991-.569.86-.408 5.994-2.887 7.978-3.85l.729-.364H25.85l-1.881-3.865C22.948 5.527 22.059 3.792 22 3.792c-.044 0-.933 1.735-1.983 3.864z"/> diff --git a/tools/cylinder_icon_auc.svg.bak b/tools/cylinder_icon_auc.svg.bak new file mode 100644 index 0000000..d52d98f --- /dev/null +++ b/tools/cylinder_icon_auc.svg.bak @@ -0,0 +1,22 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="44" height="30" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(1,0)scale(0.145833)"> +<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1304 1395 l-129 -264 -415 -1 -415 0 90 -45 c194 -95 531 -258 553 +-266 12 -5 22 -12 22 -17 0 -5 -57 -125 -126 -266 -69 -142 -124 -259 -122 +-261 1 -2 53 21 113 50 61 30 212 103 337 164 l226 110 49 -24 c26 -13 129 +-63 228 -110 99 -48 226 -109 283 -137 56 -28 106 -48 109 -44 4 3 -48 120 +-116 259 -67 138 -121 255 -121 259 0 4 30 21 68 39 59 28 411 198 547 264 +l50 25 -416 0 -415 0 -129 265 c-70 146 -131 265 -135 265 -3 0 -64 -119 -136 +-265z"/> +</g> +</g> +</svg> diff --git a/tools/cylinder_icon_cartels.svg b/tools/cylinder_icon_cartels.svg new file mode 100644 index 0000000..e5d5aa3 --- /dev/null +++ b/tools/cylinder_icon_cartels.svg @@ -0,0 +1 @@ +<path fill="#fff200" stroke="#636466" stroke-width="2" d="M26.958 7.665c-.89.116-2.654.612-3.864 1.093-2.96 1.152-7.117 3.602-8.371 4.915-1.02 1.064-1.4 2.027-1.4 3.529v1.254l-1.56 1.05c-.876.569-1.576 1.094-1.576 1.181 0 .132 2.509 1.896 2.698 1.896.044 0 .802-.481 1.707-1.079l1.618-1.094 1.182.088c1.895.117 4.725-.408 6.475-1.225 1.37-.627 3.806-2.436 5.687-4.2 3.383-3.165 3.88-5.936 1.283-7.088-.714-.306-2.741-.48-3.879-.32z"/> diff --git a/tools/cylinder_icon_cartels.svg.bak b/tools/cylinder_icon_cartels.svg.bak new file mode 100644 index 0000000..9b828e9 --- /dev/null +++ b/tools/cylinder_icon_cartels.svg.bak @@ -0,0 +1,19 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="44" height="30" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(1,1)scale(0.145833)"> +<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1780 1463 c-61 -8 -182 -42 -265 -75 -203 -79 -488 -247 -574 -337 +-70 -73 -96 -139 -96 -242 l0 -86 -107 -72 c-60 -39 -108 -75 -108 -81 0 -9 +172 -130 185 -130 3 0 55 33 117 74 l111 75 81 -6 c130 -8 324 28 444 84 94 +43 261 167 390 288 232 217 266 407 88 486 -49 21 -188 33 -266 22z"/> +</g> +</g> +</svg> diff --git a/tools/cylinder_icon_farc.svg b/tools/cylinder_icon_farc.svg new file mode 100644 index 0000000..d65b0c5 --- /dev/null +++ b/tools/cylinder_icon_farc.svg @@ -0,0 +1 @@ +<path fill="#ffd800" stroke="#8c1042" stroke-width="2" d="m19.725 7.86-2.173 2.902-1.167.16c-.641.088-1.954.22-2.916.307-.963.088-2.232.219-2.815.306-.583.073-1.37.132-1.764.132-.38 0-.744.043-.788.102-.058.043 1.415 1.093 3.252 2.333 1.852 1.225 3.354 2.304 3.354 2.377 0 .088-.32 1.458-.729 3.063-.394 1.604-.729 2.975-.729 3.077 0 .19-.088.218 2.625-.744l3.792-1.327c.918-.321 1.823-.627 1.983-.671.262-.058 2.45.583 3.34.977.16.073.787.292 1.385.496.598.204 1.765.598 2.596.89.831.291 1.531.51 1.56.48.03-.028-.291-1.458-.729-3.178-.437-1.721-.758-3.165-.73-3.223.045-.044.657-.482 1.4-.948 4.376-2.83 5.426-3.544 5.236-3.617-.116-.029-.743-.102-1.385-.146-.642-.058-1.794-.16-2.552-.233-.759-.073-2.1-.19-2.96-.277-2.728-.263-2.29.044-4.74-3.238l-2.188-2.902-2.158 2.902z"/> diff --git a/tools/cylinder_icon_farc.svg.bak b/tools/cylinder_icon_farc.svg.bak new file mode 100644 index 0000000..68363c3 --- /dev/null +++ b/tools/cylinder_icon_farc.svg.bak @@ -0,0 +1,23 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="44" height="30" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(1,0)scale(0.145833)"> +<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1284 1381 l-149 -199 -80 -11 c-44 -6 -134 -15 -200 -21 -66 -6 +-153 -15 -193 -21 -40 -5 -94 -9 -121 -9 -26 0 -51 -3 -54 -7 -4 -3 97 -75 +223 -160 127 -84 230 -158 230 -163 0 -6 -22 -100 -50 -210 -27 -110 -50 -204 +-50 -211 0 -13 -6 -15 180 51 80 28 197 69 260 91 63 22 125 43 136 46 18 4 +168 -40 229 -67 11 -5 54 -20 95 -34 41 -14 121 -41 178 -61 57 -20 105 -35 +107 -33 2 2 -20 100 -50 218 -30 118 -52 217 -50 221 3 3 45 33 96 65 300 194 +372 243 359 248 -8 2 -51 7 -95 10 -44 4 -123 11 -175 16 -52 5 -144 13 -203 +19 -187 18 -157 -3 -325 222 l-150 199 -148 -199z"/> +</g> +</g> +</svg> diff --git a/tools/cylinder_icon_govt.svg b/tools/cylinder_icon_govt.svg new file mode 100644 index 0000000..d091c13 --- /dev/null +++ b/tools/cylinder_icon_govt.svg @@ -0,0 +1 @@ +<path fill="#fff9ae" stroke="#001c5a" stroke-width="1.0" d="m20.017 7.656-1.882 3.85-6.052.015H6.031l1.313.656c2.829 1.385 7.743 3.763 8.064 3.88.175.072.321.174.321.247 0 .073-.831 1.823-1.837 3.88-1.007 2.07-1.809 3.776-1.78 3.806.015.029.773-.307 1.648-.73.89-.437 3.092-1.502 4.915-2.391l3.296-1.604.714.35c.38.19 1.882.918 3.325 1.604 1.444.7 3.296 1.59 4.127 1.998.817.408 1.546.7 1.59.641.058-.043-.7-1.75-1.692-3.777-.977-2.012-1.764-3.719-1.764-3.777 0-.058.437-.306.991-.569.86-.408 5.994-2.887 7.978-3.85l.729-.364H25.85l-1.881-3.865C22.948 5.527 22.059 3.792 22 3.792c-.044 0-.933 1.735-1.983 3.864z"/> diff --git a/tools/genboxes.py b/tools/genboxes.py new file mode 100644 index 0000000..8686ef7 --- /dev/null +++ b/tools/genboxes.py @@ -0,0 +1,73 @@ +mode = None + +list = [] + +x = y = w = h = 0 +name = None + +def flush(): + global x, y, w, h, name + if mode == 'rect': + list.append((x,y,w,h,'box',name)) + if mode == 'circle': + x = cx - rx + y = cy - ry + w = rx * 2 + h = ry * 2 + list.append((x,y,w,h,'circle',name)) + x = y = w = h = 0 + name = None + +for line in open("tools/boxes.svg").readlines(): + line = line.strip() + if line == "<rect": + flush() + mode = 'rect' + x = y = w = h = 0 + elif line == "<ellipse": + flush() + mode = 'circle' + cx = cy = rx = ry = 0 + if line.startswith('x="'): x = round(float(line.split('"')[1])) + if line.startswith('y="'): y = round(float(line.split('"')[1])) + if line.startswith('width="'): w = round(float(line.split('"')[1])) + if line.startswith('height="'): h = round(float(line.split('"')[1])) + if line.startswith('cx="'): cx = round(float(line.split('"')[1])) + if line.startswith('cy="'): cy = round(float(line.split('"')[1])) + if line.startswith('rx="'): rx = round(float(line.split('"')[1])) + if line.startswith('ry="'): ry = round(float(line.split('"')[1])) + if line.startswith('inkscape:label="'): name = line.split('"')[1] +flush() + +def print_list(): + print("const boxes = {") + for (x,y,w,h,c,name) in list: + print(f'"{name}": [{x},{y},{w},{h}],') + print("}") + +def print_list2(): + print("const centers = {") + for (x,y,w,h,c,name) in list: + xc = round((x+w/2.0)) + yc = round((y+h/2.0)) + print(f'"{name}": [{xc},{yc}],') + print("}") + +def print_html(): + # print('<html><style>') + # print('.box{position:absolute;background-color:#f008;border:2px solid blue;}') + # print('.circle{position:absolute;background-color:#0f08;border-radius:50%;border:2px solid blue;}') + # print('img{position:absolute;display:block}') + # print('</style>') + # print('<div style="position:relative;width:1275px;heigth:1650px;">') + # print('<img src="map75.png">') + for (x,y,w,h,c,name) in list: + x = round(x) + y = round(y) + w = round(w) + h = round(h) + print(f'<div class="{c}" style="top:{y}px;left:{x}px;width:{w}px;height:{h}px">{name}</div>') + # print('</div>') + +#print_html() +print_list2() diff --git a/tools/gendata.js b/tools/gendata.js new file mode 100644 index 0000000..58340af --- /dev/null +++ b/tools/gendata.js @@ -0,0 +1,390 @@ +let data = {} + +const IMAP = { G: "Government", F: "FARC", A: "AUC", C: "Cartels" } +let initiative = null +let cards = [ null ] +function def_initiative(s) { + initiative = [ IMAP[s[0]], IMAP[s[1]], IMAP[s[2]], IMAP[s[3]] ] +} +function def_card(number, name) { + cards[number] = { number, name, initiative } +} +def_initiative("GFAC") +def_card(1, "1st Division") +def_card(2, "Ospina & Mora") +def_card(3, "Tapias") +def_initiative("GFCA") +def_card(4, "Caño Limón - Coveñas") +def_card(5, "Occidental & Ecopetrol") +def_card(6, "Oil Spill") +def_initiative("GAFC") +def_card(7, "7th Special Forces") +def_card(8, "Fuerza Aérea Colombiana") +def_card(9, "High Mountain Battalions") +def_initiative("GACF") +def_card(10, "Blackhawks") +def_card(11, "National Defense & Security Council") +def_card(12, "Plan Colombia") +def_initiative("GCFA") +def_card(13, "Plan Meteoro") +def_card(14, "Tres Esquinas") +def_card(15, "War Tax") +def_initiative("GCAF") +def_card(16, "Coffee Prices") +def_card(17, "Madrid Donors") +def_card(18, "NSPD-18") +def_initiative("FGAC") +def_card(19, "General Offensive") +def_card(20, "Mono Jojoy") +def_card(21, "Raúl Reyes") +def_initiative("FGCA") +def_card(22, "Alfonso Cano") +def_card(23, "DoD Contractors") +def_card(24, "Operación Jaque") +def_initiative("FAGC") +def_card(25, "Ejército de Liberación Nacional") +def_card(26, "Gramaje") +def_card(27, "Misil Antiaéreo") +def_initiative("FACG") +def_card(28, "Hugo Chávez") +def_card(29, "Kill Zone") +def_card(30, "Peace Commission") +def_initiative("FCGA") +def_card(31, "Betancourt") +def_card(32, "Secuestrados") +def_card(33, "Sucumbíos") +def_initiative("FCAG") +def_card(34, "Airdropped AKs") +def_card(35, "Crop Substitution") +def_card(36, "Zona de Convivencia") +def_initiative("AGFC") +def_card(37, "Former Military") +def_card(38, "National Coordination Center") +def_card(39, "Soldados campesinos") +def_initiative("AGCF") +def_card(40, "Demobilization") +def_card(41, "Mancuso") +def_card(42, "Senado & Cámara") +def_initiative("AFGC") +def_card(43, "Calima Front") +def_card(44, "Colombia Nueva") +def_card(45, "Los Derechos Humanos") +def_initiative("AFCG") +def_card(46, "Limpieza") +def_card(47, "Pinto & del Rosario") +def_card(48, "Unión Sindical Obrera") +def_initiative("ACGF") +def_card(49, "Bloques") +def_card(50, "Carabineros") +def_card(51, "Pipeline Repairs") +def_initiative("ACFG") +def_card(52, "Castaño") +def_card(53, "Criminal Air Force") +def_card(54, "Deserters & Defectors") +def_initiative("CGFA") +def_card(55, "DEA Agents") +def_card(56, "Drogas La Rebaja") +def_card(57, "Op Millennium") +def_initiative("CGAF") +def_card(58, "General Serrano") +def_card(59, "Salcedo") +def_card(60, "The Chess Player") +def_initiative("CFGA") +def_card(61, "Air Bridge") +def_card(62, "Amazonía") +def_card(63, "Narco-War") +def_initiative("CFAG") +def_card(64, "Cocaine Labs") +def_card(65, "Poppies") +def_card(66, "Tingo María") +def_initiative("CAGF") +def_card(67, "Mexican Traffickers") +def_card(68, "Narco-Subs") +def_card(69, "Riverines & Fast Boats") +def_initiative("CAFG") +def_card(70, "Ayahuasca Tourism") +def_card(71, "Darién") +def_card(72, "Sicarios") +initiative = null +def_card(73, "Propaganda!") +def_card(74, "Propaganda!") +def_card(75, "Propaganda!") +def_card(76, "Propaganda!") + +console.log("const cards = {") +for (let c of cards) console.log(JSON.stringify(c) + ",") +console.log("}") + +let spaces = [ ] +let space_names = [ ] + +function add(list, item) { + if (!list.includes(item)) + list.push(item) +} + +function def_space(type, pop, name) { + spaces.push({ type, name, pop, adjacent: [] }) + space_names.push(name) +} + +function def_town(name) { + spaces.push({ type: "town", name, adjacent: [] }) + space_names.push(name) +} + +function def_loc(type, econ, cities, depts) { + let name = cities.join(" / ") + let loc_names = cities.concat(depts) + let loc_spaces = loc_names.map(n => space_names.indexOf(n)) + let ix = spaces.length + spaces.push({ type, name, econ, adjacent: loc_spaces.filter(x=>x>0) }) + for (let loc of loc_spaces) + if (loc >= 0) + add(spaces[loc].adjacent, ix) + space_names.push(name) + return ix +} + +function adjacent(an, bn) { + ax = space_names.indexOf(an) + bx = space_names.indexOf(bn) + add(spaces[ax].adjacent, bx) + add(spaces[bx].adjacent, ax) +} + +// Cities +data.first_pop = 1 +data.first_city = spaces.length + +def_space("city", 8, "Bogotá") +def_space("city", 3, "Cali") +def_space("city", 2, "Bucaramanga") +def_space("city", 2, "Ibagué") +def_space("city", 2, "Santa Marta") +def_space("city", 1, "Cartagena") +def_space("city", 1, "Cúcuta") +def_space("city", 1, "Medellín") +def_space("city", 1, "Neiva") +def_space("city", 1, "Pasto") +def_space("city", 1, "Sincelejo") + +data.last_city = spaces.length-1 + +data.first_dept = spaces.length + +// Departments +def_space("forest", 1, "Atlántico") +def_space("forest", 1, "Chocó") +def_space("forest", 1, "Nariño") +def_space("forest", 1, "Meta West") +def_space("forest", 1, "Guaviare") +def_space("forest", 1, "Putumayo") +def_space("mountain", 1, "Cesar") +def_space("mountain", 2, "Antioquia") +def_space("mountain", 2, "Santander") +def_space("mountain", 2, "Huila") +def_space("grassland", 1, "Arauca") +def_space("grassland", 1, "Meta East") + +data.last_pop = spaces.length-1 + +def_space("grassland", 0, "Vichada") +def_space("forest", 0, "Guainía") +def_space("forest", 0, "Vaupés") +def_space("forest", 0, "Amazonas") + +data.last_dept = spaces.length-1 + +data.first_foreign = spaces.length + +// Foreign Countries +def_space("foreign", 0, "Brasil") +def_space("foreign", 0, "Ecuador") +def_space("foreign", 0, "Panamá") +def_space("foreign", 0, "Perú") +def_space("foreign", 0, "Venezuela") + +data.last_foreign = spaces.length-1 + +// LoC + +data.first_loc = spaces.length + +def_loc("road", 1, [ "Santa Marta", "Cartagena"], [ "Atlántico" ]) +def_loc("road", 1, [ "Cali", "Pasto"], [ "Nariño", "Huila" ]) +def_loc("road", 1, [ "Neiva", "Pasto"], [ "Huila", "Putumayo" ]) +def_loc("road", 1, [ "Bogotá", "San José" ], [ "Meta East", "Meta West", "Guaviare" ]) + +def_loc("road", 1, [ "Pasto", "Tumaco" ], [ "Nariño", "Ecuador" ]) +def_loc("pipeline", 1, [ "Cali", "Buenaventura" ], [ "Chocó", "Nariño" ]) + +def_loc("pipeline", 1, [ "Cartagena", "Sincelejo"], [ "Atlántico" ]) +def_loc("pipeline", 2, [ "Sincelejo", "Medellín"], [ "Chocó", "Antioquia" ]) +def_loc("pipeline", 1, [ "Medellín", "Ibagué"], [ "Chocó", "Antioquia" ]) +def_loc("pipeline", 1, [ "Ibagué", "Cali"], [ "Chocó", "Huila" ]) + +def_loc("pipeline", 2, [ "Bucaramanga", "Ibagué", "Bogotá" ], [ "Antioquia", "Santa", "Huila" ]) +def_loc("pipeline", 2, [ "Bogotá", "Neiva" ], [ "Huila", "Meta West" ]) +def_loc("pipeline", 3, [ "Cúcuta", "Arauca" ], [ "Venezuela", "Arauca", "Santaner" ]) +def_loc("pipeline", 2, [ "Bogotá", "Yopal" ], [ "Santander", "Arauca", "Meta East"]) + +let ayacucho = [ + def_loc("pipeline", 2, [ "Santa Marta", "Ayacucho" ], [ "Cesar", "Santander", "Antioquia", "Atlántico" ]), + def_loc("pipeline", 2, [ "Bucaramanga", "Ayacucho" ], [ "Antioquia", "Atlántico", "Cesar", "Santander" ]), + def_loc("pipeline", 3, [ "Sincelejo", "Ayacucho" ], [ "Atlántico", "Cesar", "Santander", "Antioquia" ]), + def_loc("pipeline", 3, [ "Cúcuta", "Ayacucho" ], [ "Santander", "Antioquia", "Atlántico", "Cesar", "Venezuela" ]), +] + +for (let a of ayacucho) { + for (let b of ayacucho) + if (a !== b) + add(spaces[a].adjacent, b) +} + +data.last_loc = spaces.length-1 + +// City in Dept + +adjacent("Santa Marta", "Cesar") +adjacent("Santa Marta", "Atlántico") +adjacent("Cartagena", "Atlántico") +adjacent("Sincelejo", "Atlántico") +adjacent("Sincelejo", "Antioquia") +adjacent("Sincelejo", "Chocó") +adjacent("Medellín", "Chocó") +adjacent("Medellín", "Antioquia") +adjacent("Ibagué", "Chocó") +adjacent("Ibagué", "Antioquia") +adjacent("Ibagué", "Huila") +adjacent("Cali", "Chocó") +adjacent("Cali", "Huila") +adjacent("Cali", "Nariño") +adjacent("Pasto", "Nariño") +adjacent("Pasto", "Huila") +adjacent("Pasto", "Putumayo") +adjacent("Pasto", "Ecuador") +adjacent("Cúcuta", "Venezuela") +adjacent("Cúcuta", "Santander") +adjacent("Bucaramanga", "Antioquia") +adjacent("Bucaramanga", "Santander") +adjacent("Bogotá", "Santander") +adjacent("Bogotá", "Meta East") +adjacent("Bogotá", "Meta West") +adjacent("Bogotá", "Huila") +adjacent("Neiva", "Huila") +adjacent("Neiva", "Meta West") +adjacent("Neiva", "Putumayo") + +// Foreign - Dept + +adjacent("Panamá", "Chocó") + +adjacent("Venezuela", "Cesar") +adjacent("Venezuela", "Santander") +adjacent("Venezuela", "Arauca") +adjacent("Venezuela", "Vichada") +adjacent("Venezuela", "Guainía") + +adjacent("Brasil", "Guainía") +adjacent("Brasil", "Vaupés") +adjacent("Brasil", "Amazonas") + +adjacent("Ecuador", "Nariño") +adjacent("Ecuador", "Putumayo") + +adjacent("Perú", "Putumayo") +adjacent("Perú", "Amazonas") + +// Dept - Dept (with redundancies) + +adjacent("Atlántico", "Cesar") +adjacent("Atlántico", "Santander") +adjacent("Atlántico", "Antioquia") + +adjacent("Chocó", "Antioquia") +adjacent("Chocó", "Huila") +adjacent("Chocó", "Nariño") + +adjacent("Nariño", "Chocó") +adjacent("Nariño", "Huila") + +adjacent("Cesar", "Atlántico") +adjacent("Cesar", "Santander") +adjacent("Cesar", "Antioquia") + +adjacent("Antioquia", "Atlántico") +adjacent("Antioquia", "Cesar") +adjacent("Antioquia", "Santander") +adjacent("Antioquia", "Huila") +adjacent("Antioquia", "Chocó") + +adjacent("Santander", "Cesar") +adjacent("Santander", "Arauca") +adjacent("Santander", "Meta East") +adjacent("Santander", "Huila") +adjacent("Santander", "Antioquia") + +adjacent("Huila", "Antioquia") +adjacent("Huila", "Santander") +adjacent("Huila", "Meta West") +adjacent("Huila", "Putumayo") +adjacent("Huila", "Nariño") +adjacent("Huila", "Chocó") + +adjacent("Arauca", "Vichada") +adjacent("Arauca", "Meta East") +adjacent("Arauca", "Santander") + +adjacent("Vichada", "Arauca") +adjacent("Vichada", "Guainía") +adjacent("Vichada", "Guaviare") +adjacent("Vichada", "Meta East") + +adjacent("Meta East", "Arauca") +adjacent("Meta East", "Vichada") +adjacent("Meta East", "Guaviare") +adjacent("Meta East", "Meta West") +adjacent("Meta East", "Santander") + +adjacent("Meta West", "Meta East") +adjacent("Meta West", "Guaviare") +adjacent("Meta West", "Putumayo") +adjacent("Meta West", "Huila") + +adjacent("Putumayo", "Meta West") +adjacent("Putumayo", "Guaviare") +adjacent("Putumayo", "Vaupés") +adjacent("Putumayo", "Amazonas") +adjacent("Putumayo", "Huila") + +adjacent("Guaviare", "Meta East") +adjacent("Guaviare", "Vichada") +adjacent("Guaviare", "Guainía") +adjacent("Guaviare", "Vaupés") +adjacent("Guaviare", "Putumayo") +adjacent("Guaviare", "Meta West") + +adjacent("Guainía", "Vichada") +adjacent("Guainía", "Vaupés") +adjacent("Guainía", "Guaviare") + +adjacent("Vaupés", "Guainía") +adjacent("Vaupés", "Amazonas") +adjacent("Vaupés", "Putumayo") +adjacent("Vaupés", "Guaviare") + +adjacent("Amazonas", "Vaupés") +adjacent("Amazonas", "Putumayo") + +data.coastal_spaces = [ "Cesar", "Atlántico", "Chocó", "Nariño" ].map(n=>space_names.indexOf(n)).sort((a,b)=>a-b) + +for (let i = 1; i < spaces.length; ++i) + spaces[i].adjacent.sort((a,b)=>a-b) + +console.log("const spaces = [") +for (let x of spaces) console.log(JSON.stringify(x) + ",") +console.log("]") + +for (let k in data) + console.log("const", k, "=", JSON.stringify(data[k])) diff --git a/tools/genpieces.mjs b/tools/genpieces.mjs new file mode 100644 index 0000000..ec478f6 --- /dev/null +++ b/tools/genpieces.mjs @@ -0,0 +1,303 @@ +// Cylinder spaces on map are 48x48 + +// SIZES in millimeters +// cylinders = 14.5 x 10 +// discs = 14.5 x 4 +// cubes = 9 x 9 +// octagons = 10 x 10 + +// SIZES in 75dpi pixels +// cylinder = 43 x 29.5 +// disc = 43 x 12 +// cube = 26.6 x 26.6 +// octagon = 29.5 x 29.5 + +// SIZES in 72dpi pixels +// cylinder = 41 x 28 +// disc = 41 x 11 +// cube = 25 x 25 +// octagon = 28 x 28 + +// isometric scale = 2 / 3 +// vertical scale = 2 / 3 + +// octagon badge = 23x15 / 25x17 + +import fs from "fs" +import { formatHex, parseHex, convertRgbToOklab } from 'culori' + +function make_piece_colors(base) { + let rgb = parseHex(base) + let sh1 = convertRgbToOklab(rgb); sh1.l *= 0.9; + let sh2 = convertRgbToOklab(rgb); sh2.l *= 0.8; + let sh3 = convertRgbToOklab(rgb); sh3.l *= 0.7; + let sh4 = convertRgbToOklab(rgb); sh4.l *= 0.4; + return [ base, formatHex(sh1), formatHex(sh2), formatHex(sh3), formatHex(sh4) ] +} + +const color_govt = make_piece_colors("#0087cb") +const color_govt_police = make_piece_colors("#acdbf6") +const color_auc = make_piece_colors("#ffde00") +const color_farc = make_piece_colors("#db2128") +const color_cartels = make_piece_colors("#68b045") + +function print_cylinder(output, icon_file, c) { + let icon = fs.readFileSync(icon_file).toString('utf8') + let svg = [] + svg.push('<svg xmlns="http://www.w3.org/2000/svg" width="44" height="48">') + + svg.push(`<linearGradient id="g">`) + svg.push(`<stop offset="0%" stop-color="${c[1]}"/>`) + svg.push(`<stop offset="50%" stop-color="${c[2]}"/>`) + svg.push(`<stop offset="100%" stop-color="${c[3]}"/>`) + svg.push('</linearGradient>') + + svg.push(`<path fill="url(#g)" stroke="${c[4]}" d="M1.5 15 v 18 a 20.5 13.5 0 0 0 20.5 13.5 a 20.5 13.5 0 0 0 20.5 -13.5 v -18"/>`) + svg.push(`<ellipse fill="${c[0]}" stroke="${c[4]}" cx="22" cy="15" rx="20.5" ry="13.5"/>`) + svg.push(icon) + + svg.push('</svg>') + fs.writeFileSync(output, svg.join("\n") + "\n") +} + +function print_disc(output, c) { + let svg = [] + svg.push('<svg xmlns="http://www.w3.org/2000/svg" width="44" height="38">') + + svg.push(`<linearGradient id="g">`) + svg.push(`<stop offset="0%" stop-color="${c[1]}"/>`) + svg.push(`<stop offset="50%" stop-color="${c[2]}"/>`) + svg.push(`<stop offset="100%" stop-color="${c[3]}"/>`) + svg.push('</linearGradient>') + + svg.push(`<path fill="url(#g)" stroke="${c[4]}" d="M1.5 15 v 8 a 20.5 13.5 0 0 0 20.5 13.5 20.5 13.5 0 0 0 20.5 -13.5 v -8"/>`) + svg.push(`<ellipse fill="${c[0]}" stroke="${c[4]}" cx="22" cy="15" rx="20.5" ry="13.5"/>`) + + svg.push('</svg>') + fs.writeFileSync(output, svg.join("\n") + "\n") +} + +const star_auc = +"m11.414 4.602-1.03 2.062-3.315.008H3.755l.719.351c1.55.743 4.24 2.016 4.416 2.079.096.039.176.093.176.132 0 .04-.455.977-1.006 2.079-.551 1.109-.99 2.023-.975 2.039.008.015.424-.165.903-.391.487-.234 1.693-.805 2.691-1.281l1.805-.86.391.188c.208.101 1.03.492 1.821.86.79.374 1.805.85 2.26 1.07.447.218.847.374.87.343.033-.023-.383-.937-.926-2.023-.535-1.078-.966-1.992-.966-2.024 0-.03.24-.164.543-.304.471-.22 3.282-1.547 4.368-2.063l.4-.195H14.608l-1.03-2.07c-.559-1.141-1.046-2.07-1.078-2.07-.024 0-.511.929-1.086 2.07z" + +const star_farc = +"m11.254 4.71-1.19 1.556-.639.086c-.351.046-1.07.117-1.597.164a36.08 36.08 0 0 0-1.541.164c-.32.039-.75.07-.967.07-.207 0-.407.023-.43.055-.033.023.774.586 1.78 1.25 1.014.656 1.837 1.234 1.837 1.273 0 .047-.176.781-.4 1.64-.215.86-.399 1.595-.399 1.65 0 .1-.048.116 1.438-.4l2.076-.71c.503-.172.998-.336 1.086-.36.144-.03 1.342.313 1.83.524.087.039.43.156.758.265.327.11.966.32 1.421.477.456.156.839.274.855.258.016-.016-.16-.781-.4-1.703-.239-.922-.415-1.696-.399-1.727.024-.023.36-.258.767-.508 2.396-1.515 2.97-1.898 2.867-1.937a8.238 8.238 0 0 0-.759-.078c-.351-.032-.982-.086-1.397-.125-.416-.04-1.15-.102-1.622-.149-1.493-.14-1.253.024-2.595-1.734l-1.198-1.555-1.182 1.555z" + +const leaf = "M15.215 4.57c-.487.063-1.453.328-2.116.586-1.621.617-3.897 1.93-4.584 2.633-.56.57-.767 1.086-.767 1.89v.673l-.854.562c-.48.305-.863.586-.863.633 0 .07 1.374 1.015 1.478 1.015.024 0 .439-.257.934-.578l.887-.586.646.047c1.039.063 2.588-.218 3.546-.656.75-.336 2.085-1.305 3.115-2.25 1.853-1.695 2.124-3.18.703-3.797-.392-.164-1.502-.258-2.125-.172z" + +function print_octagon(output, badge_path, badge_fill, badge_stroke, c) { + let svg = [] + + // a + b + b = 30 + // a + 2 * a / sqrt(2) = 30 + // 1 + 2 / sqrt(2) = 30 / a + // 2.4142 = 30 / a + // 2.4142 * a = 30 + // a = 30 / 2.4142 + // = 12.4 + + let w = 24 + let a = w / (1 + 2 / Math.sqrt(2)) + let b = a / Math.sqrt(2) + let xo = 0 + let yo = 0 + let ys = 2/3 + let h = Math.round(w * 0.8) + + let v = [ + [ xo + (b + 0), (0) * ys + yo ], + [ xo + (b + a), (0) * ys + yo ], + [ xo + (b + a + b), (b) * ys + yo ], + [ xo + (b + a + b), (b + a) * ys + yo ], + [ xo + (b + a), (b + a + b) * ys + yo ], + [ xo + (b), (b + a + b) * ys + yo ], + [ xo + (0), (b + a) * ys + yo ], + [ xo + (0), (b) * ys + yo ], + ] + + for (let xy of v) { + xy[0] = Math.round(xy[0]) + 0.5 + xy[1] = Math.round(xy[1]) + 0.5 + } + + let v2 = [ + [ v[3][0], v[3][1] ], + [ v[3][0], v[3][1] + h ], + [ v[4][0], v[4][1] + h ], + [ v[5][0], v[5][1] + h ], + [ v[6][0], v[6][1] + h ], + [ v[6][0], v[6][1] ], + ] + + let v3 = [ + [ v[4][0], v[4][1] ], + [ v[4][0], v[4][1] + h ], + ] + + let v4 = [ + [ v[5][0], v[5][1] ], + [ v[5][0], v[5][1] + h ], + ] + + let f1 = [ + [ v[3][0], v[3][1] ], + [ v[3][0], v[3][1] + h ], + [ v[4][0], v[4][1] + h ], + [ v[4][0], v[4][1] ], + ] + + let f2 = [ + [ v[4][0], v[4][1] ], + [ v[4][0], v[4][1] + h ], + [ v[5][0], v[5][1] + h ], + [ v[5][0], v[5][1] ], + ] + + let f3 = [ + [ v[5][0], v[5][1] ], + [ v[5][0], v[5][1] + h ], + [ v[6][0], v[6][1] + h ], + [ v[6][0], v[6][1] ], + ] + + let p1 = v.map(([x,y])=>x + " " + y).join(" ") + let p2 = v2.map(([x,y])=>x + " " + y).join(" ") + let p3 = v3.map(([x,y])=>x + " " + y).join(" ") + let p4 = v4.map(([x,y])=>x + " " + y).join(" ") + + svg.push('<svg xmlns="http://www.w3.org/2000/svg" width="25" height="36">') + + svg.push(`<path fill="${c[0]}" d="M${v}"/>`) + if (badge_path) + svg.push(`<path fill="${badge_fill}" d="${badge_path}"/>`) + svg.push(`<path fill="${c[3]}" d="M${f1}"/>`) + svg.push(`<path fill="${c[2]}" d="M${f2}"/>`) + svg.push(`<path fill="${c[1]}" d="M${f3}"/>`) + svg.push(`<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="${c[4]}" d="M${p1}z M${p2} M${p3} M${p4}"/>`) + + svg.push('</svg>') + fs.writeFileSync(output, svg.join("\n") + "\n") +} + +function print_cube(output, c) { + let svg = [] + + let xo = 0 + let yo = 0 + let ys = 2/3 + + let w = 20 + let d = Math.sqrt(w * w + w * w) + let h = Math.round(w * 0.8) + + let v = [ + [ xo + (d/2), yo + (0) * ys ], + [ xo + (d), yo + (d/2) * ys ], + [ xo + (d/2), yo + (d) * ys ], + [ xo + (0), yo + (d/2) * ys ], + ] + + for (let xy of v) { + xy[0] = Math.round(xy[0]) + 0.5 + xy[1] = Math.round(xy[1]) + 0.5 + } + + let v2 = [ + [ v[1][0], v[1][1] ], + [ v[1][0], v[1][1] + h ], + [ v[2][0], v[2][1] + h ], + [ v[3][0], v[3][1] + h ], + [ v[3][0], v[3][1] ], + ] + + let v3 = [ + [ v[2][0], v[2][1] ], + [ v[2][0], v[2][1] + h ], + ] + + let f1 = [ + [ v[1][0], v[1][1] ], + [ v[1][0], v[1][1] + h ], + [ v[2][0], v[2][1] + h ], + [ v[2][0], v[2][1] ], + ] + + let f2 = [ + [ v[2][0], v[2][1] ], + [ v[2][0], v[2][1] + h ], + [ v[3][0], v[3][1] + h ], + [ v[3][0], v[3][1] ], + ] + + svg.push('<svg xmlns="http://www.w3.org/2000/svg" width="29" height="36">') + + svg.push(`<path fill="${c[0]}" d="M${v}"/>`) + svg.push(`<path fill="${c[3]}" d="M${f1}"/>`) + svg.push(`<path fill="${c[1]}" d="M${f2}"/>`) + + svg.push(`<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="${c[4]}" d="M${v}z M${v2} M${v3}"/>`) + + svg.push('</svg>') + fs.writeFileSync(output, svg.join("\n") + "\n") +} + +print_cylinder("images/govt_cylinder.svg", "tools/cylinder_icon_govt.svg", color_govt) +print_cylinder("images/farc_cylinder.svg", "tools/cylinder_icon_farc.svg", color_farc) +print_cylinder("images/auc_cylinder.svg", "tools/cylinder_icon_auc.svg", color_auc) +print_cylinder("images/cartels_cylinder.svg", "tools/cylinder_icon_cartels.svg", color_cartels) + +print_disc("images/govt_base.svg", color_govt) +print_disc("images/farc_base.svg", color_farc) +print_disc("images/auc_base.svg", color_auc) +print_disc("images/cartels_base.svg", color_cartels) + +print_octagon("images/farc_guerrilla_active.svg", star_farc, "#ffd800", "#8c1042", color_farc) +print_octagon("images/farc_guerrilla.svg", null, null, null, color_farc) +print_octagon("images/auc_guerrilla_active.svg", star_auc, "#0072bc", "#fff", color_auc) +print_octagon("images/auc_guerrilla.svg", null, null, null, color_auc) +print_octagon("images/cartels_guerrilla_active.svg", leaf, "#fff200", "#636466", color_cartels) +print_octagon("images/cartels_guerrilla.svg", null, null, null, color_cartels) + +print_cube("images/govt_troops.svg", color_govt) +print_cube("images/govt_police.svg", color_govt_police) + +let css = [ "/* TOKEN BORDER COLORS */" ] + +function border(base, sel) { + let rgb = parseHex(base) + // let hic = convertRgbToOklab(rgb); hic.l = Math.min(1,hic.l+0.1) + // let loc = convertRgbToOklab(rgb); loc.l = Math.max(0,loc.l-0.1) + // let shc = convertRgbToOklab(rgb); shc.l = Math.max(0,shc.l-0.4) + let hic = convertRgbToOklab(rgb); hic.l = Math.min(1,hic.l*1.2) + let loc = convertRgbToOklab(rgb); loc.l = Math.max(0,loc.l*0.8) + let shc = convertRgbToOklab(rgb); shc.l = Math.max(0,shc.l*0.4) + let sh = formatHex(shc) + let hi = formatHex(hic) + let lo = formatHex(loc) + css.push(`${sel} { background-color: ${base}; border-color: ${hi} ${lo} ${lo} ${hi}; box-shadow: 0 0 0 1px ${sh}, 0px 1px 4px #0008; }`) +} + +border("#006cb7", "#token_total_support") +border("#80643e", "#token_prop_card") +border("#d74729", "#token_oppose_plus_bases") +border("#004e81", "#token_el_presidente") +border("#6a8796", "#token_aid") +border("#4b87c0", ".token.passive_support") +border("#b75f61", ".token.passive_opposition") +border("#0054a6", ".token.active_support") +border("#991a1e", ".token.active_opposition") +border("#0054a6", ".token.govt_control") +border("#991a1e", ".token.farc_control") +border("#ffc509", ".token.farc_zone") +//border("#22010e", ".token.terror") +border("#535052", ".token.terror") +border("#535052", ".token.sabotage") +border("#9dadb3", ".token.unshaded") +border("#465c80", ".token.shaded") +border("#6d5735", ".token.reminder.sucumbios") +border("#cf1f30", ".token.reminder.senado_farc") +border("#6d9f3b", ".token.reminder.senado_cartels") +border("#ffcf00", ".token.reminder.senado_auc") +border("#8dc73f", ".token.reminder.darien") + +console.log(css.join("\n")) diff --git a/tools/guerrilla_icon_auc.svg.bak b/tools/guerrilla_icon_auc.svg.bak new file mode 100644 index 0000000..d7590c2 --- /dev/null +++ b/tools/guerrilla_icon_auc.svg.bak @@ -0,0 +1,22 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="25" height="17" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(1,.5)scale(0.079861,0.078125)"> +<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1304 1395 l-129 -264 -415 -1 -415 0 90 -45 c194 -95 531 -258 553 +-266 12 -5 22 -12 22 -17 0 -5 -57 -125 -126 -266 -69 -142 -124 -259 -122 +-261 1 -2 53 21 113 50 61 30 212 103 337 164 l226 110 49 -24 c26 -13 129 +-63 228 -110 99 -48 226 -109 283 -137 56 -28 106 -48 109 -44 4 3 -48 120 +-116 259 -67 138 -121 255 -121 259 0 4 30 21 68 39 59 28 411 198 547 264 +l50 25 -416 0 -415 0 -129 265 c-70 146 -131 265 -135 265 -3 0 -64 -119 -136 +-265z"/> +</g> +</g> +</svg> diff --git a/tools/guerrilla_icon_cartels.svg.bak b/tools/guerrilla_icon_cartels.svg.bak new file mode 100644 index 0000000..9061687 --- /dev/null +++ b/tools/guerrilla_icon_cartels.svg.bak @@ -0,0 +1,19 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="25" height="17" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(1,1)scale(0.079861,0.078125)"> +<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1780 1463 c-61 -8 -182 -42 -265 -75 -203 -79 -488 -247 -574 -337 +-70 -73 -96 -139 -96 -242 l0 -86 -107 -72 c-60 -39 -108 -75 -108 -81 0 -9 +172 -130 185 -130 3 0 55 33 117 74 l111 75 81 -6 c130 -8 324 28 444 84 94 +43 261 167 390 288 232 217 266 407 88 486 -49 21 -188 33 -266 22z"/> +</g> +</g> +</svg> diff --git a/tools/guerrilla_icon_farc.svg.bak b/tools/guerrilla_icon_farc.svg.bak new file mode 100644 index 0000000..ce0b1ff --- /dev/null +++ b/tools/guerrilla_icon_farc.svg.bak @@ -0,0 +1,23 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" + "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<svg version="1.0" xmlns="http://www.w3.org/2000/svg" + width="25" height="17" + preserveAspectRatio="xMidYMid meet"> +<metadata> +Created by potrace 1.16, written by Peter Selinger 2001-2019 +</metadata> +<g transform="translate(1,.5)scale(0.079861,0.078125)"> +<g transform="translate(0.000000,192.000000) scale(0.100000,-0.100000)" +fill="#000000" stroke="none"> +<path d="M1284 1381 l-149 -199 -80 -11 c-44 -6 -134 -15 -200 -21 -66 -6 +-153 -15 -193 -21 -40 -5 -94 -9 -121 -9 -26 0 -51 -3 -54 -7 -4 -3 97 -75 +223 -160 127 -84 230 -158 230 -163 0 -6 -22 -100 -50 -210 -27 -110 -50 -204 +-50 -211 0 -13 -6 -15 180 51 80 28 197 69 260 91 63 22 125 43 136 46 18 4 +168 -40 229 -67 11 -5 54 -20 95 -34 41 -14 121 -41 178 -61 57 -20 105 -35 +107 -33 2 2 -20 100 -50 218 -30 118 -52 217 -50 221 3 3 45 33 96 65 300 194 +372 243 359 248 -8 2 -51 7 -95 10 -44 4 -123 11 -175 16 -52 5 -144 13 -203 +19 -187 18 -157 -3 -325 222 l-150 199 -148 -199z"/> +</g> +</g> +</svg> diff --git a/tools/icon_auc.png b/tools/icon_auc.png Binary files differnew file mode 100644 index 0000000..c56ba06 --- /dev/null +++ b/tools/icon_auc.png diff --git a/tools/icon_cartels.png b/tools/icon_cartels.png Binary files differnew file mode 100644 index 0000000..3fdf6cc --- /dev/null +++ b/tools/icon_cartels.png diff --git a/tools/icon_farc.png b/tools/icon_farc.png Binary files differnew file mode 100644 index 0000000..170f635 --- /dev/null +++ b/tools/icon_farc.png diff --git a/tools/icon_govt.png b/tools/icon_govt.png Binary files differnew file mode 100644 index 0000000..cb04a3e --- /dev/null +++ b/tools/icon_govt.png diff --git a/tools/isometric_icon_auc.pbm b/tools/isometric_icon_auc.pbm Binary files differnew file mode 100644 index 0000000..7fb96ae --- /dev/null +++ b/tools/isometric_icon_auc.pbm diff --git a/tools/isometric_icon_cartels.pbm b/tools/isometric_icon_cartels.pbm Binary files differnew file mode 100644 index 0000000..71a0ca0 --- /dev/null +++ b/tools/isometric_icon_cartels.pbm diff --git a/tools/isometric_icon_farc.pbm b/tools/isometric_icon_farc.pbm Binary files differnew file mode 100644 index 0000000..7f89f31 --- /dev/null +++ b/tools/isometric_icon_farc.pbm diff --git a/tools/render_cards.sh b/tools/render_cards.sh new file mode 100644 index 0000000..e53998d --- /dev/null +++ b/tools/render_cards.sh @@ -0,0 +1,16 @@ +mkdir -p HIRES/cards +for I in 01 02 03 04 05 06 07 08 09 $(seq 10 76) 7x BACK +do + F1=$(echo "HIRES/AA CARD DECK PROOFS"/AAcard-$I".pdf") + F2=$(echo "HIRES/AA CARD DECK PROOFS"/AAcard-$I"_2018-nf.pdf") + if [ -e "$F1" ] + then + echo $F1 + gs -r1200 -sDEVICE=png16m -o HIRES/cards/card_$I.png "$F1" + fi + if [ -e "$F2" ] + then + echo $F2 + gs -r1200 -sDEVICE=png16m -o HIRES/cards/card_$I.png "$F2" + fi +done diff --git a/tools/render_cards_fixed.sh b/tools/render_cards_fixed.sh new file mode 100644 index 0000000..d182e55 --- /dev/null +++ b/tools/render_cards_fixed.sh @@ -0,0 +1 @@ +gs -r1200 -sDEVICE=png16m -o HIRES/cards/card_61.png "HIRES/AAcard-61-fixed.pdf" diff --git a/tools/render_tokens.sh b/tools/render_tokens.sh new file mode 100644 index 0000000..e4973d3 --- /dev/null +++ b/tools/render_tokens.sh @@ -0,0 +1,5 @@ +mkdir -p HIRES/tokens +# gs -r1200 -sDEVICE=png16m -o HIRES/tokens/sheet_a.png HIRES/AndeanAbyss_Tokens_FRONT-2018.pdf +# gs -r1200 -sDEVICE=png16m -o HIRES/tokens/sheet_b.png HIRES/AndeanAbyss_Tokens_BACK-2018.pdf +mutool draw -A0 -r1200 -z5 -o HIRES/tokens/sheet_a.png HIRES/AndeanAbyss_Tokens_FRONT-2018.pdf +mutool draw -A0 -r1200 -z5 -o HIRES/tokens/sheet_b.png HIRES/AndeanAbyss_Tokens_BACK-2018.pdf diff --git a/tools/resize_cards.sh b/tools/resize_cards.sh new file mode 100644 index 0000000..b868e4f --- /dev/null +++ b/tools/resize_cards.sh @@ -0,0 +1,9 @@ +mkdir -p cards.1x cards.2x +for F in HIRES/cards/*.png +do + echo $F + # 186x261 at 75dpi (unused) + # 248x348 at 100dpi + convert -colorspace RGB -gravity Center -crop 2976x4176+0+0 -resize 8.333333% -colorspace sRGB $F cards.1x/$(basename $F) + convert -colorspace RGB -gravity Center -crop 2976x4176+0+0 -resize 16.666666% -colorspace sRGB $F cards.2x/$(basename $F) +done diff --git a/tools/scale_tokens.sh b/tools/scale_tokens.sh new file mode 100644 index 0000000..83bffdf --- /dev/null +++ b/tools/scale_tokens.sh @@ -0,0 +1,52 @@ +mkdir -p tokens.1x tokens.2x + +function loop() { + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_1.ppm $OUT/govt_control.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_1.ppm $OUT/farc_control.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_6.ppm $OUT/farc_zone.png + + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_7.ppm $OUT/unshaded_ndsc.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_8.ppm $OUT/unshaded_ospina.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_15.ppm $OUT/unshaded_tapias.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_16.ppm $OUT/unshaded_1st_div.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_23.ppm $OUT/unshaded_black_hawks.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_24.ppm $OUT/unshaded_7th_sf.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_32.ppm $OUT/unshaded_meteoro.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_40.ppm $OUT/unshaded_mtn_bns.png + + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_7.ppm $OUT/shaded_ndsc.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_8.ppm $OUT/shaded_ospina.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_15.ppm $OUT/shaded_tapias.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_16.ppm $OUT/shaded_1st_div.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_23.ppm $OUT/shaded_black_hawks.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_24.ppm $OUT/shaded_7th_sf.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_32.ppm $OUT/shaded_meteoro.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_b_40.ppm $OUT/shaded_mtn_bns.png + + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_30.ppm $OUT/oppose_plus_bases.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_31.ppm $OUT/aid.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_37.ppm $OUT/el_presidente.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_38.ppm $OUT/total_support.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/five_a_39.ppm $OUT/prop_card.png + + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_1.ppm $OUT/active_support.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_2.ppm $OUT/terror.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_4.ppm $OUT/active_opposition.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_5.ppm $OUT/reminder_senado_cartels.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_6.ppm $OUT/reminder_darien.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_8.ppm $OUT/reminder_senado_auc.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_11.ppm $OUT/reminder_senado_farc.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_a_17.ppm $OUT/reminder_sucumbios.png + + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_b_1.ppm $OUT/passive_support.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_b_2.ppm $OUT/sabotage.png + convert -colorspace RGB -resize $SCALE -colorspace sRGB HIRES/tokens/half_b_4.ppm $OUT/passive_opposition.png +} + +OUT=tokens.1x +SCALE=6.25% +loop + +OUT=tokens.2x +SCALE=12.5% +loop diff --git a/tools/slice_tokens.sh b/tools/slice_tokens.sh new file mode 100644 index 0000000..5218792 --- /dev/null +++ b/tools/slice_tokens.sh @@ -0,0 +1,68 @@ +# die cut line width = 9 (+4 to center) +# 1/2" tokens 600px wide +# 5/8" tokens 750px wide + +# FRONT SHEET (left die cut edge) +# 1/2" at 588 1188 1788 1388 2988 +# 1/2" at 4188 4788 5388 5988 6588 +# 5/8" at 7896 8882 9868 10855 11841 + +# BACK SHEET (left die cut edge) +# 1/2" at 5991 6591 7191 7791 8391 9591 +# 5/8" at 588 1574 2560 3546 4533 + +# BOTH SHEETS (top die cut edge) +# 1/2" at 1356 5256 5856 +# 5/8" at 756 1742 2728 3714 4700 5688 6674 7660 + +# THEN trim some margins so the result @75dpi is 36 / 45 +# 1/2" 576x576+12+12 +# 5/8" 720x720+15+15 + +pngtopnm HIRES/tokens/sheet_a.png > /tmp/big.ppm + +I=1 +for L in 592 4192 4792 5392 5992 6592 +do + for T in 1360 5260 5860 + do + echo half $I $L $T + pnmcut $L $T 600 600 /tmp/big.ppm | pnmcut 12 12 576 576 | pnmtopng > HIRES/tokens/half_a_$I.ppm + I=$(expr $I + 1) + done +done + +I=1 +for L in 7900 8886 9872 10859 11845 +do + for T in 760 1746 2732 3718 4704 5692 6678 7664 + do + echo five $I $L $T + pnmcut $L $T 750 750 /tmp/big.ppm | pnmcut 15 15 720 720 | pnmtopng > HIRES/tokens/five_a_$I.ppm + I=$(expr $I + 1) + done +done + +pngtopnm HIRES/tokens/sheet_b.png > /tmp/big.ppm + +I=1 +for L in 9595 8395 7795 7195 6595 5995 +do + for T in 1360 5260 5860 + do + echo half $I $L $T + pnmcut $L $T 600 600 /tmp/big.ppm | pnmcut 12 12 576 576 | pnmtopng > HIRES/tokens/half_b_$I.ppm + I=$(expr $I + 1) + done +done + +I=1 +for L in 4537 3550 2564 1578 592 +do + for T in 760 1746 2732 3718 4704 5692 6678 7664 + do + echo five $I $L $T + pnmcut $L $T 750 750 /tmp/big.ppm | pnmcut 15 15 720 720 | pnmtopng > HIRES/tokens/five_b_$I.ppm + I=$(expr $I + 1) + done +done |