Pregens pack 5 -> 20. Three per class, each built by the book (§8): 9 attribute points with the key stat 3+, Grit rolled inside the class range, class knacks + locked knack, Vanity 3 / Karma 0, a Vice, and expanded kit. - Warriors: Dain Ironhand, Isolde de Vere, Grum the Undefeated - Rogues: Sable, Quillon Vance, Mirela the Magpie - Rangers: Rhys Thornwood, Thessa Greyfletch, Hollis Barrowmoor - Mages: Ambrose Vale, Ottoline Vex, Silas Corvax - Clerics: Sister Ilse, Brother Tobias, Lucia the Radiant Art: bespoke "vanity cameo" medallions — a woodcut profile silhouette on a class-tinted field in a gold roundel, generated parametrically (profile, hair, headwear, beard, garment, class device). Each hero gets a 512px portrait plus a matching transparent-background token. 30 PNGs + SVG sources in assets/heroes/. Kit: 15-22 items each — weapons, armour, gear, consumables, class edges, spells or Nature Tricks, a Vice, and one signature relic from the new treasure pack. All 290 item references validated against the packs before build. - build-packs.mjs: actors may now carry separate token art via "token_img". - Version -> 0.9.5; system description and FOUNDRY.md brought up to date (incl. the Dice So Nice force change). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
5.6 KiB
XML
28 lines
5.6 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512"><defs>
|
|
<filter id="rough" x="-6%" y="-6%" width="112%" height="112%">
|
|
<feTurbulence type="fractalNoise" baseFrequency="0.02 0.03" numOctaves="3" seed="41" result="n"/>
|
|
<feDisplacementMap in="SourceGraphic" in2="n" scale="3.2" xChannelSelector="R" yChannelSelector="G"/>
|
|
</filter>
|
|
<pattern id="hatch" width="8" height="8" patternTransform="rotate(40)" patternUnits="userSpaceOnUse">
|
|
<line x1="0" y1="0" x2="0" y2="8" stroke="#000" stroke-opacity="0.16" stroke-width="2"/>
|
|
</pattern>
|
|
<clipPath id="med"><circle cx="256" cy="256" r="196"/></clipPath>
|
|
</defs><rect width="512" height="512" fill="#f7f0de"/>
|
|
<g clip-path="url(#med)">
|
|
<circle cx="256" cy="256" r="196" fill="#14544e"/>
|
|
<line x1="256" y1="256" x2="466" y2="256" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="461" y2="300" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="448" y2="341" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="426" y2="379" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="397" y2="412" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="361" y2="438" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="321" y2="456" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="278" y2="465" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="234" y2="465" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="191" y2="456" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="151" y2="438" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="115" y2="412" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="86" y2="379" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="64" y2="341" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="51" y2="300" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="46" y2="256" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="51" y2="212" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="64" y2="171" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="86" y2="133" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="115" y2="100" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="151" y2="74" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="191" y2="56" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="234" y2="47" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="278" y2="47" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="321" y2="56" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="361" y2="74" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="397" y2="100" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="426" y2="133" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="448" y2="171" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/><line x1="256" y1="256" x2="461" y2="212" stroke="#f7f0de" stroke-opacity="0.10" stroke-width="9"/>
|
|
<circle cx="256" cy="256" r="196" fill="url(#hatch)"/>
|
|
<g filter="url(#rough)">
|
|
<g fill="#241b0f"><path d="M198,132 C206,96 232,74 266,74 C316,74 346,120 352,192 L338,196 C332,134 306,88 266,88 C234,88 212,106 208,136 Z"/><path d="M262,52 c16,-10 34,0 32,18 c-2,14 -18,20 -32,12 c-12,-8 -12,-24 0,-30 Z"/><path d="M268,74 l10,-16 l8,12 Z"/></g>
|
|
<path d="M266,80 C226,82 204,104 198,132 Q194,144 202,152 Q208,158 200,166 L166,196 Q178,200 190,203 Q186,210 189,215 Q183,220 188,227 Q188,238 184,250 Q192,274 228,290 L260,297 L258,300 L332,300 C342,258 348,224 346,196 C342,132 314,84 266,80 Z" fill="#241b0f"/>
|
|
<g fill="#241b0f"></g>
|
|
<g fill="#241b0f"><path d="M200,150 C238,128 312,130 348,156 L346,170 C310,146 240,144 202,164 Z"/><circle cx="206" cy="158" r="8" fill="#b0872f"/></g>
|
|
<g fill="#241b0f"><path d="M262,300 C204,310 162,348 146,400 L398,400 C382,346 342,308 288,300 Z"/><path d="M270,304 L250,400 M280,304 L306,400" fill="none" stroke="#f7f0de" stroke-width="3"/></g>
|
|
</g>
|
|
</g>
|
|
<g filter="url(#rough)" fill="none">
|
|
<circle cx="256" cy="256" r="196" stroke="#b0872f" stroke-width="9"/>
|
|
<circle cx="256" cy="256" r="182" stroke="#b0872f" stroke-width="2.5" opacity="0.8"/>
|
|
<circle cx="256" cy="256" r="204" stroke="#241b0f" stroke-width="3" opacity="0.55"/>
|
|
</g>
|
|
<g transform="translate(256,436)" fill="#b0872f" stroke="#b0872f"><circle cx="0" cy="0" r="9" fill="none" stroke-width="3"/><path d="M0,-6 l3,6 l-6,0 Z M0,6 l3,-6 l-6,0 Z"/><line x1="12" y1="0" x2="19" y2="0" stroke-width="2.5"/><line x1="8" y1="8" x2="13" y2="13" stroke-width="2.5"/><line x1="0" y1="12" x2="0" y2="19" stroke-width="2.5"/><line x1="-8" y1="8" x2="-13" y2="13" stroke-width="2.5"/><line x1="-12" y1="0" x2="-19" y2="0" stroke-width="2.5"/><line x1="-8" y1="-8" x2="-13" y2="-13" stroke-width="2.5"/><line x1="-0" y1="-12" x2="-0" y2="-19" stroke-width="2.5"/><line x1="8" y1="-8" x2="13" y2="-13" stroke-width="2.5"/></g></svg> |