10 module Token(depth, string, x,y) {
12 linear_extrude(height=tokenthick) union(){
15 text(string, font="Courier:style=Bold", size=56 * .3528,
16 halign="center", valign="center");
22 module Token_CDC(){ ////toplevel
25 module Token_Lab(){ ////toplevel
28 module Token_Act(){ ////toplevel
31 square([tokenrad*.75, joinwidth], center=true);
34 module Token_Spec(){ ////toplevel
37 //module Token_Terr(){ ////toplevel
40 //module Token_TerrMove(){ ////toplevel
42 // translate([-tokenrad*.75, -1])
43 // square([tokenrad*.75, joinwidth]);
47 spacing = tokenrad * 2 + 2;
49 module Tokens(rows=1,cols=1) {
52 translate([j*spacing, i*spacing, 0])
56 module Tokens_Act(){ ////toplevel
57 // Print *twice*, LAPIS BLUE or SQUEEZED ORANGE
59 // up to 4 for 5 players, plus 2 for Borrowed Time plus 1 for Generalist
60 // so need 23, make 24
61 Tokens(4,3) Token_Act();
64 module Tokens_Spec(){ ////toplevel
65 // ELECTRIC BLUE or MELLOW YELLOW
66 // once-per-turn special action, one each for 5 players
67 Tokens(3) Token_Spec();
68 translate([spacing,0,0]) Tokens(2) Token_Spec();
71 module Tokens_CDC(){ ////toplevel
74 // 1 action per turn + 2 Borrowed Time
75 Tokens(3) Token_CDC();
78 module Tokens_Lab(){ ////toplevel
80 // free Lab action (on building research station, etc)
81 // make 2 (probably want less than that)
82 Tokens(2) Token_Lab();
85 //module Tokens_Terr(){ ////toplevel
87 // // Bioterrorist general actions
88 // Tokens(2) Token_Terr();
91 //module Tokens_TerrMove(){ ////toplevel
93 // // Bioterrorist drive/ferry
94 // Tokens(1) Token_TerrMove();
98 translate([j*spacing, i*spacing, 0]) child();
101 module Demo(){ ////toplevel
102 PosToken(0,0) Token_CDC();
103 PosToken(1,0) Token_Lab();
104 PosToken(2,0) Token_Act();
105 PosToken(3,0) Token_Spec();
106 // PosToken(1,1) Token_Terr();
107 // PosToken(2,1) Token_TerrMove();